octane: FrankenPHP crashes on high loads

Octane Version

v2.2.5

Laravel Version

10.38.2

PHP Version

8.2.13

What server type are you using?

FrankenPHP

Server Version

v1.0.1

Database Driver & Version

No response

Description

When I run a load test a fresh laravel app using apache utils tools ab the server suddenly caches. for example

pc@pc:~$ ab -n 100 -c 10 http://127.0.0.1:8000/
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...apr_socket_recv: Connection refused (111)
Total of 11 requests completed

This issue happens when the concurrency is high, when running 10 times the number of requests with low concurrency I get great results, Note that this scenario doesn’t always happen, It happens randomly when load testing with high concurrency

pc@pc:~$ ab -n 1000 -c 1 http://127.0.0.1:8000/
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        Caddy
Server Hostname:        127.0.0.1
Server Port:            8000

Document Path:          /
Document Length:        27514 bytes

Concurrency Level:      1
Time taken for tests:   4.885 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      28621000 bytes
HTML transferred:       27514000 bytes
Requests per second:    204.72 [#/sec] (mean)
Time per request:       4.885 [ms] (mean)
Time per request:       4.885 [ms] (mean, across all concurrent requests)
Transfer rate:          5721.89 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     1    5  36.6      1     399
Waiting:        1    1   0.7      1      11
Total:          1    5  36.6      1     399

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      1
  95%      2
  98%      5
  99%    161
 100%    399 (longest request)

While debugging this, I noticed when running ./frankenphp -v I see that the used php version is 8.3.0 while my local php version is used to serve the application is 8.2.13

Steps To Reproduce

Here is a github repo containing a fresh laravel app with latest octane installed, just pull and run the following commands

  • composer i
  • cp .env.example .env
  • php artisan key:generate
  • php artisan octane:install --server=frankenphp
  • php artisan octane:start --server=frankenphp

Then in another terminal tab run ab -n 1000 -c 10 http://127.0.0.1:8000/

https://github.com/mo7zayed/frankenphp-issue

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Comments: 63 (27 by maintainers)

Commits related to this issue

Most upvoted comments

The patches are these:

The bug is being tracked upstream: https://github.com/php/php-src/issues/13648 It seems to only affect projects using a recent version of OpenSSL with a recent version of Musl (it’s the case of the static binary of FrankenPHP).

In the meantime, a workaround is to use the Docker image instead of the static binary, or to compile a dynamically linked build of FrankenPHP.

As this bug isn’t in Octane (nor in FrankenPHP directly), I think that this issue can be closed or locked.

For the record, I created a guide explaining how to gather a stack trace with Octane and similar solutions: https://frankenphp.dev/docs/contributing/#debugging-segmentation-faults-with-static-builds It uses static builds, but once you have a dynamic build (https://frankenphp.dev/docs/compile/), the process is the same.

Complementing @dunglas, if you don’t have time, tell me how did you run your tests and i can try to get the stack trace. I have Ubuntu amd64 and arm64 available. @dunglas if you need a vps amd64 or arm64 tell me and i can spin up for you in hetzner in my account.

@sneycampos Worker count doesn’t make a difference for me. I’m able to reproduce the problem with 1, 10 and 20 workers.

Thanks to the help of @binaryfire, I managed to reproduce on a Linux box.

This is a problem with the OpenSSL PHP extension, which doesn’t look directly to FrankenPHP. As a workaround, using the Docker image instead of the static build seems to fix the issue.

Here is the stack trace:

Stack trace
#1  0x0000783330654ec3 in __libc_free (p=0x7832da600cb0) at src/malloc/mallocng/free.c:105
#2  0x000078332fef89f0 in EVP_CIPHER_CTX_reset ()
#3  0x000078332f15bf83 in php_openssl_encrypt (data=0x7832d67946a8 "cdcfc94a44f1372ecc088f6e0abca9d4c1416db0|XFaOVGRiKdwkZpamJ3fb2fXpv4vvguazIfVNxK8R", data_len=81, method=0x7832d7995220 "aes-256-cbc", method_len=11,
    password=0x7832d67acd88 "\036\216/a\363-\257e\332Wu㖂&\033%\341\307\036O\243hOX(\257\204\346j\334\t", password_len=32, options=0, iv=0x7832d6686558 "\\\226\024Y\204:#b\276+1b\332\034%\225", iv_len=16, tag=0x7832d7818a40, tag_len=16,
    aad=0x783330d21ef5 "", aad_len=0) at /go/src/app/dist/static-php-cli/source/php-src/ext/openssl/openssl.c:7700
