Bug #71342 [Fbk->Opn]: Crash in "zend_mm_gc"
| From: | michael dot hartmann at refx dot com | Date: | Tue, 19 Jan 2016 23:28:16 +0000 |
| Subject: | Bug #71342 [Fbk->Opn]: Crash in "zend_mm_gc" | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-198780@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=71342&edit=1
ID: 71342
User updated by: michael dot hartmann at refx dot com
Reported by: michael dot hartmann at refx dot com
Summary: Crash in "zend_mm_gc"
-Status: Feedback
+Status: Open
Type: Bug
Package: Reproducible crash
Operating System: Windows 10
PHP Version: 7.0.2
Block user comment: N
Private report: N
New Comment:
I've created a full crash-dump. It's 187 MB. Even with simple ZIP compression I get it
down to 18 MB. Or is a mini-crash dump enough?
How do you want me to submit that file?
Previous Comments:
------------------------------------------------------------------------
[2016-01-19 10:00:22] ab@php.net
On creating core dumps, an info is here https://bugs.php.net/bugs-generating-backtrace-win32.php
or here https://msdn.microsoft.com/en-us/library/windows/desktop/bb787181%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
.
I would see RDP to your machine as not very rational, as you most likely miss all the tools needed
to debug and develop the PHP core on Windows. So quite some time would be needed for setups, etc.
Please lets see what we have in the dumps (be sure there's no sensitive information in there
before posting).
Thanks.
------------------------------------------------------------------------
[2016-01-18 02:53:51] michael dot hartmann at refx dot com
I wish I could send you a short script that causes it, but it seems everything "simple"
just works.
This website uses AltoRouter, Twig and some custom functions (mainly Twig extensions) to render our
website.
How do I create the core-dump or a complete backtrace? Keep in mind, I can't run this in the
command-line.
My offer that somebody trustworthy does a remote-desktop session and works on my computer directly
still stands.
------------------------------------------------------------------------
[2016-01-17 19:41:48] ab@php.net
@michael thanks for the follow up. Were it possible you to extract a small reproduce case? A
backtrace or a core dump could be very helpful, too. Please exclude any non core extensions while
doing that.
Thanks.
------------------------------------------------------------------------
[2016-01-14 22:28:57] michael dot hartmann at refx dot com
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.
------------------------------------------------------------------------
[2016-01-12 03:30:43] laruence@php.net
btw, I think it probably relates to YAML, could you try with out it? (like use a pure php
implementation of Yaml instead ext)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=71342
--
Edit this bug report at https://bugs.php.net/bug.php?id=71342&edit=1