Bug #53837 [Opn->Fbk]: Gettext extension crashes PHP/Apache
| From: | pajoye@php.net | Date: | Wed, 26 Jan 2011 11:36:11 +0000 |
| Subject: | Bug #53837 [Opn->Fbk]: Gettext extension crashes PHP/Apache | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-158199@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53837&edit=1
ID: 53837
Updated by: pajoye@php.net
Reported by: elacunza at binovo dot es
Summary: Gettext extension crashes PHP/Apache
-Status: Open
+Status: Feedback
Type: Bug
Package: Gettext related
Operating System: Windows
PHP Version: 5.3.5
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[2011-01-26 12:35:58] pajoye@php.net
No idea what's wrong on your config but gettext works just fine here.
Does it crash when no translation data are used? (no po) Or only when it
actually does the translation? If the former, pls send me the
translation data
so I can try to reproduce your problem.
Also the backtrace for VC9 looks wrong, it should not use msvcrt at all
but the
VC9 versions. It looks to me that there is a DLL mess on your box. Such
DLLs
mess causes free/heapfree crashes as different crt are use to alloc and
freed a
given resource.
------------------------------------------------------------------------
[2011-01-26 12:27:04] elacunza at binovo dot es
VC6 thread safe version version due to Apache. The backtrace has been
generated from CLI using VC6 ts.
I just tested the script with VC9 on the cli ts and it also crashes.
Backtrace for VC9:
Report for
php__PID__1636__Date__01_25_2011__Time_06_32_55PM__913__Second_Chance_Exception_C0000005.dmp
Type of Analysis Performed Crash Analysis
Machine Name WIN2008
Operating System Windows Vista Service Pack 2
Number Of Processors 2
Process ID 1636
Process Image c:\php535\php.exe
System Up-Time 1 day(s) 06:38:08
Process Up-Time 00:00:01
Thread 0 - System ID 4124
Entry point php!mainCRTStartup
Create time 25/01/2011 18:32:55
Time spent in user mode 0 Days 0:0:0.93
Time spent in kernel mode 0 Days 0:0:0.406
Function Arg 1 Arg 2 Arg 3 Source
ntdll!RtlpCoalesceFreeBlocks+35 00320000 002c8490 00c0f958
ntdll!RtlpFreeHeap+1e2 002c8490 002c8498 002c8498
ntdll!RtlFreeHeap+14e 00320000 00000000 002c8490
kernel32!HeapFree+14 00320000 00000000 002c8498
msvcrt!free+cd 002c8498 455f7365 6f6d4053
php_gettext!libintl_dcigettext+2df 002c7674 02a0f400
00000000
php_gettext!libintl_dcgettext+1a 00000000 02a0f400 000006c1
php_gettext!libintl_gettext+11 02a0f400 00322640 031ea0b0
php_gettext!zif_gettext+65 02a0f400 031e09a0 00000000
php5ts!zend_do_fcall_common_helper_SPEC+94e 00000000 02a405e8
00322640
php5ts!ZEND_DO_FCALL_SPEC_CONST_HANDLER+130 00c0fbd4 00322640
00c0fe70
php5ts!execute+2fe 02a405e8 00322600 00000000
php5ts!zend_execute_scripts+f6 00000008 00322640 00000000
php5ts!php_execute_script+245 00c0fe70 00322640 00000000
php!main+bf1 00000002 003225c8 003215a8
php!mainCRTStartup+e3 7ffd5000 00c0ffd4 776219bb
kernel32!BaseThreadInitThunk+e 7ffd5000 71387a67 00000000
ntdll!__RtlUserThreadStart+23 00402d78 7ffd5000 ffffffff
ntdll!_RtlUserThreadStart+1b 00402d78 7ffd5000 00000000
NTDLL!RTLPCOALESCEFREEBLOCKS+35
Detailed Info For Corrupt Heap
Heap 1 - 0x000f0000
Heap Name Default process heap
Heap Description This heap is created by default and shared by all
modules in the process
Reserved memory 1.050.192,03 TBytes
Committed memory 623.439,40 TBytes (59,36% of reserved)
Uncommitted memory 426.752,63 TBytes (40,64% of reserved)
Number of heap segments 1 segments
Number of uncommitted ranges 2,67403375434139E+16 range(s)
Size of largest uncommitted range 29.184,39 TBytes
Calculated heap fragmentation 93,16%
Segment Information
Base Address Reserved Size Committed Size Uncommitted Size Number of
uncommitted ranges Largest uncommitted block Calculated heap
fragmentation
0x0bc83dc4 101.713.488,03 TBytes -2.249.817.298.122.890.000.000 Bytes
2.147.910.400,63 TBytes 2,67403375434139E+16 29.184,39 TBytes 100,00%
Back to Top
In
php__PID__1636__Date__01_25_2011__Time_06_32_55PM__913__Second_Chance_Exception_C0000005.dmp
the assembly instruction at ntdll!RtlpCoalesceFreeBlocks+35 in
C:\Windows\System32\ntdll.dll from Microsoft Corporation has caused an
access violation exception (0xC0000005) when trying to read from memory
location 0x0029df42 on thread 0
Heap corruption was detected in heap 0x000f0000, however pageheap was
not enabled in this dump. Please follow the instructions in the
recommendation section for troubleshooting heap corruption issues.
Current NTGlobalFlags value: 0x0 Module Information
Image Name: C:\Windows\System32\ntdll.dll Symbol Type: PDB
Base address: 0x775e0000 Time Stamp: Sat Apr 11 08:26:41 2009
Checksum: 0x0012c163 Comments:
COM DLL: False Company Name: Microsoft Corporation
ISAPIExtension: False File Description: NT Layer DLL
ISAPIFilter: False File Version: 6.0.6002.18005
(lh_sp2rtm.090410-1830)
Managed DLL: False Internal Name: ntdll.dll
VB DLL: False Legal Copyright: © Microsoft Corporation. All rights
reserved.
Loaded Image Name: ntdll.dll Legal Trademarks:
Mapped Image Name: Original filename: ntdll.dll
Module name: ntdll Private Build:
Single Threaded: False Product Name: Microsoft® Windows® Operating
System
Module Size: 1,15 MBytes Product Version: 6.0.6002.18005
Symbol File Name:
c:\symcache\ntdll.pdb\2A581B1A8A244C51992668A826BF4FBB2\ntdll.pdb
Special Build: &
------------------------------------------------------------------------
[2011-01-25 19:22:34] pajoye@php.net
Which version/build do you use? VC9 or VC6? If VC6 please try using VC9.
It should
work in the CLI too. Btw, does it happen in CLI too?
------------------------------------------------------------------------
[2011-01-25 18:49:49] elacunza at binovo dot es
Description:
------------
We have an application working just fine on windows 2008 + apache 2.2.17
+ php 5.2.17 .
We updated to 5.3.5 and found repeatable PHP crashes, from within Apache
and also from command line.
It is repeatable, but not always (it crashes about 9 of 10 runs). Server
is virtualized as guest in a KVM host (debian lenny).
Test script:
---------------
<?php
$a = _('Albaran');
?>
Expected result:
----------------
I expected a clean end of php, with no output.
Actual result:
--------------
php__PID__4900__Date__01_25_2011__Time_06_33_38PM__118__Second_Chance_Exception_C0000005.dmp
Type of Analysis Performed Crash Analysis
Machine Name WIN2008
Operating System Windows Vista Service Pack 2
Number Of Processors 2
Process ID 4900
Process Image c:\php535\php.exe
System Up-Time 1 day(s) 06:38:51
Process Up-Time 00:00:01
Thread 0 - System ID 380
Entry point php!mainCRTStartup
Create time 25/01/2011 18:33:37
Time spent in user mode 0 Days 0:0:0.140
Time spent in kernel mode 0 Days 0:0:0.328
Function Arg 1 Arg 2 Arg 3 Source
ntdll!RtlpCoalesceFreeBlocks+35 00090000 00178490 00c0f958
ntdll!RtlpFreeHeap+1e2 00178490 00178498 00178498
ntdll!RtlFreeHeap+14e 00090000 00000000 00178490
kernel32!HeapFree+14 00090000 00000000 00178498
msvcrt!free+cd 00178498 455f7365 6f6d4053
php_gettext!libintl_dcigettext+2df 00177674 0290f0d0
00000000
php_gettext!libintl_dcgettext+1a 00000000 0290f0d0 000006c1
php_gettext!libintl_gettext+11 0290f0d0 00092640 030e9dc0
php_gettext!zif_gettext+65 0290f0d0 030e06b0 00000000
php5ts!zend_do_fcall_common_helper_SPEC+94e 00000000 02940550
00092640
php5ts!ZEND_DO_FCALL_SPEC_CONST_HANDLER+130 00c0fbd4 00092640
00c0fe70
php5ts!execute+2fe 02940550 00092600 00000000
php5ts!zend_execute_scripts+f6 00000008 00092640 00000000
php5ts!php_execute_script+245 00c0fe70 00092640 00000000
php!main+bf1 00000002 000925c8 000915a8
php!mainCRTStartup+e3 7ffdb000 00c0ffd4 776219bb
kernel32!BaseThreadInitThunk+e 7ffdb000 7139d704 00000000
ntdll!__RtlUserThreadStart+23 00402d78 7ffdb000 ffffffff
ntdll!_RtlUserThreadStart+1b 00402d78 7ffdb000 00000000
NTDLL!RTLPCOALESCEFREEBLOCKS+35
Detailed Info For Corrupt Heap
Heap 1 - 0x00180000
Heap Name Default process heap
Heap Description This heap is created by default and shared by all
modules in the process
Reserved memory 5.244.720,03 TBytes
Committed memory 2.097.264,00 TBytes (39,99% of reserved)
Uncommitted memory 3.147.456,03 TBytes (60,01% of reserved)
Number of heap segments 1 segments
Number of uncommitted ranges 996432412722 range(s)
Size of largest uncommitted range 29.440,41 TBytes
Calculated heap fragmentation 99,06%
Segment Information
Base Address Reserved Size Committed Size Uncommitted Size Number of
uncommitted ranges Largest uncommitted block Calculated heap
fragmentation
0x1f92dd0d 105.908.016,03 TBytes 52.428.912,00 TBytes 53.479.104,03
TBytes 996432412722 29.440,41 TBytes 99,94%
Back to Top
In
php__PID__4900__Date__01_25_2011__Time_06_33_38PM__118__Second_Chance_Exception_C0000005.dmp
the assembly instruction at ntdll!RtlpCoalesceFreeBlocks+35 in
C:\Windows\System32\ntdll.dll from Microsoft Corporation has caused an
access violation exception (0xC0000005) when trying to read from memory
location 0x0010ff3a on thread 0
Heap corruption was detected in heap 0x00180000, however pageheap was
not enabled in this dump. Please follow the instructions in the
recommendation section for troubleshooting heap corruption issues.
Current NTGlobalFlags value: 0x0 Module Information
Image Name: C:\Windows\System32\ntdll.dll Symbol Type: PDB
Base address: 0x775e0000 Time Stamp: Sat Apr 11 08:26:41 2009
Checksum: 0x0012c163 Comments:
COM DLL: False Company Name: Microsoft Corporation
ISAPIExtension: False File Description: NT Layer DLL
ISAPIFilter: False File Version: 6.0.6002.18005
(lh_sp2rtm.090410-1830)
Managed DLL: False Internal Name: ntdll.dll
VB DLL: False Legal Copyright: © Microsoft Corporation. All rights
reserved.
Loaded Image Name: ntdll.dll Legal Trademarks:
Mapped Image Name: Original filename: ntdll.dll
Module name: ntdll Private Build:
Single Threaded: False Product Name: Microsoft® Windows® Operating
System
Module Size: 1,15 MBytes Product Version: 6.0.6002.18005
Symbol File Name:
c:\symcache\ntdll.pdb\2A581B1A8A244C51992668A826BF4FBB2\ntdll.pdb
Special Build: &
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53837&edit=1