#4  0x000078332f15c126 in zif_openssl_encrypt (execute_data=0x7832d78189a0, return_value=0x7832d7818970) at /go/src/app/dist/static-php-cli/source/php-src/ext/openssl/openssl.c:7719
#5  0x000078332ef7351f in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER () at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend_vm_execute.h:1337
#6  execute_ex (ex=0x7832d78171d0) at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend_vm_execute.h:57216
#7  0x000078332edcfec2 in zend_call_function (fci=0x7832dafe9720, fci_cache=0x7832dafe96f0) at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend_execute_API.c:957
#8  0x000078332eca9591 in zif_frankenphp_handle_request (execute_data=<optimized out>, return_value=0x7832d7817140) at frankenphp.c:371
#9  0x000078332ef7351f in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER () at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend_vm_execute.h:1337
#10 execute_ex (ex=0x7832d7817020) at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend_vm_execute.h:57216
#11 0x000078332ef908a7 in zend_execute (op_array=0x7832d7866000, return_value=0x0) at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend_vm_execute.h:61604
#12 0x000078332edfca5c in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /go/src/app/dist/static-php-cli/source/php-src/Zend/zend.c:1881
#13 0x000078332ed3d05a in php_execute_script (primary_file=0x7832dafef660) at /go/src/app/dist/static-php-cli/source/php-src/main/main.c:2523
#14 0x000078332ecaa4f1 in frankenphp_execute_script (file_name=0x7832d946ab00 "4b48bc1af71891ab467ffde5c30d1b724928ab8c9dee168d597ce7f9e1dc9498") at frankenphp.c:825
#15 0x000078332eca7c37 in _cgo_d49d0ae4a108_Cfunc_frankenphp_execute_script (v=0xc000810dd8) at /tmp/go-build/cgo-gcc-prolog:55
#16 0x000078332d966a01 in runtime.asmcgocall () at /usr/local/go/src/runtime/asm_amd64.s:918
#17 0x000000c0008016c0 in ?? ()
#18 0x00007832dafef7d0 in ?? ()
#19 0x00007832dafef834 in ?? ()
#20 0x0000000000000000 in ?? ()

@dunglas No worries! Will do it later tonight and DM you the details on X

@nogamenofun98 that’s the point the logs looks good but the process crashes.

@nogamenofun98 I wonder if the log is also displaying what I am seeing.

Octane crashes using FrankenPHP under high load with no error message or anything. The process just stops.

I get this issue without even using stress test software. Just reloading the page over and over again eventually it happens.

@binaryfire @nogamenofun98 the issue still there when running with high concurrency ab -n 1000 -c 100 http://127.0.0.1:8000/

frankenphp -v

FrankenPHP v1.1.0 PHP 8.3.2 Caddy v2.7.6 h1:w0NymbG2m9PcvKWsrXO6EEkY9Ru4FJK8uQbYcev1p3A=

php artisan octane:start --server=frankenphp --log-level=debug

