|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2016-01-11 22:35 UTC] michael dot hartmann at refx dot com
Description: ------------ Downloaded Windows PHP 7.0.2 x64 (NTS), Wincache 2.0.0.4 and YAML 2.0.0(RC7) Website works 20% of the time, the other 80% of the time I get: Faulting application name: php-cgi.exe, version: 7.0.2.0, time stamp: 0x568d8141 Faulting module name: php7.dll, version: 7.0.2.0, time stamp: 0x568d8c40 Exception code: 0xc0000005 Fault offset: 0x000000000039be3e Faulting process id: 0xe58 Faulting application start time: 0x01d14cbc989dfd84 Faulting application path: E:\PHP7\php-cgi.exe Faulting module path: E:\PHP7\php7.dll Report Id: 4d36902c-9377-4fb8-bb37-890a846cf0a4 Faulting package full name: Faulting package-relative application ID: In the event-viewer I've used a 3rd party tool to find the fault address, which seems to be zend_mm_gc + 6E so it seems it crashes somewhere in the garbage collector. With 7.0.0 and 7.0.1 I got 100% crashes and the site never worked. Site is working perfectly fine in all PHP 5.5 and 5.6 versions. If need be, I would be open for a remote-desktop session from a trusted developer to diagnose the problem further. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 20:00:01 2025 UTC |
I've removed YAML from my php.ini and replaced the necessary functions with the Symfony/YAML parser. It is definitely more stable, but still crashes in 10% of the cases at the exact same location. Except Wincache, this PHP 7.0.2 installation is vanilla. Also I can only manage to make it crash if I reload a certain page that does array-value manipulations like this: // Assign specific display parameters to each price foreach ($prices as &$prc) { $price = $prc[$_SESSION['GEO']['CURRENCY']]; $price = $price < 79? ceil($price) : floor($price); $prc['PRICE'] = number_format($price, 0, $prdDisp['DECIMAL'], $prdDisp['THOU']); // Christmas pricing active? if ($this->config['B_CHRISTMAS_PRICES']) { $prc['OLD_PRICE'] = $prc['PRICE']; $price = $prc[$_SESSION['GEO']['CURRENCY'] . '_SPEC']; $price = $price < 79? ceil($price) : floor($price); $prc['PRICE'] = number_format($price, 0, $prdDisp['DECIMAL'], $prdDisp['THOU']); } } // Assign various properties to products foreach ($products as &$prd) { // Slug $prd['SLUG'] = trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($prd['DISPLAY_NAME'])), "-"); // Price $price = $prices[$prd['PRICE_CATEGORY']]; if ($price['PRICE'] != '0') { $prd['PRICE'] = $price['PRICE']; if ($price['OLD_PRICE']) { $prd['OLD_PRICE'] = $price['OLD_PRICE']; } $prd['CURRENCY'] = $prdDisp['SYMBOL']; } // Age $prd['NEW'] = (time() - strtotime($prd['RELEASEDATE'])) < (90 * 24 * 60 * 60); } As you can see, I add new array-elements in the foreach loop and I work on references instead of the values. If I comment this code out, then (even with the yaml.dll) the website get's a LOT more stable.