summaryrefslogtreecommitdiffstats
path: root/b29c54505a93365441fa140b152a651c3b9324c2.patch
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2020-02-27 11:29:40 +0100
committerRemi Collet <remi@remirepo.net>2020-02-27 11:29:40 +0100
commit8661250b714745cbea0ff31533faac79a6c4ea0a (patch)
tree1620e54efb235db8f70e981fbb87dee7d65b73d0 /b29c54505a93365441fa140b152a651c3b9324c2.patch
parent8274cb924cb818c1c5383827e1698e31d1350853 (diff)
Revert "add upstream patch to workaround #295 instead of PR#296"
This reverts commit 8274cb924cb818c1c5383827e1698e31d1350853.
Diffstat (limited to 'b29c54505a93365441fa140b152a651c3b9324c2.patch')
-rw-r--r--b29c54505a93365441fa140b152a651c3b9324c2.patch287
1 files changed, 0 insertions, 287 deletions
diff --git a/b29c54505a93365441fa140b152a651c3b9324c2.patch b/b29c54505a93365441fa140b152a651c3b9324c2.patch
deleted file mode 100644
index 4d4ba4d..0000000
--- a/b29c54505a93365441fa140b152a651c3b9324c2.patch
+++ /dev/null
@@ -1,287 +0,0 @@
-From b29c54505a93365441fa140b152a651c3b9324c2 Mon Sep 17 00:00:00 2001
-From: Danack <Danack@basereality.com>
-Date: Tue, 30 Jul 2019 15:20:15 +0100
-Subject: [PATCH] Add ini settings to work around segfault.
-
-Added the 'imagick.shutdown_sleep_count' (default 10) and 'imagick.set_single_thread' (default Off) to work around a segfault in OpenMP.
----
- imagick.c | 22 ++++++++++++-
- package.xml | 5 +++
- php_imagick_defs.h | 4 +++
- tests/281_ini_settings_default.phpt | 29 ++++++++++++++++
- tests/282_ini_settings_set_falsy_string.phpt | 33 +++++++++++++++++++
- tests/283_ini_settings_set_falsy_zero.phpt | 33 +++++++++++++++++++
- tests/284_ini_settings_set_truthy_number.phpt | 33 +++++++++++++++++++
- tests/285_ini_settings_set_truthy_string.phpt | 33 +++++++++++++++++++
- 8 files changed, 191 insertions(+), 1 deletion(-)
- create mode 100644 tests/281_ini_settings_default.phpt
- create mode 100644 tests/282_ini_settings_set_falsy_string.phpt
- create mode 100644 tests/283_ini_settings_set_falsy_zero.phpt
- create mode 100644 tests/284_ini_settings_set_truthy_number.phpt
- create mode 100644 tests/285_ini_settings_set_truthy_string.phpt
-
-diff --git a/imagick.c b/imagick.c
-index 8e58afe..be6b303 100644
---- a/imagick.c
-+++ b/imagick.c
-@@ -3262,6 +3262,10 @@ PHP_INI_BEGIN()
- STD_PHP_INI_ENTRY("imagick.locale_fix", "0", PHP_INI_ALL, OnUpdateBool, locale_fix, zend_imagick_globals, imagick_globals)
- STD_PHP_INI_ENTRY("imagick.skip_version_check", "0", PHP_INI_ALL, OnUpdateBool, skip_version_check, zend_imagick_globals, imagick_globals)
- STD_PHP_INI_ENTRY("imagick.progress_monitor", "0", PHP_INI_SYSTEM, OnUpdateBool, progress_monitor, zend_imagick_globals, imagick_globals)
-+
-+ STD_PHP_INI_ENTRY("imagick.set_single_thread", "0", PHP_INI_SYSTEM, OnUpdateBool, set_single_thread, zend_imagick_globals, imagick_globals)
-+ STD_PHP_INI_ENTRY("imagick.shutdown_sleep_count", "10", PHP_INI_ALL, OnUpdateLong, shutdown_sleep_count, zend_imagick_globals, imagick_globals)
-+
- PHP_INI_END()
-
- static void php_imagick_init_globals(zend_imagick_globals *imagick_globals)
-@@ -3269,6 +3273,9 @@ static void php_imagick_init_globals(zend_imagick_globals *imagick_globals)
- imagick_globals->locale_fix = 0;
- imagick_globals->progress_monitor = 0;
- imagick_globals->skip_version_check = 0;
-+ imagick_globals->set_single_thread = 0;
-+ // 10 is magick number, that seems to be enough.
-+ imagick_globals->shutdown_sleep_count = 10;
- }
-
-
-@@ -3748,6 +3755,10 @@ PHP_MINIT_FUNCTION(imagick)
- checkImagickVersion();
- }
-
-+ if (IMAGICK_G(set_single_thread)) {
-+ MagickSetResourceLimit(ThreadResource, 1);
-+ }
-+
- return SUCCESS;
- }
-
-@@ -3824,12 +3835,21 @@ PHP_MINFO_FUNCTION(imagick)
-
- PHP_MSHUTDOWN_FUNCTION(imagick)
- {
-+ int i;
-+
- // This suppresses an 'unused parameter' warning.
- (void)type;
-
--
- MagickWandTerminus();
-
-+ // Sleep for a bit to hopefully allow OpenMP to
-+ // shut down the threads it created, and avoid a segfault
-+ // This hack won't be needed once everyone is compiling ImageMagick
-+ // against a version of OpenMP that has omp_pause_resource_all()
-+ for (i = 0; i < 100 && i < IMAGICK_G(shutdown_sleep_count); i += 1) {
-+ usleep(1000);
-+ }
-+
- #if defined(ZTS) && defined(PHP_WIN32)
- tsrm_mutex_free(imagick_mutex);
- #endif
-diff --git a/php_imagick_defs.h b/php_imagick_defs.h
-index 5eb57e5..dbc9c52 100644
---- a/php_imagick_defs.h
-+++ b/php_imagick_defs.h
-@@ -83,6 +83,10 @@ ZEND_BEGIN_MODULE_GLOBALS(imagick)
- zend_bool locale_fix;
- zend_bool progress_monitor;
- zend_bool skip_version_check;
-+
-+ zend_bool set_single_thread;
-+ zend_long shutdown_sleep_count;
-+
- php_imagick_callback *progress_callback;
- #ifdef PHP_IMAGICK_ZEND_MM
- MagickWand *keep_alive;
-diff --git a/tests/281_ini_settings_default.phpt b/tests/281_ini_settings_default.phpt
-new file mode 100644
-index 0000000..e397e98
---- /dev/null
-+++ b/tests/281_ini_settings_default.phpt
-@@ -0,0 +1,29 @@
-+--TEST--
-+OpenMP segfault hacks
-+--SKIPIF--
-+<?php
-+
-+
-+require_once(dirname(__FILE__) . '/skipif.inc');
-+
-+?>
-+--FILE--
-+<?php
-+
-+
-+$sleepCount = ini_get('imagick.shutdown_sleep_count');
-+$setSingleThread = ini_get('imagick.set_single_thread');
-+
-+if ($sleepCount != 10) {
-+ echo "imagick.shutdown_sleep_count is not set to 10 but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+if ($setSingleThread != 0) {
-+ echo "imagick.set_single_thread setting is not false but instead " . var_export($setSingleThread, true) ."\n";
-+}
-+
-+
-+echo "Complete".PHP_EOL;
-+?>
-+--EXPECTF--
-+Complete
-diff --git a/tests/282_ini_settings_set_falsy_string.phpt b/tests/282_ini_settings_set_falsy_string.phpt
-new file mode 100644
-index 0000000..c5f6bfd
---- /dev/null
-+++ b/tests/282_ini_settings_set_falsy_string.phpt
-@@ -0,0 +1,33 @@
-+--TEST--
-+OpenMP segfault hacks
-+
-+--INI--
-+imagick.shutdown_sleep_count=Off
-+imagick.set_single_thread=0
-+--SKIPIF--
-+<?php
-+
-+
-+require_once(dirname(__FILE__) . '/skipif.inc');
-+
-+?>
-+--FILE--
-+<?php
-+
-+
-+$sleepCount = ini_get('imagick.shutdown_sleep_count');
-+$setSingleThread = ini_get('imagick.set_single_thread');
-+
-+if ($sleepCount != 0) {
-+ echo "imagick.shutdown_sleep_count is not set to 0 but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+if ($setSingleThread != 0) {
-+ echo "imagick.set_single_thread setting is not 0 but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+
-+echo "Complete".PHP_EOL;
-+?>
-+--EXPECTF--
-+Complete
-diff --git a/tests/283_ini_settings_set_falsy_zero.phpt b/tests/283_ini_settings_set_falsy_zero.phpt
-new file mode 100644
-index 0000000..8e41a35
---- /dev/null
-+++ b/tests/283_ini_settings_set_falsy_zero.phpt
-@@ -0,0 +1,33 @@
-+--TEST--
-+OpenMP segfault hacks
-+
-+--INI--
-+imagick.shutdown_sleep_count=0
-+imagick.set_single_thread=0
-+--SKIPIF--
-+<?php
-+
-+
-+require_once(dirname(__FILE__) . '/skipif.inc');
-+
-+?>
-+--FILE--
-+<?php
-+
-+
-+$sleepCount = ini_get('imagick.shutdown_sleep_count');
-+$setSingleThread = ini_get('imagick.set_single_thread');
-+
-+if ($sleepCount != 0) {
-+ echo "imagick.shutdown_sleep_count is not set to 10 but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+if ($setSingleThread != 0) {
-+ echo "imagick.set_single_thread setting is not false but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+
-+echo "Complete".PHP_EOL;
-+?>
-+--EXPECTF--
-+Complete
-diff --git a/tests/284_ini_settings_set_truthy_number.phpt b/tests/284_ini_settings_set_truthy_number.phpt
-new file mode 100644
-index 0000000..fc0a0bb
---- /dev/null
-+++ b/tests/284_ini_settings_set_truthy_number.phpt
-@@ -0,0 +1,33 @@
-+--TEST--
-+OpenMP segfault hacks
-+
-+--INI--
-+imagick.shutdown_sleep_count=20
-+imagick.set_single_thread=1
-+--SKIPIF--
-+<?php
-+
-+
-+require_once(dirname(__FILE__) . '/skipif.inc');
-+
-+?>
-+--FILE--
-+<?php
-+
-+
-+$sleepCount = intval(ini_get('imagick.shutdown_sleep_count'));
-+$setSingleThread = ini_get('imagick.set_single_thread');
-+
-+if ($sleepCount != 20) {
-+ echo "imagick.shutdown_sleep_count is not set to 10 but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+if ($setSingleThread != 1) {
-+ echo "imagick.set_single_thread setting is not true but instead " . var_export($setSingleThread, true) ."\n";
-+}
-+
-+
-+echo "Complete".PHP_EOL;
-+?>
-+--EXPECTF--
-+Complete
-diff --git a/tests/285_ini_settings_set_truthy_string.phpt b/tests/285_ini_settings_set_truthy_string.phpt
-new file mode 100644
-index 0000000..c35a213
---- /dev/null
-+++ b/tests/285_ini_settings_set_truthy_string.phpt
-@@ -0,0 +1,33 @@
-+--TEST--
-+OpenMP segfault hacks
-+
-+--INI--
-+imagick.shutdown_sleep_count=On
-+imagick.set_single_thread=On
-+--SKIPIF--
-+<?php
-+
-+
-+require_once(dirname(__FILE__) . '/skipif.inc');
-+
-+?>
-+--FILE--
-+<?php
-+
-+
-+$sleepCount = intval(ini_get('imagick.shutdown_sleep_count'));
-+$setSingleThread = ini_get('imagick.set_single_thread');
-+
-+if ($sleepCount != 1) {
-+ echo "imagick.shutdown_sleep_count is not set to 1 but instead " . var_export($sleepCount, true) ."\n";
-+}
-+
-+if ($setSingleThread != 1) {
-+ echo "imagick.set_single_thread setting is not true but instead " . var_export($setSingleThread, true) ."\n";
-+}
-+
-+
-+echo "Complete".PHP_EOL;
-+?>
-+--EXPECTF--
-+Complete