php-rdkafka icon indicating copy to clipboard operation
php-rdkafka copied to clipboard

Segmentation fault after upgrading to php8.2.29

Open bpastukh opened this issue 3 months ago • 0 comments

Description

Hello, after upgrading to php:8.2.29 I've started seeing lots of SIGSEGV, Segmentation fault crashes. I'm connecting to MSK (managed kafka) using SASL_SSL protocol and SCRAM-SHA-512 mechanism All the details below. Will be glad to hear any piece of advice how to fix it. Thanks!

PHP 8.2.29 (cli) (built: Aug  4 2025 20:55:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.29, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.29, Copyright (c), by Zend Technologies

php -i | sed -n '/^rdkafka/,+6p'
rdkafka

rdkafka support => enabled
version => 6.0.5
build date => Aug 21 2025 11:48:48
librdkafka version (runtime) => 2.6.1
librdkafka version (build) => 2.6.1.255
Thread 61 "rdk:broker3" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 1359]
get_meta (p=p@entry=0x7faab374ebd0 "\037\001") at src/malloc/mallocng/meta.h:141
warning: 141    src/malloc/mallocng/meta.h: No such file or directory
(gdb) thread apply all bt full

Thread 61 (LWP 1359 "rdk:broker3"):
#0  get_meta (p=p@entry=0x7faab374ebd0 "\037\001") at src/malloc/mallocng/meta.h:141
        offset = 0
        index = 31
        base = 0x7faab374ebc0
        meta = 0x548
        area = <optimized out>
#1  0x00007faab4f4db9f in __libc_free (p=p@entry=0x7faab374ebd0) at src/malloc/mallocng/free.c:105
        g = <optimized out>
        idx = <optimized out>
        stride = <optimized out>
        start = <optimized out>
        end = <optimized out>
        self = <optimized out>
        all = <optimized out>
        mi = <optimized out>
        base = <optimized out>
        len = <optimized out>
        e = <optimized out>
#2  0x00007faab4f4d658 in free (p=p@entry=0x7faab374ebd0) at src/malloc/free.c:5
No locals.
#3  0x00007faab4f48f8d in closedir (dir=0x7faab374ebd0) at src/dirent/closedir.c:9
        ret = 0
#4  0x00007faab4925885 in OPENSSL_DIR_end () from /usr/lib/libcrypto.so.3
No symbol table info available.
#5  0x00007faab4aaff79 in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#6  0x00007faab4a3ed68 in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#7  0x00007faab4a3fa18 in OSSL_STORE_close () from /usr/lib/libcrypto.so.3
No symbol table info available.
#8  0x00007faab4a4c711 in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#9  0x00007faab4a4c9d8 in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#10 0x00007faab4a63862 in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#11 0x00007faab4a6404b in X509_STORE_CTX_get1_issuer () from /usr/lib/libcrypto.so.3
No symbol table info available.
#12 0x00007faab4a6769f in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#13 0x00007faab4a68ab1 in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#14 0x00007faab4a696ec in ?? () from /usr/lib/libcrypto.so.3
No symbol table info available.
#15 0x00007faab4c0d12d in ?? () from /usr/lib/libssl.so.3
No symbol table info available.
#16 0x00007faab4c67312 in ?? () from /usr/lib/libssl.so.3
No symbol table info available.
#17 0x00007faab4c63a4b in ?? () from /usr/lib/libssl.so.3
No symbol table info available.
#18 0x00007faab3c19de1 in rd_kafka_transport_ssl_handshake () from /usr/lib/librdkafka.so.1
No symbol table info available.
#19 0x00007faab3c2a4ce in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#20 0x00007faab3b4cac4 in rd_kafka_transport_io_serve () from /usr/lib/librdkafka.so.1
No symbol table info available.
#21 0x00007faab3a9d6e1 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#22 0x00007faab3a9e887 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#23 0x00007faab3a9edad in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#24 0x00007faab4f6e9e7 in start_c11 (p=<optimized out>) at src/thread/pthread_create.c:215
        args = <optimized out>
        start = <optimized out>
#25 0x00007faab4f70314 in __clone () at src/thread/x86_64/clone.s:22
No locals.
Backtrace stopped: frame did not save the PC

Thread 60 (LWP 1358 "rdk:broker1"):
#0  __cp_end () at src/thread/x86_64/syscall_cp.s:29
No locals.
#1  0x00007faab4f6dcb5 in __syscall_cp_c (nr=7, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>, z=0) at src/thread/pthread_cancel.c:33
        self = 0x7faab3559b30
        r = <optimized out>
        st = <optimized out>
