[php-src] Issue #12809: Segmentation fault in exception handler with CALL VM on AArch64
| From: | pfustc | Date: | Tue, 28 Nov 2023 08:52:02 +0000 |
| Subject: | [php-src] Issue #12809: Segmentation fault in exception handler with CALL VM on AArch64 | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-245913@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/12809
Author: pfustc
### Description
Hi @dstogov,
I just see a new segmentation fault issue in exception handlers on AArch64 with CALL VM debug build.
I don't see this issue a few weeks ago, so it's probably caused by some recent patch.
The following code:
```php
<?php
$error = 1 / 0;
?>
```
Resulted in this output:
```
Segmentation fault (core dumped)
```
But I expected this output instead:
```
PHP Fatal error: Uncaught DivisionByZeroError: Division by zero in /mnt/local/www/index.php:2
Stack trace:
#0 {main}
thrown in /mnt/local/www/index.php on line 2
```
My PHP was built with
php Zend/zend_vm_gen.php --with-vm-kind=CALL and bash
configure --enable-debug.
My php.ini
```ini
opcache.enable_cli=1
opcache.jit=function
opcache.jit_buffer_size=16M
opcache.jit_debug=0x100
opcache.jit_hot_func=1
opcache.jit_hot_loop=1
opcache.jit_hot_return=1
opcache.jit_hot_side_exit=1
zend.assertions=1
```
This can happen on general Linux/AArch64 so it's easy to reproduce.
### PHP Version
PHP master @ https://github.com/php/php-src/commit/6bd680b824dbfec210d63c8dcd0f4b491cb16f8a
### Operating System
Ubuntu 22.04