mo7zayed@mo7zayed:~/Desktop/work/mo7zayed/habd/frankenphp-issue$ php artisan octane:start --server=frankenphp --log-level=debug
{"level":"info","ts":1707319244.5531957,"msg":"using provided configuration","config_file":"/home/mo7zayed/Desktop/work/mo7zayed/habd/frankenphp-issue/vendor/laravel/octane/src/Commands/stubs/Caddyfile","config_adapter":""}
{"level":"info","ts":1707319244.5544229,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
{"level":"info","ts":1707319244.554588,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc000135b00"}
{"level":"info","ts":1707319244.6014946,"msg":"FrankenPHP started 🐘","php_version":"8.3.2"}
{"level":"info","ts":1707319244.6016219,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
{"level":"info","ts":1707319244.6017444,"msg":"autosaved config (load with --resume flag)","file":"/home/mo7zayed/.config/caddy/autosave.json"}
{"level":"info","ts":1707319244.601749,"msg":"serving initial configuration"}
{"level":"warn","ts":1707319244.604494,"logger":"tls","msg":"storage cleaning happened too recently; skipping for now","storage":"FileStorage:/home/mo7zayed/.local/share/caddy","instance":"399ac890-5e06-4a17-98b9-93c0047fb96c","try_again":1707405644.6044931,"try_again_in":86399.999999691}
{"level":"info","ts":1707319244.6045303,"logger":"tls","msg":"finished cleaning storage units"}
{"level":"info","ts":1707319249.5749884,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35480","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.135632514,"size":27514,"status":200,"resp_headers":{"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"]}}
{"level":"info","ts":1707319249.619355,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35862","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.040484327,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.6216817,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35854","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.042802276,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.6238704,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35832","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.0449992,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.625515,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35850","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.046624696,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.6281385,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35874","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"Accept":["*/*"],"User-Agent":["ApacheBench/2.3"]}},"bytes_read":0,"user_id":"","duration":0.049255577,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.6336591,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35712","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.055294461,"size":27514,"status":200,"resp_headers":{"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"]}}
{"level":"info","ts":1707319249.6337557,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35648","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.056218609,"size":27514,"status":200,"resp_headers":{"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"]}}
{"level":"info","ts":1707319249.6337779,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35598","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.05582133,"size":27514,"status":200,"resp_headers":{"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"]}}
{"level":"info","ts":1707319249.6359093,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35912","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.058125784,"size":27514,"status":200,"resp_headers":{"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"]}}
{"level":"info","ts":1707319249.6360104,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35780","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.057115792,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.6362917,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35704","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.058490671,"size":27514,"status":200,"resp_headers":{"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"]}}
{"level":"info","ts":1707319249.636529,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35816","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.058823379,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.636589,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35792","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.058264716,"size":27514,"status":200,"resp_headers":{"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"]}}
{"level":"info","ts":1707319249.6366494,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35918","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.058939208,"size":27514,"status":200,"resp_headers":{"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[]}}
{"level":"info","ts":1707319249.6368454,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35794","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"Accept":["*/*"],"User-Agent":["ApacheBench/2.3"]}},"bytes_read":0,"user_id":"","duration":0.058600462,"size":27514,"status":200,"resp_headers":{"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"]}}
{"level":"info","ts":1707319249.636907,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35586","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"Accept":["*/*"],"User-Agent":["ApacheBench/2.3"]}},"bytes_read":0,"user_id":"","duration":0.059374452,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.6369631,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35564","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.059686996,"size":27514,"status":200,"resp_headers":{"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"]}}
{"level":"info","ts":1707319249.6372929,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35904","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.059141035,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.638458,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35632","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060936682,"size":27514,"status":200,"resp_headers":{"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"]}}
{"level":"info","ts":1707319249.638476,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35808","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060681099,"size":27514,"status":200,"resp_headers":{"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"]}}
{"level":"info","ts":1707319249.6384945,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35506","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061327262,"size":27514,"status":200,"resp_headers":{"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"]}}
{"level":"info","ts":1707319249.6384957,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35664","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060114824,"size":27514,"status":200,"resp_headers":{"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"]}}
{"level":"info","ts":1707319249.6385448,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35926","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060798612,"size":27514,"status":200,"resp_headers":{"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"]}}
{"level":"info","ts":1707319249.6385489,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35738","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061030575,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.6385581,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35522","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061386924,"size":27514,"status":200,"resp_headers":{"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"]}}
{"level":"info","ts":1707319249.6385934,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35740","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061016102,"size":27514,"status":200,"resp_headers":{"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"]}}
{"level":"info","ts":1707319249.6385915,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35646","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"Accept":["*/*"],"User-Agent":["ApacheBench/2.3"]}},"bytes_read":0,"user_id":"","duration":0.060946704,"size":27514,"status":200,"resp_headers":{"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"]}}
{"level":"info","ts":1707319249.6386025,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35658","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.06131577,"size":27514,"status":200,"resp_headers":{"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"]}}
{"level":"info","ts":1707319249.6387227,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35494","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061580674,"size":27514,"status":200,"resp_headers":{"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"]}}
{"level":"info","ts":1707319249.6387908,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35818","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"Accept":["*/*"],"User-Agent":["ApacheBench/2.3"]}},"bytes_read":0,"user_id":"","duration":0.059937917,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.6389155,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35696","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060775779,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.63896,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35520","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061784968,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.6391969,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35604","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"Accept":["*/*"],"User-Agent":["ApacheBench/2.3"]}},"bytes_read":0,"user_id":"","duration":0.06090024,"size":27514,"status":200,"resp_headers":{"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"]}}
{"level":"info","ts":1707319249.6392758,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35496","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.062049696,"size":27514,"status":200,"resp_headers":{"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[]}}
{"level":"info","ts":1707319249.6395855,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35760","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060607462,"size":27514,"status":200,"resp_headers":{"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"]}}
{"level":"info","ts":1707319249.6396341,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35754","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060593694,"size":27514,"status":200,"resp_headers":{"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[]}}
{"level":"info","ts":1707319249.6397827,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35574","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.062558146,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}
{"level":"info","ts":1707319249.6398168,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35746","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.060757556,"size":27514,"status":200,"resp_headers":{"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"]}}
{"level":"info","ts":1707319249.6401708,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35618","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.062114074,"size":27514,"status":200,"resp_headers":{"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"],"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"]}}
{"level":"info","ts":1707319249.6402214,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"35672","client_ip":"127.0.0.1","proto":"HTTP/1.0","method":"GET","host":"127.0.0.1:8000","uri":"/","headers":{"User-Agent":["ApacheBench/2.3"],"Accept":["*/*"]}},"bytes_read":0,"user_id":"","duration":0.061841638,"size":27514,"status":200,"resp_headers":{"Cache-Control":["private, must-revalidate"],"Date":["Wed, 07 Feb 2024 15:20:49 GMT"],"Pragma":["no-cache"],"Expires":["-1"],"Set-Cookie":[],"Server":["Caddy"],"X-Powered-By":["PHP/8.3.2"],"Content-Type":["text/html; charset=UTF-8"]}}

Yeah, it has crashed and no longer running