#2  0x00007faab4f65ab5 in poll (fds=<optimized out>, n=<optimized out>, timeout=<optimized out>) at src/select/poll.c:9
No locals.
#3  0x00007faab3b4c390 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#4  0x00007faab3b4ca3f in rd_kafka_transport_io_serve () from /usr/lib/librdkafka.so.1
No symbol table info available.
#5  0x00007faab3a9d6e1 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#6  0x00007faab3a9e887 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#7  0x00007faab3a9edad in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#8  0x00007faab4f6e9e7 in start_c11 (p=<optimized out>) at src/thread/pthread_create.c:215
        args = <optimized out>
        start = <optimized out>
#9  0x00007faab4f70314 in __clone () at src/thread/x86_64/clone.s:22
No locals.
Backtrace stopped: frame did not save the PC

Thread 59 (LWP 1357 "rdk:broker2"):
#0  __cp_end () at src/thread/x86_64/syscall_cp.s:29
No locals.
#1  0x00007faab4f6dcb5 in __syscall_cp_c (nr=7, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>, z=0) at src/thread/pthread_cancel.c:33
        self = 0x7faab359fb30
        r = <optimized out>
        st = <optimized out>
#2  0x00007faab4f65ab5 in poll (fds=<optimized out>, n=<optimized out>, timeout=<optimized out>) at src/select/poll.c:9
No locals.
#3  0x00007faab3b4c390 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#4  0x00007faab3b4ca3f in rd_kafka_transport_io_serve () from /usr/lib/librdkafka.so.1
No symbol table info available.
#5  0x00007faab3a9d6e1 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#6  0x00007faab3a9e887 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#7  0x00007faab3a9efa5 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#8  0x00007faab4f6e9e7 in start_c11 (p=<optimized out>) at src/thread/pthread_create.c:215
        args = <optimized out>
        start = <optimized out>
#9  0x00007faab4f70314 in __clone () at src/thread/x86_64/clone.s:22
No locals.
Backtrace stopped: frame did not save the PC

Thread 58 (LWP 1356 "rdk:broker-1"):
#0  __cp_end () at src/thread/x86_64/syscall_cp.s:29
No locals.
#1  0x00007faab4f6dcb5 in __syscall_cp_c (nr=202, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>, z=0) at src/thread/pthread_cancel.c:33
        self = 0x7faab35d9b30
        r = <optimized out>
        st = <optimized out>
#2  0x00007faab4f6d283 in __futex4_cp (addr=0x7faab35d5804, op=128, val=2, to=<optimized out>) at src/thread/__timedwait.c:24
        r = <optimized out>
        r = <optimized out>
#3  __timedwait_cp (addr=addr@entry=0x7faab35d5804, val=val@entry=2, clk=clk@entry=0, at=at@entry=0x7faab35d5870, priv=128, priv@entry=1) at src/thread/__timedwait.c:52
        r = <optimized out>
        to = {tv_sec = 0, tv_nsec = 999999760}
        top = <optimized out>
#4  0x00007faab4f6e052 in __pthread_cond_timedwait (c=0x7faab329d878, m=0x7faab329d850, ts=0x7faab35d5870) at src/thread/pthread_cond_timedwait.c:100
        node = {prev = 0x0, next = 0x0, state = 0, barrier = 2, notify = 0x0}
        e = <optimized out>
        seq = 2
        clock = <optimized out>
        cs = 0
        shared = 0
        oldstate = <optimized out>
        tmp = <optimized out>
        fut = 0x7faab35d5804
#5  0x00007faab4f6d43e in cnd_timedwait (c=<optimized out>, m=<optimized out>, ts=<optimized out>) at src/thread/cnd_timedwait.c:7
        ret = <optimized out>
#6  0x00007faab3b05112 in rd_kafka_q_pop_serve () from /usr/lib/librdkafka.so.1
No symbol table info available.
#7  0x00007faab3a9d751 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#8  0x00007faab3a9ea41 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#9  0x00007faab3a9f1c6 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#10 0x00007faab4f6e9e7 in start_c11 (p=<optimized out>) at src/thread/pthread_create.c:215
        args = <optimized out>
        start = <optimized out>
#11 0x00007faab4f70314 in __clone () at src/thread/x86_64/clone.s:22
No locals.
Backtrace stopped: frame did not save the PC

Thread 57 (LWP 1355 "rdk:main"):
#0  __cp_end () at src/thread/x86_64/syscall_cp.s:29
No locals.
#1  0x00007faab4f6dcb5 in __syscall_cp_c (nr=202, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>, z=0) at src/thread/pthread_cancel.c:33
        self = 0x7faab35ffb30
        r = <optimized out>
        st = <optimized out>
