Open hydrapolic opened 1 month ago
Confirmed, same issue here. This is coredump stacktrace:
swoole::curl::Multi::create_socket (this=this@entry=0x7ffff1400950, cp=0x7ffff147f030, sockfd=sockfd@entry=10) at /tmp/swoole-src/ext-src/swoole_curl.cc:77
77 handle->socket = socket;
(gdb) bt
#0 swoole::curl::Multi::create_socket (this=this@entry=0x7ffff1400950, cp=0x7ffff147f030, sockfd=sockfd@entry=10) at /tmp/swoole-src/ext-src/swoole_curl.cc:77
#1 0x00007ffff5ed677a in swoole::curl::Multi::set_event (this=0x7ffff1400950, cp=0x7ffff147f030, socket_ptr=<optimized out>, sockfd=10, action=1) at /tmp/swoole-src/ext-src/swoole_curl.cc:103
#2 0x00007ffff5ed67b5 in swoole::curl::Multi::handle_socket (easy=<optimized out>, s=<optimized out>, action=<optimized out>, userp=<optimized out>, socketp=<optimized out>) at /tmp/swoole-src/ext-src/swoole_curl.cc:51
#3 0x00007ffff761c1f2 in ?? () from /usr/lib/libcurl.so.4
#4 0x00007ffff75ec4dd in ?? () from /usr/lib/libcurl.so.4
#5 0x00007ffff75ece74 in ?? () from /usr/lib/libcurl.so.4
#6 0x00007ffff75ecf95 in ?? () from /usr/lib/libcurl.so.4
#7 0x00007ffff75ed1bf in ?? () from /usr/lib/libcurl.so.4
#8 0x00007ffff761d0d3 in curl_multi_cleanup () from /usr/lib/libcurl.so.4
#9 0x00007ffff5fafd18 in swoole::curl::Multi::~Multi (this=0x7ffff1400950, __in_chrg=<optimized out>) at /tmp/swoole-src/ext-src/php_swoole_curl.h:112
#10 zif_swoole_native_curl_exec (execute_data=0x7ffff084a480, return_value=0x7ffff1400a00) at /tmp/swoole-src/thirdparty/php/curl/interface.cc:2591
#11 0x00005555559d19bf in execute_ex ()
#12 0x00007ffff5ecf73d in swoole::PHPCoroutine::main_func (arg=0x7fffffff9fa0) at /tmp/swoole-src/ext-src/swoole_coroutine.cc:772
#13 0x00007ffff5f384d4 in std::function<void (void*)>::operator()(void*) const (__args#0=<optimized out>, this=<optimized out>) at /usr/include/c++/13.2.1/bits/std_function.h:591
#14 swoole::coroutine::Context::context_func_v2 (transfer=...) at /tmp/swoole-src/src/coroutine/context.cc:163
#15 0x00005555558f78af in make_fcontext ()
#16 0x0000000000000000 in ?? ()
After migrating to swoole https://github.com/swoole/swoole-src/releases/tag/v5.1.5 it seems to be gone.
Since 1.10.2024, our application started to crash:
From our Dockerfile:
There is a lot of inter-service communication between the microservices via Guzzlehttp and it only happens with coroutines enabled.
That time, curl was upgraded in Alpine 3.20: https://gitlab.alpinelinux.org/alpine/aports/-/commit/e17ad295e0810e938f9c4d61c21e44eaf1a59b51 https://gitlab.alpinelinux.org/alpine/aports/-/commit/badfda8e31a0b6e87e78237d7ee4455b35cd4c10
After reverting back to Alpine 3.19 it works fine.
Alpine 3.19: curl 8.9.1 Alpine 3.20: curl 8.10.1
Maybe related: https://github.com/swoole/swoole-src/issues/5500 https://github.com/curl/curl/issues/15127
php --ri openswoole
uname -a
php -v
gcc -v