[php-src] Issue #15348: Assertion violation in ZendAccelerator.c
| From: | cmb69 | Date: | Sun, 11 Aug 2024 18:59:21 +0000 |
| Subject: | [php-src] Issue #15348: Assertion violation in ZendAccelerator.c | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-247476@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/15348
Author: cmb69
### Description
Even with a minimal x86 debug build on Windows, as soon as OPcache is enabled, php.exe always
triggers an assertion violation.
````
buildconf && configure --disable-all --enable-cli --disable-debug-pack --enable-debug
--disable-zts --enable-opcache --enable-test-ini && nmake
nmake run ARGS=-v
````
outputs
````
Assertion failed: ((uintptr_t)(accel_shared_globals->interned_strings).start & 0x7) == 0,
file ext\opcache\ZendAccelerator.c, line 2880
````
https://github.com/php/php-src/blob/bb35da336d560f0243ba5c7c19bc2aeb29f04ec6/ext/opcache/ZendAccelerator.c#L2890
Some relevant debug info:
````
&ZCSG(interned_strings) 0x200000c4
sizeof(zend_string_table) 0x18
hash_size+1 0x80000
sizeof(zend_string_table_pos_t) 0x4
sizeof(zend_string) 0x14
ZCSG(interned_strings).start 0x2020017c
````
So it seems to me that
sizeof(zend_string) doesn't meet the expectation of being a
multiple of 8.
I bisected this down to 1bae61a4d27372095496f0c6d9161ddbb735c98f. @arnaud-lb, can you please
clarify?
### PHP Version
PHP 8.4
### Operating System
Windows x86