#2  0x00007faab4f6d283 in __futex4_cp (addr=0x7faab35fbec4, op=128, val=2, to=<optimized out>) at src/thread/__timedwait.c:24
        r = <optimized out>
        r = <optimized out>
#3  __timedwait_cp (addr=addr@entry=0x7faab35fbec4, val=val@entry=2, clk=clk@entry=0, at=at@entry=0x7faab35fbf40, priv=128, priv@entry=1) at src/thread/__timedwait.c:52
        r = <optimized out>
        to = {tv_sec = 0, tv_nsec = 963999880}
        top = <optimized out>
#4  0x00007faab4f6e052 in __pthread_cond_timedwait (c=0x7faab36831b8, m=0x7faab3683190, ts=0x7faab35fbf40) at src/thread/pthread_cond_timedwait.c:100
        node = {prev = 0x0, next = 0x0, state = 0, barrier = 2, notify = 0x0}
        e = <optimized out>
        seq = 2
        clock = <optimized out>
        cs = 0
        shared = 0
        oldstate = <optimized out>
        tmp = <optimized out>
        fut = 0x7faab35fbec4
#5  0x00007faab4f6d43e in cnd_timedwait (c=<optimized out>, m=<optimized out>, ts=<optimized out>) at src/thread/cnd_timedwait.c:7
        ret = <optimized out>
#6  0x00007faab3b0551a in rd_kafka_q_serve () from /usr/lib/librdkafka.so.1
No symbol table info available.
#7  0x00007faab3a81c17 in ?? () from /usr/lib/librdkafka.so.1
No symbol table info available.
#8  0x00007faab4f6e9e7 in start_c11 (p=<optimized out>) at src/thread/pthread_create.c:215
        args = <optimized out>
        start = <optimized out>
#9  0x00007faab4f70314 in __clone () at src/thread/x86_64/clone.s:22
No locals.
Backtrace stopped: frame did not save the PC

Thread 1 (LWP 7 "php-fpm"):
#0  __cp_end () at src/thread/x86_64/syscall_cp.s:29
No locals.
#1  0x00007faab4f6dcb5 in __syscall_cp_c (nr=202, u=<optimized out>, v=<optimized out>, w=<optimized out>, x=<optimized out>, y=<optimized out>, z=0) at src/thread/pthread_cancel.c:33
        self = 0x7faab4facb28 <builtin_tls+136>
        r = <optimized out>
        st = <optimized out>
#2  0x00007faab4f6d283 in __futex4_cp (addr=0x7ffdc128f004, op=128, val=2, to=<optimized out>) at src/thread/__timedwait.c:24
        r = <optimized out>
        r = <optimized out>
#3  __timedwait_cp (addr=addr@entry=0x7ffdc128f004, val=val@entry=2, clk=clk@entry=0, at=at@entry=0x7ffdc128f080, priv=128, priv@entry=1) at src/thread/__timedwait.c:52
        r = <optimized out>
        to = {tv_sec = 4, tv_nsec = 999999780}
        top = <optimized out>
#4  0x00007faab4f6e052 in __pthread_cond_timedwait (c=0x7faab36830f8, m=0x7faab36830d0, ts=0x7ffdc128f080) at src/thread/pthread_cond_timedwait.c:100
        node = {prev = 0x0, next = 0x0, state = 0, barrier = 2, notify = 0x0}
        e = <optimized out>
        seq = 2
        clock = <optimized out>
        cs = 0
        shared = 0
        oldstate = <optimized out>
        tmp = <optimized out>
        fut = 0x7ffdc128f004
#5  0x00007faab4f6d43e in cnd_timedwait (c=<optimized out>, m=<optimized out>, ts=<optimized out>) at src/thread/cnd_timedwait.c:7
        ret = <optimized out>
#6  0x00007faab3b0551a in rd_kafka_q_serve () from /usr/lib/librdkafka.so.1
No symbol table info available.
#7  0x00007faab3ce3c95 in zim_RdKafka_poll (execute_data=0x7faab3e13820, return_value=0x7ffdc128f200) at /tmp/pear/temp/rdkafka/rdkafka.c:693
        __z = 0x7ffdc128f200
        intern = <optimized out>
        timeout = 5000
#8  0x0000561f413d3c23 in execute_ex ()
No symbol table info available.
#9  0x0000561f413d4e53 in zend_execute ()
No symbol table info available.
#10 0x0000561f413639b0 in zend_execute_scripts ()
No symbol table info available.
#11 0x0000561f412fd00e in php_execute_script ()
No symbol table info available.
#12 0x0000561f4104d5e6 in ?? ()
No symbol table info available.
#13 0x00007faab4f49496 in libc_start_main_stage2 (main=0x561f4104c860, argc=1, argv=0x7ffdc1291ba8) at src/env/__libc_start_main.c:95
        envp = 0x7ffdc1291bb8
#14 0x0000561f4104e3bf in _start ()
No symbol table info available.
(gdb) info sharedlibrary
From                To                  Syms Read   Shared Object Library
0x00007faab4ed6010  0x00007faab4ef46f8  Yes (*)     /usr/lib/libreadline.so.8
0x00007faab4dbe010  0x00007faab4dd1039  Yes (*)     /usr/lib/libiconv.so.2
0x00007faab4cd5010  0x00007faab4d711a4  Yes (*)     /usr/lib/libxml2.so.2
0x00007faab4c04010  0x00007faab4c769a9  Yes (*)     /usr/lib/libssl.so.3
0x00007faab47f1000  0x00007faab4ab5ed9  Yes (*)     /usr/lib/libcrypto.so.3
0x00007faab462a040  0x00007faab475edc0  Yes (*)     /usr/lib/libsqlite3.so.0
0x00007faab4608040  0x00007faab461644f  Yes (*)     /usr/lib/libz.so.1
0x00007faab4570010  0x00007faab45d83dc  Yes (*)     /usr/lib/libcurl.so.4
0x00007faab44e9010  0x00007faab4508dcf  Yes (*)     /usr/lib/libonig.so.5
0x00007faab44d7020  0x00007faab44dcf6e  Yes (*)     /usr/lib/libargon2.so.1
0x00007faab4f1c080  0x00007faab4f72e01  Yes         /lib/ld-musl-x86_64.so.1
0x00007faab4490010  0x00007faab44b86eb  Yes (*)     /usr/lib/libncursesw.so.6
0x00007faab444d040  0x00007faab4472ce3  Yes (*)     /usr/lib/liblzma.so.5
0x00007faab4417040  0x00007faab443d832  Yes (*)     /usr/lib/libcares.so.2
0x00007faab43ef010  0x00007faab43fe5be  Yes (*)     /usr/lib/libnghttp2.so.14
0x00007faab43bc010  0x00007faab43c2366  Yes (*)     /usr/lib/libidn2.so.0
0x00007faab43a8010  0x00007faab43a9511  Yes (*)     /usr/lib/libpsl.so.5
0x00007faab42fa040  0x00007faab4391232  Yes (*)     /usr/lib/libzstd.so.1
0x00007faab42e8040  0x00007faab42f02a6  Yes (*)     /usr/lib/libbrotlidec.so.1
0x00007faab4151010  0x00007faab417cacf  Yes (*)     /usr/lib/libunistring.so.5
0x00007faab4120020  0x00007faab412076b  Yes (*)     /usr/lib/libbrotlicommon.so.1
0x00007faab3d11bc0  0x00007faab3dca6a4  Yes (*)     /usr/local/lib/php/extensions/no-debug-non-zts-20220829/opcache.so
0x00007faab402b040  0x00007faab404cd4d  Yes (*)     /usr/lib/libgcc_s.so.1
0x00007faab401e400  0x00007faab40230e1  Yes (*)     /usr/local/lib/php/extensions/no-debug-non-zts-20220829/bcmath.so
0x00007faab3ce1d60  0x00007faab3ced262  Yes         /usr/local/lib/php/extensions/no-debug-non-zts-20220829/rdkafka.so
0x00007faab3a73040  0x00007faab3c38706  Yes (*)     /usr/lib/librdkafka.so.1
0x00007faab3a38010  0x00007faab3a45fab  Yes (*)     /usr/lib/libsasl2.so.3
0x00007faab3a11040  0x00007faab3a2e90b  Yes (*)     /usr/lib/liblz4.so.1
0x00007faab39f88f0  0x00007faab3a03314  Yes (*)     /usr/local/lib/php/extensions/no-debug-non-zts-20220829/sodium.so
0x00007faab39aa020  0x00007faab39dc85a  Yes (*)     /usr/lib/libsodium.so.26
0x00007faab3717010  0x00007faab3718770  Yes (*)     /usr/lib/sasl2/libanonymous.so
0x00007faab3711010  0x00007faab37129ab  Yes (*)     /usr/lib/sasl2/libplain.so
0x00007faab370a010  0x00007faab370c63a  Yes (*)     /usr/lib/sasl2/libsasldb.so
0x00007faab36fc010  0x00007faab3702fba  Yes (*)     /usr/lib/libgdbm.so.6
(*): Shared library is missing debugging information.

php-rdkafka Version

6.0.5

librdkafka Version

2.6.1

PHP Version

8.2.29

Operating System

Alpine

Kafka Version

MSK 2.8.0

bpastukh avatar Aug 21 '25 14:08 bpastukh