-
Notifications
You must be signed in to change notification settings - Fork 7.8k
PHP exits with status code 139, only on aarch64 with extension opcache enabled #15957
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Is it status code 138 or 139 (the FrankenPHP ticket mentions either); 138 would be SIGBUS, 139 SIGSEGV. OPcache configuration copied from the FrankenPHP ticket:
Anyhow, can you please provide a stack backtrace? If that is not possible, try running with |
@cmb69 Thanks for noticing my typo. The real exit code is 139 and I just corrected it in the issues. I'll try the |
@cmb69 Setting Regarding the stack backtrace, do you have any pointers on how to use that inside of a docker container? I tried to write into |
Yeah, right
Maybe https://ddanilov.me/how-to-configure-core-dump-in-docker-container helps? |
You may also try building PHP with |
Also, you're using the JIT. Does the segfault also happen if you disable the JIT? |
@nielsdos Good catch. I missed that. JIT is almost certainly to blame then. |
@nielsdos I just tried it with JIT disabled, and it still exits with exit code 139. From |
@cmb69 Thanks for the link, I'll try that, but I'm off next week, but I can try it in two weeks! |
No feedback was provided. The issue is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so. Thank you. |
@nielsdos @iluuu1994 Ok, so I tested this again. You were right, disabling JIT fixed the problem. (don't know how I came to a different conclusion previously) Since it would still be great to have JIT working on ARM, I tried to create a core dump, but I'm not sure if I did it correctly. I followed the guide from the link for Docker setups and after starting the server again I got two new core dump files:
Then I ran
Then I ran
Since that seamed incorrect to me, I tried the same thing with the other file (
|
Ok I think I figured out that that the command needs to be This is the new output:
|
Any updates? |
I debugged this for a long time, through emulation, and after hitting a number of bugs in emulation for arm on intel in qemu/Valgrind that I had to work around, I did find one bug in FrankenPHP. (I don't have native ARM hardware, and I'm not aware of someone who is familiar with JIT who has that hardware, we all use emulation AFAIK). Unfortunately, it's not the one causing your issues. In fact, I can't reproduce your issue in emulation. I would need clearer instructions, and it's also possible that due to emulation I can't realistically hit this issue (i.e. it might be a race condition, we had one of those that I fixed a few months ago for FrankenPHP). Anyway, here's the bug I found: Anyway, this is not your bug because the image is compiled with a PHP without zend-signals. |
No feedback was provided. The issue is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so. Thank you. |
@nielsdos Thanks for looking into that! :) Lets hope this will be fixed in FrankenPHP. Regarding you not having a ARM hardware to reproduce that. I have a small Hetzner ARM vServer that I use to test the ARM images for solidtime. If you need this to test this further, I can give you access to that server, but it's a rather weak one. |
I don't know if it's related, but disabling Zend Signals is currently mandatory to use FrankenPHP. |
@korridor I'd advice you to first retest this on a latest 8.3 release, as I said there were quite a few JIT/opcache related fixes; including a race condition that affected FrankenPHP that I fixed some time ago. If you then still encounter the issue we can communicate on debugging on your server. Feel free to reach out to me via dossche[dot]niels[at]gmail[you know the TLD, but I don't spell it out for spambot reasons] |
Hello, Best, Pierre |
Description
I'm the maintainer of a PHP application called solidtime and we use FrankenPHP (with Laravel Octane) for our production image. That works fine, but we wanted to add support for ARM.
The problem when we start the PHP application with the ARM image, it exits with the status code 139.
I already reported this in the FrankenPHP GitHub repository (the issue) and we figured out that this problem only happens if
opcache
is enabled. Since it looks like an issue withopcache
and ARM, the maintainer of FrankenPHP (@dunglas) told me to report this issue here.PHP Version
8.3.7
Operating System
Debian GNU/Linux 12 (bookworm)
The text was updated successfully, but these errors were encountered: