We have large scale deployment of kafka producers using confluent-kafka-go and come across many occurrences of crashes associated with the following assertion failure:rd_kafka_assert(NULL, rkmq->rkmq_msg_cnt > 0) in rdkafka_msg.h. It appears to occur more often while we have under replicated partitions or while we perform partition reassignment.
The following stack trace has been found to be shared among all the crash occurrences:
```[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program terminated with signal SIGABRT, Aborted.
+------------------------------------------------------------------------------+
| backtrace |
+------------------------------------------------------------------------------+
How to reproduce
================
We tried and have not yet been successful reproducing in a lab environment. We'd like to know of any suggestions of changes in the librdkafka code such that it prints out things useful to diagnose this issue. Also, we briefly reviewed the later librdkafka commits and didn't find anything that looks like it addresses this crash, but if we misidentified this, we would be happy to rebuild and retest with the lastest librdkafka commit in master.
Checklist
=========
Please provide the following information:
- [x] confluent-kafka-go and librdkafka version (`LibraryVersion()`):
confluent-kafka-go commit: `1112e2c08a15bce669a99cc35284a690fd2086b8`
librdkafka: `0.11.4-RC1B`
- [x] Apache Kafka broker version: 0.11.0.1
- [x] Client configuration: `ConfigMap{...}`
"bootstrap.servers": brokerList,
"queue.buffering.max.ms": "500",
"compression.codec": "gzip",
"batch.num.messages": "256",
"security.protocol": "ssl",
"queue.buffering.max.messages": 8000,
"broker.version.fallback": "0.10.2.1",
"statistics.interval.ms": 60000,
```
"debug": ".." as necessary)Hmm, interesting.
One thing that would be interesting is reproducing this with debug=broker,topic,metadata enabled and providing us with the logs.
@edenhill we shall try that, thanks! Hopefully it doesn't fill up our disks (or disk bandwidth)... :)
assert.log
@edenhill attach the producer log when assertion happened with debug=broker,topic,metadata Hope you can find what's going on... thx.
Thank you, will look into it!
+------------------------------------------------------------------------------+
| core dump backtrace |
+------------------------------------------------------------------------------+
Thank you for providing a backtrace and a log! ❤️
@edenhill Currently, the librdkafka was built without -DNDEBUG flag. I'm wonder what may happen if the DNDEBUG in the librdkafka build? How does the librdkafka handle the same situation w/wo the flag? Is there a recommend way to use librdkafka for the flag? What happens if we don't abort at that point. will it cause more corruption, or not.thanks!
librdkafka itself does not build differently with NDEBUG, but it is possible that included system header files might.
There is an --enable-devel option that enables some extra assertions, which you could try.
I've analysed your log and backtraces, and while I definitively think that something is wrong I haven't been able to identify exactly what. Also tried reproducing with lousy connections without success.
@edenhill what are the chances that --enable-devel will reveal assertions that will help track down this bug? Unfortunately, we can't reproduce this either in the lab, so we would have to enable this in production, so we need to make sure we don't cause more crashes, that wouldn't have occurred otherwise.
There are about 50 devel-asserts:
$ git grep dassert | wc -l
50
And they should not introduce any additional assert-crashes that don't actually show a problem.
There's quite a bit of dasserts in the queue code, so I do think it might help us find the issue
@edenhill we've set --enable-devel, and I'm seeing some crash stack traces I haven't noticed before, so I'll report them here even though I'm not sure whether they are related to this issue.
In all the below, we are using this commit, which includes the "connection on demand" code: https://github.com/edenhill/librdkafka/commit/ed23da66ed21dac4787f50d73afaaee531e97889
There are 3 different stack traces below. Please let me know if there's any other info I can provide.
stack trace 1
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006c039c in rd_kafka_msgq_insert_msgq (
destq=destq@entry=0x7fbac02463f8, srcq=0x7fbaacfdea80,
cmp=0x681f20 ) at rdkafka_partition.c:733
+------------------------------------------------------------------------------+
| backtrace |
+------------------------------------------------------------------------------+
#0 0x00000000006c039c in rd_kafka_msgq_insert_msgq (destq=destq@entry=0x7fbac02463f8, srcq=0x7fbaacfdea80, cmp=0x681f20 ) at rdkafka_partition.c:733
#1 0x00000000006c05bc in rd_kafka_retry_msgq (destq=destq@entry=0x7fbac02463f8, srcq=srcq@entry=0x7fb910041588, incr_retry=incr_retry@entry=0, max_retries=, backoff=backoff@entry=7928373100364, cmp=) at rdkafka_partition.c:784
#2 0x00000000006c071d in rd_kafka_toppar_retry_msgq (rktp=rktp@entry=0x7fbac0246300, rkmq=rkmq@entry=0x7fb910041588, incr_retry=0) at rdkafka_partition.c:807
#3 0x00000000006a3266 in rd_kafka_handle_Produce (rk=, rkb=, err=RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION, reply=, request=0x7fb910041400, opaque=0x7fbac0246300) at rdkafka_request.c:1883
#4 0x000000000069262e in rd_kafka_buf_callback (rk=, rkb=rkb@entry=0x7fbac0220e50, err=err@entry=RD_KAFKA_RESP_ERR_NO_ERROR, response=response@entry=0x7fb910041210, request=request@entry=0x7fb910041400) at rdkafka_buf.c:450
#5 0x000000000067669c in rd_kafka_req_response (rkbuf=0x7fb910041210, rkb=0x7fbac0220e50) at rdkafka_broker.c:1340
#6 rd_kafka_recv (rkb=rkb@entry=0x7fbac0220e50) at rdkafka_broker.c:1452
#7 0x000000000068ffd3 in rd_kafka_transport_io_event (rktrans=0x7fb9100404c0, events=5) at rdkafka_transport.c:1419
#8 0x0000000000690c9e in rd_kafka_transport_io_serve (rktrans=, timeout_ms=) at rdkafka_transport.c:1467
#9 0x000000000067d357 in rd_kafka_broker_serve (rkb=rkb@entry=0x7fbac0220e50, abs_timeout=abs_timeout@entry=7928374000285) at rdkafka_broker.c:2593
#10 0x000000000067e083 in rd_kafka_broker_producer_serve (rkb=0x7fbac0220e50) at rdkafka_broker.c:2882
#11 rd_kafka_broker_thread_main (arg=arg@entry=0x7fbac0220e50) at rdkafka_broker.c:3611
#12 0x00000000006d0007 in _thrd_wrapper_function (aArg=) at tinycthread.c:624
#13 0x00007fbb1cd73184 in start_thread (arg=0x7fbaacfe1700) at pthread_create.c:312
#14 0x00007fbb1c897ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
here are local vars in frame #0, some of which were created by this macro https://github.com/edenhill/librdkafka/blob/4e7a46701ecce7297b2298885da980be7856e5f9/src/rdsysqueue.h#L248:
local vars in frame 0
(gdb) info locals
_elm = 0x7fba240ca1d0
_last = 0x7fba080ba420
_aft = 0x0
at = 0x7fba4c03afc0
first = 0x7fba240ca1d0
dest_first = <optimized out>
__PRETTY_FUNCTION__ = "rd_kafka_msgq_insert_msgq"
stack trace 2
Program terminated with signal SIGSEGV, Segmentation fault.
#0 rd_kafka_msgset_writer_write_msg_headers (msetw=,
hdrs=0x7f699c03dd60) at rdkafka_msgset_writer.c:469
+------------------------------------------------------------------------------+
| backtrace |
+------------------------------------------------------------------------------+
#0 rd_kafka_msgset_writer_write_msg_headers (msetw=, hdrs=0x7f699c03dd60) at rdkafka_msgset_writer.c:469
#1 rd_kafka_msgset_writer_write_msg_v2 (msetw=, rkm=, Offset=, MsgAttributes=, free_cb=0x0) at rdkafka_msgset_writer.c:659
#2 0x00000000006d9ebf in rd_kafka_msgset_writer_write_msg (msetw=msetw@entry=0x7f6a61ff1220, rkm=rkm@entry=0x7f699c03d200, Offset=Offset@entry=61, MsgAttributes=MsgAttributes@entry=0 '\000', free_cb=free_cb@entry=0x0) at rdkafka_msgset_writer.c:692
#3 0x00000000006db3fe in rd_kafka_msgset_writer_write_msgq (rkmq=0x7f6a68252918, msetw=0x7f6a61ff1220) at rdkafka_msgset_writer.c:774
#4 rd_kafka_msgset_create_ProduceRequest (rkb=rkb@entry=0x7f6a68170f70, rktp=rktp@entry=0x7f6a68252820, MessageSetSizep=MessageSetSizep@entry=0x7f6a61ff1418) at rdkafka_msgset_writer.c:1235
#5 0x00000000006ac6eb in rd_kafka_ProduceRequest (rkb=rkb@entry=0x7f6a68170f70, rktp=rktp@entry=0x7f6a68252820) at rdkafka_request.c:1958
#6 0x000000000067e183 in rd_kafka_toppar_producer_serve (do_timeout_scan=0, next_wakeup=, now=6640202889974, rktp=0x7f6a68252820, rkb=0x7f6a68170f70) at rdkafka_broker.c:2790
#7 rd_kafka_broker_produce_toppars (do_timeout_scan=0, next_wakeup=, now=6640202889974, rkb=0x7f6a68170f70) at rdkafka_broker.c:2828
#8 rd_kafka_broker_producer_serve (rkb=0x7f6a68170f70) at rdkafka_broker.c:2873
#9 rd_kafka_broker_thread_main (arg=arg@entry=0x7f6a68170f70) at rdkafka_broker.c:3611
#10 0x00000000006d0007 in _thrd_wrapper_function (aArg=) at tinycthread.c:624
#11 0x00007f6af1313184 in start_thread (arg=0x7f6a61ff3700) at pthread_create.c:312
#12 0x00007f6af0e37ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
local vars in frames 0 and 1
(gdb) frame
#0 rd_kafka_msgset_writer_write_msg_headers (msetw=<optimized out>, hdrs=0x7f699c03dd60)
at rdkafka_msgset_writer.c:469
469 in rdkafka_msgset_writer.c
(gdb) info locals
i = 2
written = <optimized out>
rkbuf = 0x7f694c019130
hdr = 0x20
(gdb) frame 1
#1 rd_kafka_msgset_writer_write_msg_v2 (msetw=<optimized out>, rkm=<optimized out>,
Offset=<optimized out>, MsgAttributes=<optimized out>, free_cb=0x0) at rdkafka_msgset_writer.c:659
659 in rdkafka_msgset_writer.c
(gdb) info locals
rkbuf = <optimized out>
MessageSize = <optimized out>
varint_Length = "\242\020\065\223n"
varint_TimestampDelta = "\262\fj\177\000\000\210\020\377a"
varint_OffsetDelta = "z\177\000\000\f\000\000\000\000"
varint_KeyLen = ":\000\000\000"
varint_ValueLen = "\250\017\001Li"
varint_HeaderCount = "\324\375\003\200\020"
HeaderCount = <optimized out>
HeaderSize = <optimized out>
(gdb)
stack trace 3
Program terminated with signal SIGABRT, Aborted.
#0 runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:159
+------------------------------------------------------------------------------+
| backtrace |
+------------------------------------------------------------------------------+
#0 runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:159
#1 0x0000000000459372 in runtime.raisebadsignal (c=0x7f6cb2fda718, sig=6) at /usr/local/go/src/runtime/signal_unix.go:491
#2 0x0000000000459793 in runtime.badsignal (c=0x7f6cb2fda718, sig=6) at /usr/local/go/src/runtime/signal_unix.go:600
#3 0x0000000000458f78 in runtime.sigtrampgo (ctx=0x7f6cb2fda7c0, info=0x7f6cb2fda8f0, sig=6) at /usr/local/go/src/runtime/signal_unix.go:297
#4 0x0000000000471e53 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_amd64.s:352
#5
#6 0x00007f6d47556c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#7 0x00007f6d4755a028 in __GI_abort () at abort.c:89
#8 0x00007f6d4754fbf6 in __assert_fail_base (fmt=0x7f6d476a4018 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7dc84f "p", file=file@entry=0x7cc781 "rd.h", line=line@entry=101, function=function@entry=0x7e31f0 <__PRETTY_FUNCTION__.5801> "rd_malloc") at assert.c:92
#9 0x00007f6d4754fca2 in __GI___assert_fail (assertion=assertion@entry=0x7dc84f "p", file=file@entry=0x7cc781 "rd.h", line=line@entry=101, function=function@entry=0x7e31f0 <__PRETTY_FUNCTION__.5801> "rd_malloc") at assert.c:101
#10 0x000000000041b576 in rd_malloc (sz=280208498437018) at rd.h:101
#11 0x00000000006e8e5a in rd_malloc (sz=) at rdbuf.c:144
#12 rd_buf_alloc_segment0 (rbuf=rbuf@entry=0x7f6b50003448, size=280208498437018) at rdbuf.c:132
#13 0x00000000006e8e79 in rd_buf_alloc_segment (rbuf=rbuf@entry=0x7f6b50003448, min_size=, max_size=) at rdbuf.c:165
#14 0x00000000006e90e3 in rd_buf_write_ensure (rbuf=rbuf@entry=0x7f6b50003448, min_size=min_size@entry=140104249228592, max_size=max_size@entry=0) at rdbuf.c:206
#15 0x00000000006e929a in rd_buf_write (rbuf=rbuf@entry=0x7f6b50003448, payload=payload@entry=0x7f6c9001c8a0, size=size@entry=140104249228592) at rdbuf.c:447
#16 0x00000000006da57d in rd_kafka_buf_write (len=140104249228592, data=0x7f6c9001c8a0, rkbuf=0x7f6b50003420) at rdkafka_buf.h:712
#17 rd_kafka_msgset_writer_write_msg_headers (msetw=, hdrs=0x7f6c9001b810) at rdkafka_msgset_writer.c:470
#18 rd_kafka_msgset_writer_write_msg_v2 (msetw=, rkm=, Offset=, MsgAttributes=, free_cb=0x0) at rdkafka_msgset_writer.c:659
#19 0x00000000006d9ebf in rd_kafka_msgset_writer_write_msg (msetw=msetw@entry=0x7f6cb2fdb220, rkm=rkm@entry=0x7f6c9000b530, Offset=Offset@entry=104, MsgAttributes=MsgAttributes@entry=0 '\000', free_cb=free_cb@entry=0x0) at rdkafka_msgset_writer.c:692
#20 0x00000000006db3fe in rd_kafka_msgset_writer_write_msgq (rkmq=0x7f6cc424e678, msetw=0x7f6cb2fdb220) at rdkafka_msgset_writer.c:774
#21 rd_kafka_msgset_create_ProduceRequest (rkb=rkb@entry=0x7f6cc41dfb30, rktp=rktp@entry=0x7f6cc424e580, MessageSetSizep=MessageSetSizep@entry=0x7f6cb2fdb418) at rdkafka_msgset_writer.c:1235
#22 0x00000000006ac6eb in rd_kafka_ProduceRequest (rkb=rkb@entry=0x7f6cc41dfb30, rktp=rktp@entry=0x7f6cc424e580) at rdkafka_request.c:1958
#23 0x000000000067e183 in rd_kafka_toppar_producer_serve (do_timeout_scan=0, next_wakeup=, now=3766428500291, rktp=0x7f6cc424e580, rkb=0x7f6cc41dfb30) at rdkafka_broker.c:2790
#24 rd_kafka_broker_produce_toppars (do_timeout_scan=0, next_wakeup=, now=3766428500291, rkb=0x7f6cc41dfb30) at rdkafka_broker.c:2828
#25 rd_kafka_broker_producer_serve (rkb=0x7f6cc41dfb30) at rdkafka_broker.c:2873
#26 rd_kafka_broker_thread_main (arg=arg@entry=0x7f6cc41dfb30) at rdkafka_broker.c:3611
#27 0x00000000006d0007 in _thrd_wrapper_function (aArg=) at tinycthread.c:624
#28 0x00007f6d47af9184 in start_thread (arg=0x7f6cb2fdd700) at pthread_create.c:312
#29 0x00007f6d4761dffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
local vars in frames 15, 17, 18
(gdb) frame 15
#15 0x00000000006e929a in rd_buf_write (rbuf=rbuf@entry=0x7f6b50003448,
payload=payload@entry=0x7f6c9001c8a0, size=size@entry=140104249228592) at rdbuf.c:447
447 in rdbuf.c
(gdb) info locals
remains = 140104249228592
initial_absof = 92098
psrc = 0x7f6c9001c8a0 " "
__PRETTY_FUNCTION__ = "rd_buf_write"
(gdb) frame 17
#17 rd_kafka_msgset_writer_write_msg_headers (msetw=<optimized out>, hdrs=0x7f6c9001b810)
at rdkafka_msgset_writer.c:470
470 rdkafka_msgset_writer.c: No such file or directory.
(gdb) info locals
i = 0
written = <optimized out>
rkbuf = 0x7f6b50003420
hdr = 0x7f6c9001c880
(gdb) frame 18
#18 rd_kafka_msgset_writer_write_msg_v2 (msetw=<optimized out>, rkm=<optimized out>,
Offset=<optimized out>, MsgAttributes=<optimized out>, free_cb=0x0) at rdkafka_msgset_writer.c:659
659 in rdkafka_msgset_writer.c
(gdb) info locals
rkbuf = <optimized out>
MessageSize = <optimized out>
varint_Length = "\204\t5\223n"
varint_TimestampDelta = "\264#l\177\000\000\210\260", <incomplete sequence \375\262>
varint_OffsetDelta = "\320\001\000\000\f\000\000\000\000"
varint_KeyLen = "0\000\000\000"
varint_ValueLen = "\234\b\000Pk"
varint_HeaderCount = "\330\375\003\200\260"
HeaderCount = <optimized out>
HeaderSize = <optimized out>
(gdb)
Thanks!
Corey
Thank you for the great information.
Did you ever see this problems on a proper release which did not have the sparse connection patches in?
Hi @edenhill I searched all our core dumps for incidents of stack traces 1, 2, and 3 (detailed above) which occurred before we included the sparse connection patches, and came up with the following results:
found stack trace 1
found stack trace 3
did NOT find stack trace 2 (but it is pretty rare even now, so we can't really conclude much from it not having been found before the patches)
Thank you. What scale are we talking about here?
How many clients are running and how many crashes do you get in a week, day, ..?
@edenhill number of clients is around 15,000.
i'll give the crash frequency per stack trace:
stack trace 3: very rare
stack trace 1: about 1.6 per day on average (on various days: as many as 6 and as little as 0)
stack trace 2: very rare
And for the stack trace reported at the top of this issue (https://github.com/confluentinc/confluent-kafka-go/issues/203#issue-332163655), the frqeuency is: about 2 per day
That is a lot of clients :)
I'm not really sure what the problem is, and the relative rarity of the crashes doesn't really help either to narrow it down.
What could help is building librdkafka with --disable-optimization --enable-devel to get better stack traces when it crashes, the optimization currently removes too much info.
Would that be possible for you to try?
#15 0x00000000006e929a in rd_buf_write (rbuf=rbuf@entry=0x7f6b50003448,
payload=payload@entry=0x7f6c9001c8a0, size=size@entry=140104249228592) at rdbuf.c:447
The size variable value is 0x7f6c9001bd30 in hex, which looks very much like a heap pointer. This could either be optimizations playing tricks with the backtrace, or a stack issue.
@edenhill yes, we can try it. Since we're in production, we'll have watch out for slowdowns which could impact us, so it would be nice if there were a patch we could apply to capture the missing info only where it's needed, rather than turning off all optimizations, but if you don't think that's gonna do it, we'll just try what you suggest.
Also, if for any stack traces, you'd like to see any other gdb command output, let me know
Sorry, I don't have any specific ideas what this could be at this point in time, so I think non-optimized gdb stack traces is the next step.
I wouldn't be so worried about performance, the drop isn't huge with -O0
Ack, we've begun the process. Hopefully in a week or so, we'll have the
stack traces (and logs if you need them).
On Mon, Aug 13, 2018, 12:21 PM Magnus Edenhill notifications@github.com
wrote:
Sorry, I don't have any specific ideas what this could be at this point in
time, so I think non-optimized gdb stack traces is the next step.
I wouldn't be so worried about performance, the drop isn't huge with -O0—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/confluentinc/confluent-kafka-go/issues/203#issuecomment-412633594,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABoBEkSZUMXJ0agYyBL7cUdlsq6gjLF4ks5uQdHOgaJpZM4Um7tI
.
Thank you!
@edenhill I'm happy to report that we have 3 new stack traces that have been produced after we deployed with --disable-optimizations.
They are as follows:
Stack trace 4
Program terminated with signal SIGABRT, Aborted.
#0 runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:159
#1 0x0000000000458ee2 in runtime.raisebadsignal (c=0x7fc272fd0098, sig=6) at /usr/local/go/src/runtime/signal_unix.go:491
#2 0x0000000000459303 in runtime.badsignal (c=0x7fc272fd0098, sig=6) at /usr/local/go/src/runtime/signal_unix.go:600
#3 0x0000000000458ae8 in runtime.sigtrampgo (ctx=0x7fc272fd0140, info=0x7fc272fd0270, sig=6) at /usr/local/go/src/runtime/signal_unix.go:297
#4 0x00000000004719c3 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_amd64.s:352
#5
#6 0x00007fc308f48c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#7 0x00007fc308f4c028 in __GI_abort () at abort.c:89
#8 0x000000000066d24b in rd_kafka_crash (file=0x805a28 "rdkafka_msgset_writer.c", line=734, function=0x806400 <__FUNCTION__.21745> "rd_kafka_msgset_writer_write_msgq", rk=0x0, reason=0x805b48 "assert: rkm") at rdkafka.c:3370
#9 0x00000000006f59c7 in rd_kafka_msgset_writer_write_msgq (msetw=0x7fc272fd0990, rkmq=0x7fc29024f258) at rdkafka_msgset_writer.c:734
#10 0x00000000006f711a in rd_kafka_msgset_create_ProduceRequest (rkb=0x7fc290215010, rktp=0x7fc29024f160, MessageSetSizep=0x7fc272fd0a58) at rdkafka_msgset_writer.c:1235
#11 0x00000000006b58cf in rd_kafka_ProduceRequest (rkb=0x7fc290215010, rktp=0x7fc29024f160) at rdkafka_request.c:1958
#12 0x000000000067d76b in rd_kafka_toppar_producer_serve (rkb=0x7fc290215010, rktp=0x7fc29024f160, now=6005758677507, next_wakeup=0x7fc272fd0bf8, do_timeout_scan=0) at rdkafka_broker.c:2790
#13 0x000000000067d859 in rd_kafka_broker_produce_toppars (rkb=0x7fc290215010, now=6005758677507, next_wakeup=0x7fc272fd0c50, do_timeout_scan=0) at rdkafka_broker.c:2828
#14 0x000000000067d9c6 in rd_kafka_broker_producer_serve (rkb=0x7fc290215010) at rdkafka_broker.c:2873
#15 0x00000000006832c1 in rd_kafka_broker_thread_main (arg=0x7fc290215010) at rdkafka_broker.c:3611
#16 0x00000000006dda20 in _thrd_wrapper_function (aArg=0x7fc290014ff0) at tinycthread.c:624
#17 0x00007fc3094eb184 in start_thread (arg=0x7fc272fd5700) at pthread_create.c:312
#18 0x00007fc30900fffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Stack trace 4 local variables
#0 runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:159
No locals.
#1 0x0000000000458ee2 in runtime.raisebadsignal (c=0x7fc272fd0098, sig=6) at /usr/local/go/src/runtime/signal_unix.go:491
handler = 0
#2 0x0000000000459303 in runtime.badsignal (c=0x7fc272fd0098, sig=6) at /usr/local/go/src/runtime/signal_unix.go:600
No locals.
#3 0x0000000000458ae8 in runtime.sigtrampgo (ctx=0x7fc272fd0140, info=0x7fc272fd0270, sig=6) at /usr/local/go/src/runtime/signal_unix.go:297
g = 0x646441203a313833
gsignalStack = {
stack = {
lo = 7738980122663795308,
hi = 7020958085903691873
},
stackguard0 = 8314035674280125742,
stackguard1 = 8387231026747040628,
stktopsp = 3834585504778565946
}
setStack = 53
sp = 8319028371727136819
st = {
ss_sp = 0x0,
ss_flags = 0,
pad_cgo_0 = "\000\000\000",
ss_size = 0
}
st = {
ss_sp = 0x0,
ss_flags = 0,
pad_cgo_0 = "\000\000\000",
ss_size = 0
}
#4 0x00000000004719c3 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_amd64.s:352
No locals.
#5
No locals.
#6 0x00007fc308f48c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = 0
pid = 43940
selftid = 44195
#7 0x00007fc308f4c028 in __GI_abort () at abort.c:89
save_stage = 2
act = {
__sigaction_handler = {
sa_handler = 0x7fc272fd59c0,
sa_sigaction = 0x7fc272fd59c0
},
sa_mask = {
__val = {140473129588480, 140473129568336, 140475667769079, 140462610448389, 0, 140466301705648, 140475645398320, 140473618723168, 140473129568336, 0, 140475667797669, 83, 140475646350253, 0, 0, 140473129558016}
},
sa_flags = 1929205504,
sa_restorer = 0x775f726574697277
}
sigs = {
__val = {32, 0 }
}
#8 0x000000000066d24b in rd_kafka_crash (file=0x805a28 "rdkafka_msgset_writer.c", line=734, function=0x806400 <__FUNCTION__.21745> "rd_kafka_msgset_writer_write_msgq", rk=0x0, reason=0x805b48 "assert: rkm") at rdkafka.c:3370
No locals.
#9 0x00000000006f59c7 in rd_kafka_msgset_writer_write_msgq (msetw=0x7fc272fd0990, rkmq=0x7fc29024f258) at rdkafka_msgset_writer.c:734
rkbuf = 0x7fc0dc041bc0
rktp = 0x7fc29024f160
rkb = 0x7fc290215010
len = 114
max_msg_size = 1000000
int_latency_base = 6006061503145
MaxTimestamp = 0
rkm = 0x0
msgcnt = 0
now = 6005761503145
__FUNCTION__ = "rd_kafka_msgset_writer_write_msgq"
__PRETTY_FUNCTION__ = "rd_kafka_msgset_writer_write_msgq"
#10 0x00000000006f711a in rd_kafka_msgset_create_ProduceRequest (rkb=0x7fc290215010, rktp=0x7fc29024f160, MessageSetSizep=0x7fc272fd0a58) at rdkafka_msgset_writer.c:1235
msetw = {
msetw_rkbuf = 0x7fc0dc041bc0,
msetw_ApiVersion = 3,
msetw_MsgVersion = 2,
msetw_features = 512,
msetw_msgcntmax = 1,
msetw_messages_len = 0,
msetw_messages_kvlen = 0,
msetw_MessageSetSize = 61,
msetw_of_MessageSetSize = 49,
msetw_of_start = 53,
msetw_relative_offsets = 1,
msetw_Attributes = 0,
msetw_MaxTimestamp = 0,
msetw_of_CRC = 70,
msetw_firstmsg = {
of = 114,
timestamp = 0
},
msetw_rkb = 0x7fc290215010,
msetw_rktp = 0x7fc29024f160
}
#11 0x00000000006b58cf in rd_kafka_ProduceRequest (rkb=0x7fc290215010, rktp=0x7fc29024f160) at rdkafka_request.c:1958
rkbuf = 0x7fc0dc0419d0
rkt = 0x7fc2bc0008e0
MessageSetSize = 0
cnt = 96
now = 6005761503138
first_msg_timeout = 297107
tmout = 297107
__PRETTY_FUNCTION__ = "rd_kafka_ProduceRequest"
#12 0x000000000067d76b in rd_kafka_toppar_producer_serve (rkb=0x7fc290215010, rktp=0x7fc29024f160, now=6005758677507, next_wakeup=0x7fc272fd0bf8, do_timeout_scan=0) at rdkafka_broker.c:2790
cnt = 7776
r = 96
rkm = 0x7fc2c00872f0
move_cnt = 1877
__PRETTY_FUNCTION__ = "rd_kafka_toppar_producer_serve"
#13 0x000000000067d859 in rd_kafka_broker_produce_toppars (rkb=0x7fc290215010, now=6005758677507, next_wakeup=0x7fc272fd0c50, do_timeout_scan=0) at rdkafka_broker.c:2828
this_next_wakeup = 6005759677507
rktp = 0x7fc29024f160
cnt = 0
ret_next_wakeup = 6005759677507
#14 0x000000000067d9c6 in rd_kafka_broker_producer_serve (rkb=0x7fc290215010) at rdkafka_broker.c:2873
now = 6005758677507
next_wakeup = 6005759677507
do_timeout_scan = 0
timeout_scan = {
ri_ts_last = 6005758200042,
ri_fixed = 0,
ri_backoff = 0
}
__FUNCTION__ = "rd_kafka_broker_producer_serve"
#15 0x00000000006832c1 in rd_kafka_broker_thread_main (arg=0x7fc290215010) at rdkafka_broker.c:3611
backoff = 39179821383
rkb = 0x7fc290215010
rk = 0x7fc2e001e440
#16 0x00000000006dda20 in _thrd_wrapper_function (aArg=0x7fc290014ff0) at tinycthread.c:624
fun = 0x682db9
arg = 0x7fc290215010
res = 0
ti = 0x7fc290014ff0
#17 0x00007fc3094eb184 in start_thread (arg=0x7fc272fd5700) at pthread_create.c:312
__res =
pd = 0x7fc272fd5700
now =
unwind_buf = {
cancel_jmp_buf = {{
jmp_buf = {140473129588480, -7734031682798833756, 0, 0, 140473129589184, 140473129588480, 7723628089257275300, 7722865993587011492},
mask_was_saved = 0
}},
priv = {
pad = {0x0, 0x0, 0x0, 0x0},
data = {
prev = 0x0,
cleanup = 0x0,
canceltype = 0
}
}
}
not_first_call =
pagesize_m1 =
sp =
freesize =
__PRETTY_FUNCTION__ = "start_thread"
#18 0x00007fc30900fffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
Stack trace 5
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006cc9e7 in rd_kafka_msgq_insert_msgq (destq=0x7f95a424ed18, srcq=0x7f9584fc4170, cmp=0x68bb70 ) at rdkafka_partition.c:733
#1 0x00000000006ccb49 in rd_kafka_retry_msgq (destq=0x7f95a424ed18, srcq=0x7f93e8058568, incr_retry=0, max_retries=2, backoff=8963038600256, cmp=0x68bb70 ) at rdkafka_partition.c:784
#2 0x00000000006ccbe4 in rd_kafka_toppar_retry_msgq (rktp=0x7f95a424ec20, rkmq=0x7f93e8058568, incr_retry=0) at rdkafka_partition.c:807
#3 0x00000000006b56ab in rd_kafka_handle_Produce (rk=0x7f95e001e440, rkb=0x7f95a4100490, err=RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION, reply=0x7f93e80581f0, request=0x7f93e80583e0, opaque=0x7f95a424ec20) at rdkafka_request.c:1883
#4 0x00000000006a094c in rd_kafka_buf_callback (rk=0x7f95e001e440, rkb=0x7f95a4100490, err=RD_KAFKA_RESP_ERR_NO_ERROR, response=0x7f93e80581f0, request=0x7f93e80583e0) at rdkafka_buf.c:450
#5 0x00000000006781a7 in rd_kafka_req_response (rkb=0x7f95a4100490, rkbuf=0x7f93e80581f0) at rdkafka_broker.c:1340
#6 0x0000000000678b69 in rd_kafka_recv (rkb=0x7f95a4100490) at rdkafka_broker.c:1452
#7 0x000000000069d10d in rd_kafka_transport_io_event (rktrans=0x7f93e80576a0, events=1) at rdkafka_transport.c:1419
#8 0x000000000069d28b in rd_kafka_transport_io_serve (rktrans=0x7f93e80576a0, timeout_ms=999) at rdkafka_transport.c:1467
#9 0x000000000067d144 in rd_kafka_broker_serve (rkb=0x7f95a4100490, abs_timeout=8963039500140) at rdkafka_broker.c:2593
#10 0x000000000067da48 in rd_kafka_broker_producer_serve (rkb=0x7f95a4100490) at rdkafka_broker.c:2882
#11 0x00000000006832c1 in rd_kafka_broker_thread_main (arg=0x7f95a4100490) at rdkafka_broker.c:3611
#12 0x00000000006dda20 in _thrd_wrapper_function (aArg=0x7f95a4014ff0) at tinycthread.c:624
#13 0x00007f960f54e184 in start_thread (arg=0x7f9584fc9700) at pthread_create.c:312
#14 0x00007f960f072ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Stack trace 5 local variables
#0 0x00000000006cc9e7 in rd_kafka_msgq_insert_msgq (destq=0x7f95a424ed18, srcq=0x7f9584fc4170, cmp=0x68bb70 ) at rdkafka_partition.c:733
_elm = 0x7f94ec010670
_last = 0x7f951804fb30
_aft = 0x0
at = 0x7f950402f500
first = 0x7f94ec010670
dest_first = 0x7f950402f500
__PRETTY_FUNCTION__ = "rd_kafka_msgq_insert_msgq"
#1 0x00000000006ccb49 in rd_kafka_retry_msgq (destq=0x7f95a424ed18, srcq=0x7f93e8058568, incr_retry=0, max_retries=2, backoff=8963038600256, cmp=0x68bb70 ) at rdkafka_partition.c:784
retryable = {
rkmq_msgs = {
tqh_first = 0x7f94ec010670,
tqh_last = 0x7f951804fb78
},
rkmq_msg_cnt = 85,
rkmq_msg_bytes = 121805
}
rkm = 0x0
tmp = 0x0
#2 0x00000000006ccbe4 in rd_kafka_toppar_retry_msgq (rktp=0x7f95a424ec20, rkmq=0x7f93e8058568, incr_retry=0) at rdkafka_partition.c:807
rk = 0x7f95e001e440
backoff = 8963038600256
r = 32661
#3 0x00000000006b56ab in rd_kafka_handle_Produce (rk=0x7f95e001e440, rkb=0x7f95a4100490, err=RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION, reply=0x7f93e80581f0, request=0x7f93e80583e0, opaque=0x7f95a424ec20) at rdkafka_request.c:1883
incr_retry = 0
actions = 4
actstr = "pw\005\350\223\177\000\000p", '\000' , "\026\027\003\003\000.\177\000\000\005\000\000\000\000\000\000\000\000_\216\307\025\366\322\304\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000"
s_rktp = 0x7f95a424ec20
rktp = 0x7f95a424ec20
offset = -1
timestamp = -1
#4 0x00000000006a094c in rd_kafka_buf_callback (rk=0x7f95e001e440, rkb=0x7f95a4100490, err=RD_KAFKA_RESP_ERR_NO_ERROR, response=0x7f93e80581f0, request=0x7f93e80583e0) at rdkafka_buf.c:450
__FUNCTION__ = "rd_kafka_buf_callback"
#5 0x00000000006781a7 in rd_kafka_req_response (rkb=0x7f95a4100490, rkbuf=0x7f93e80581f0) at rdkafka_broker.c:1340
req = 0x7f93e80583e0
__FUNCTION__ = "rd_kafka_req_response"
__PRETTY_FUNCTION__ = "rd_kafka_req_response"
#6 0x0000000000678b69 in rd_kafka_recv (rkb=0x7f95a4100490) at rdkafka_broker.c:1452
rkbuf = 0x7f93e80581f0
r = 42
errstr = "Protocol parse failure", '\000'
err = RD_KAFKA_RESP_ERR_NO_ERROR
log_decode_errors = 3
__PRETTY_FUNCTION__ = "rd_kafka_recv"
__FUNCTION__ = "rd_kafka_recv"
#7 0x000000000069d10d in rd_kafka_transport_io_event (rktrans=0x7f93e80576a0, events=1) at rdkafka_transport.c:1419
errstr = "\001\001\374\204\225\177\000\000\362\320m\000\000\000\000\000\000X(\244\225\177\000\000\000\000\000\000\000\000\000\000\255ug\000\000\000\000\000M\327m\000\000\000\000\000\360I\374\204\000\000\000\000\360\344\001\340\225\177\000\000\360I\374\204\225\177\000\000\241vg", '\000' , "@\344\001\340\225\177\000\000\260K\374\204\225\177\000\000\223\315g\000\000\000\000\000\202\017\000\374\225\177\000\000\205\000\000\000\006\000\000\000(\003\000\000\225\177\000\000\360Y\374\204\225\177\000\000 \354$\244\225\177\000\000\271\237l\000\000\000\000\000\370\354$\244\225\177\000\000\030\355$\244\225\177\000\000\000\000\000\000\000\000\000\000\220\004\020\244\225\177\000\000\240J\374\204\001\000\000\000"...
r = 0
rkb = 0x7f95a4100490
__FUNCTION__ = "rd_kafka_transport_io_event"
#8 0x000000000069d28b in rd_kafka_transport_io_serve (rktrans=0x7f93e80576a0, timeout_ms=999) at rdkafka_transport.c:1467
rkb = 0x7f95a4100490
events = 1
#9 0x000000000067d144 in rd_kafka_broker_serve (rkb=0x7f95a4100490, abs_timeout=8963039500140) at rdkafka_broker.c:2593
blocking_max_ms = 999
now = 140280679368392
initial_state = 4
remains_ms = 999
#10 0x000000000067da48 in rd_kafka_broker_producer_serve (rkb=0x7f95a4100490) at rdkafka_broker.c:2882
now = 8963038500140
next_wakeup = 8963039500140
do_timeout_scan = 0
timeout_scan = {
ri_ts_last = 8963038365620,
ri_fixed = 0,
ri_backoff = 0
}
__FUNCTION__ = "rd_kafka_broker_producer_serve"
#11 0x00000000006832c1 in rd_kafka_broker_thread_main (arg=0x7f95a4100490) at rdkafka_broker.c:3611
backoff = 33599565714
rkb = 0x7f95a4100490
rk = 0x7f95e001e440
#12 0x00000000006dda20 in _thrd_wrapper_function (aArg=0x7f95a4014ff0) at tinycthread.c:624
fun = 0x682db9
arg = 0x7f95a4100490
res = 0
ti = 0x7f95a4014ff0
#13 0x00007f960f54e184 in start_thread (arg=0x7f9584fc9700) at pthread_create.c:312
__res =
pd = 0x7f9584fc9700
now =
unwind_buf = {
cancel_jmp_buf = {{
jmp_buf = {140280158000896, -6903502394537161093, 0, 0, 140280158001600, 140280158000896, 6853032631719546491, 6853858026208087675},
mask_was_saved = 0
}},
priv = {
pad = {0x0, 0x0, 0x0, 0x0},
data = {
prev = 0x0,
cleanup = 0x0,
canceltype = 0
}
}
}
not_first_call =
pagesize_m1 =
sp =
freesize =
__PRETTY_FUNCTION__ = "start_thread"
#14 0x00007f960f072ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
Stack trace 6
Program terminated with signal SIGABRT, Aborted.
#0 runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:159
#1 0x0000000000458ee2 in runtime.raisebadsignal (c=0x7f00eefb8058, sig=6) at /usr/local/go/src/runtime/signal_unix.go:491
#2 0x0000000000459303 in runtime.badsignal (c=0x7f00eefb8058, sig=6) at /usr/local/go/src/runtime/signal_unix.go:600
#3 0x0000000000458ae8 in runtime.sigtrampgo (ctx=0x7f00eefb8100, info=0x7f00eefb8230, sig=6) at /usr/local/go/src/runtime/signal_unix.go:297
#4 0x00000000004719c3 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_amd64.s:352
#5
#6 0x00007f019c28ec37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#7 0x00007f019c292028 in __GI_abort () at abort.c:89
#8 0x000000000066d24b in rd_kafka_crash (file=0x805884 "rdkafka_msg.h", line=265, function=0x806470 <__FUNCTION__.18362> "rd_kafka_msgq_deq", rk=0x0, reason=0x8058e0 "assert: rkmq->rkmq_msg_bytes >= (int64_t)(rkm->rkm_len+rkm->rkm_key_len)") at rdkafka.c:3370
#9 0x00000000006f3d96 in rd_kafka_msgq_deq (rkmq=0x7f013023f658, rkm=0x7f0194132650, do_count=1) at rdkafka_msg.h:264
#10 0x00000000006f5b54 in rd_kafka_msgset_writer_write_msgq (msetw=0x7f00eefb8990, rkmq=0x7f013023f658) at rdkafka_msgset_writer.c:760
#11 0x00000000006f711a in rd_kafka_msgset_create_ProduceRequest (rkb=0x7f01301cfd30, rktp=0x7f013023f560, MessageSetSizep=0x7f00eefb8a58) at rdkafka_msgset_writer.c:1235
#12 0x00000000006b58cf in rd_kafka_ProduceRequest (rkb=0x7f01301cfd30, rktp=0x7f013023f560) at rdkafka_request.c:1958
#13 0x000000000067d76b in rd_kafka_toppar_producer_serve (rkb=0x7f01301cfd30, rktp=0x7f013023f560, now=8578348201907, next_wakeup=0x7f00eefb8bf8, do_timeout_scan=1) at rdkafka_broker.c:2790
#14 0x000000000067d859 in rd_kafka_broker_produce_toppars (rkb=0x7f01301cfd30, now=8578348201907, next_wakeup=0x7f00eefb8c50, do_timeout_scan=1) at rdkafka_broker.c:2828
#15 0x000000000067d9c6 in rd_kafka_broker_producer_serve (rkb=0x7f01301cfd30) at rdkafka_broker.c:2873
#16 0x00000000006832c1 in rd_kafka_broker_thread_main (arg=0x7f01301cfd30) at rdkafka_broker.c:3611
#17 0x00000000006dda20 in _thrd_wrapper_function (aArg=0x7f0130014e30) at tinycthread.c:624
#18 0x00007f019c831184 in start_thread (arg=0x7f00eefbd700) at pthread_create.c:312
#19 0x00007f019c355ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Stack trace 6 local variables
#0 runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:159
No locals.
#1 0x0000000000458ee2 in runtime.raisebadsignal (c=0x7f00eefb8058, sig=6) at /usr/local/go/src/runtime/signal_unix.go:491
handler = 0
#2 0x0000000000459303 in runtime.badsignal (c=0x7f00eefb8058, sig=6) at /usr/local/go/src/runtime/signal_unix.go:600
No locals.
#3 0x0000000000458ae8 in runtime.sigtrampgo (ctx=0x7f00eefb8100, info=0x7f00eefb8230, sig=6) at /usr/local/go/src/runtime/signal_unix.go:297
g = 0x74656e2e6e646374
gsignalStack = {
stack = {
lo = 139641986189376,
hi = 8319057139774026843
},
stackguard0 = 7738980122663795308,
stackguard1 = 7020958085903626337,
stktopsp = 8314035674280125742
}
setStack = false
sp = 139641986189616
st = {
ss_sp = 0x0,
ss_flags = 0,
pad_cgo_0 = "\000\000\000",
ss_size = 0
}
st = {
ss_sp = 0x0,
ss_flags = 0,
pad_cgo_0 = "\000\000\000",
ss_size = 0
}
#4 0x00000000004719c3 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_amd64.s:352
No locals.
#5
No locals.
#6 0x00007f019c28ec37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = 0
pid = 157312
selftid = 157748
#7 0x00007f019c292028 in __GI_abort () at abort.c:89
save_stage = 2
act = {
__sigaction_handler = {
sa_handler = 0x7f00eefbd9c0,
sa_sigaction = 0x7f00eefbd9c0
},
sa_mask = {
__val = {139641986209536, 139641986189344, 139644913796855, 5, 0, 139637105103752, 139644891426096, 139643079357792, 139641986189344, 0, 139644913825445, 118, 139644892378029, 0, 0, 139641986179024}
},
sa_flags = -285485312,
sa_restorer = 0x722b6e656c5f6d6b
}
sigs = {
__val = {32, 0 }
}
#8 0x000000000066d24b in rd_kafka_crash (file=0x805884 "rdkafka_msg.h", line=265, function=0x806470 <__FUNCTION__.18362> "rd_kafka_msgq_deq", rk=0x0, reason=0x8058e0 "assert: rkmq->rkmq_msg_bytes >= (int64_t)(rkm->rkm_len+rkm->rkm_key_len)") at rdkafka.c:3370
No locals.
#9 0x00000000006f3d96 in rd_kafka_msgq_deq (rkmq=0x7f013023f658, rkm=0x7f0194132650, do_count=1) at rdkafka_msg.h:264
__FUNCTION__ = "rd_kafka_msgq_deq"
#10 0x00000000006f5b54 in rd_kafka_msgset_writer_write_msgq (msetw=0x7f00eefb8990, rkmq=0x7f013023f658) at rdkafka_msgset_writer.c:760
rkbuf = 0x7effcc0c2a10
rktp = 0x7f013023f560
rkb = 0x7f01301cfd30
len = 245889
max_msg_size = 1000000
int_latency_base = 8578648201923
MaxTimestamp = 1534547296979
rkm = 0x7f0194132650
msgcnt = 193
now = 8578348201923
__FUNCTION__ = "rd_kafka_msgset_writer_write_msgq"
__PRETTY_FUNCTION__ = "rd_kafka_msgset_writer_write_msgq"
#11 0x00000000006f711a in rd_kafka_msgset_create_ProduceRequest (rkb=0x7f01301cfd30, rktp=0x7f013023f560, MessageSetSizep=0x7f00eefb8a58) at rdkafka_msgset_writer.c:1235
msetw = {
msetw_rkbuf = 0x7effcc0c2a10,
msetw_ApiVersion = 3,
msetw_MsgVersion = 2,
msetw_features = 512,
msetw_msgcntmax = 256,
msetw_messages_len = 0,
msetw_messages_kvlen = 239467,
msetw_MessageSetSize = 61,
msetw_of_MessageSetSize = 49,
msetw_of_start = 53,
msetw_relative_offsets = 1,
msetw_Attributes = 0,
msetw_MaxTimestamp = 0,
msetw_of_CRC = 70,
msetw_firstmsg = {
of = 114,
timestamp = 1534547296974
},
msetw_rkb = 0x7f01301cfd30,
msetw_rktp = 0x7f013023f560
}
#12 0x00000000006b58cf in rd_kafka_ProduceRequest (rkb=0x7f01301cfd30, rktp=0x7f013023f560) at rdkafka_request.c:1958
rkbuf = 0x7f013023f658
rkt = 0x7f0184037850
MessageSetSize = 0
cnt = 32512
now = 139644755660800
first_msg_timeout = 0
tmout = -285504864
__PRETTY_FUNCTION__ = "rd_kafka_ProduceRequest"
#13 0x000000000067d76b in rd_kafka_toppar_producer_serve (rkb=0x7f01301cfd30, rktp=0x7f013023f560, now=8578348201907, next_wakeup=0x7f00eefb8bf8, do_timeout_scan=1) at rdkafka_broker.c:2790
cnt = 0
r = 930
rkm = 0x7f01940e5000
move_cnt = 930
__PRETTY_FUNCTION__ = "rd_kafka_toppar_producer_serve"
#14 0x000000000067d859 in rd_kafka_broker_produce_toppars (rkb=0x7f01301cfd30, now=8578348201907, next_wakeup=0x7f00eefb8c50, do_timeout_scan=1) at rdkafka_broker.c:2828
this_next_wakeup = 8578349201907
rktp = 0x7f013023f560
cnt = 0
ret_next_wakeup = 8578349201907
#15 0x000000000067d9c6 in rd_kafka_broker_producer_serve (rkb=0x7f01301cfd30) at rdkafka_broker.c:2873
now = 8578348201907
next_wakeup = 8578349201907
do_timeout_scan = 1
timeout_scan = {
ri_ts_last = 8578348201907,
ri_fixed = 0,
ri_backoff = 0
}
__FUNCTION__ = "rd_kafka_broker_producer_serve"
#16 0x00000000006832c1 in rd_kafka_broker_thread_main (arg=0x7f01301cfd30) at rdkafka_broker.c:3611
backoff = 17280618007
rkb = 0x7f01301cfd30
rk = 0x7f0194001510
#17 0x00000000006dda20 in _thrd_wrapper_function (aArg=0x7f0130014e30) at tinycthread.c:624
fun = 0x682db9
arg = 0x7f01301cfd30
res = 0
ti = 0x7f0130014e30
#18 0x00007f019c831184 in start_thread (arg=0x7f00eefbd700) at pthread_create.c:312
__res =
pd = 0x7f00eefbd700
now =
unwind_buf = {
cancel_jmp_buf = {{
jmp_buf = {139641986209536, -4311259190233080936, 0, 0, 139641986210240, 139641986209536, 4191313503858252696, 4190719978189544344},
mask_was_saved = 0
}},
priv = {
pad = {0x0, 0x0, 0x0, 0x0},
data = {
prev = 0x0,
cleanup = 0x0,
canceltype = 0
}
}
}
not_first_call =
pagesize_m1 =
sp =
freesize =
__PRETTY_FUNCTION__ = "start_thread"
#19 0x00007f019c355ffd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
Awesome, thank you!
I think I've found the (or a) issue:
when a produce request fails with a retriable error the messages from the request
are put back on the partition queue in the original order and the produce request is re-created.
If multiple subsequent requests fail in short succession, such as when the partition leader changes which is the case in at least some of these crashes, the messages from the request are simply appended to the end of the queue. And this is where the bug lies:
https://github.com/edenhill/librdkafka/blob/master/src/rdsysqueue.h#L251
The destination queue (i.e., rktp_xmit_msgq) tailq header's tqh_last is not updated to point at the new last element, so the queue will be corrupt.
I'll make a fix soon.
I'm very impressed with the amount of information you've provided for this issue. :heart:
@edenhill can't tell you how happy we are to hear that! Thanks!
@billygout Bad news, I've been trying to provoke the issue locally based on the above theory, but to no avail. I don't think the code in question (TAILQ_INSERT_TAIL) is buggy, and have had the code re-reviewed to make sure.
But I'm quite sure the bug is related to the partition queue, so I'll try other means of reproducing the problem.
Thanks for your patience, back to the drawing board.
Do you still have the corefile for Stack trace 5 local variables above?
If so, could you do the following for me, in frame 0:
#0 0x00000000006cc9e7 in rd_kafka_msgq_insert_msgq (destq=0x7f95a424ed18, srcq=0x7f9584fc4170, cmp=0x68bb70 ) at rdkafka_partition.c:733
_elm = 0x7f94ec010670
_last = 0x7f951804fb30
_aft = 0x0
at = 0x7f950402f500
first = 0x7f94ec010670
dest_first = 0x7f950402f500
__PRETTY_FUNCTION__ = "rd_kafka_msgq_insert_msgq"
gdb commands:
disassemble
p *at
p *destq
p destq.rkmq_msgs
p *first
p *dest_first
@edenhill sure. let me know if any other commands would help. here's what you asked for:
(gdb) frame 0
#0 0x00000000006cc9e7 in rd_kafka_msgq_insert_msgq (destq=0x7f95a424ed18, srcq=0x7f9584fc4170, cmp=0x68bb70 <rd_kafka_msg_cmp_msgseq>)
at rdkafka_partition.c:733
733 in rdkafka_partition.c
(gdb) disassemble
Dump of assembler code for function rd_kafka_msgq_insert_msgq:
0x00000000006cc7e7 <+0>: push %rbp
0x00000000006cc7e8 <+1>: mov %rsp,%rbp
0x00000000006cc7eb <+4>: sub $0x50,%rsp
0x00000000006cc7ef <+8>: mov %rdi,-0x38(%rbp)
0x00000000006cc7f3 <+12>: mov %rsi,-0x40(%rbp)
0x00000000006cc7f7 <+16>: mov %rdx,-0x48(%rbp)
0x00000000006cc7fb <+20>: mov -0x40(%rbp),%rax
0x00000000006cc7ff <+24>: mov (%rax),%rax
0x00000000006cc802 <+27>: mov %rax,-0x30(%rbp)
0x00000000006cc806 <+31>: cmpq $0x0,-0x30(%rbp)
0x00000000006cc80b <+36>: sete %al
0x00000000006cc80e <+39>: movzbl %al,%eax
0x00000000006cc811 <+42>: test %rax,%rax
0x00000000006cc814 <+45>: je 0x6cc81b <rd_kafka_msgq_insert_msgq+52>
0x00000000006cc816 <+47>: jmpq 0x6cca40 <rd_kafka_msgq_insert_msgq+601>
0x00000000006cc81b <+52>: mov -0x38(%rbp),%rax
0x00000000006cc81f <+56>: mov (%rax),%rax
0x00000000006cc822 <+59>: mov %rax,-0x28(%rbp)
0x00000000006cc826 <+63>: cmpq $0x0,-0x28(%rbp)
0x00000000006cc82b <+68>: sete %al
0x00000000006cc82e <+71>: movzbl %al,%eax
0x00000000006cc831 <+74>: test %rax,%rax
0x00000000006cc834 <+77>: je 0x6cc84e <rd_kafka_msgq_insert_msgq+103>
0x00000000006cc836 <+79>: mov -0x40(%rbp),%rdx
0x00000000006cc83a <+83>: mov -0x38(%rbp),%rax
0x00000000006cc83e <+87>: mov %rdx,%rsi
0x00000000006cc841 <+90>: mov %rax,%rdi
0x00000000006cc844 <+93>: callq 0x6c9fbb <rd_kafka_msgq_move>
0x00000000006cc849 <+98>: jmpq 0x6cca40 <rd_kafka_msgq_insert_msgq+601>
0x00000000006cc84e <+103>: mov -0x28(%rbp),%rcx
0x00000000006cc852 <+107>: mov -0x30(%rbp),%rdx
0x00000000006cc856 <+111>: mov -0x48(%rbp),%rax
0x00000000006cc85a <+115>: mov %rcx,%rsi
0x00000000006cc85d <+118>: mov %rdx,%rdi
0x00000000006cc860 <+121>: callq *%rax
0x00000000006cc862 <+123>: test %eax,%eax
0x00000000006cc864 <+125>: jns 0x6cc891 <rd_kafka_msgq_insert_msgq+170>
0x00000000006cc866 <+127>: mov -0x38(%rbp),%rdx
0x00000000006cc86a <+131>: mov -0x40(%rbp),%rax
0x00000000006cc86e <+135>: mov %rdx,%rsi
0x00000000006cc871 <+138>: mov %rax,%rdi
0x00000000006cc874 <+141>: callq 0x6c9f13 <rd_kafka_msgq_concat>
0x00000000006cc879 <+146>: mov -0x40(%rbp),%rdx
0x00000000006cc87d <+150>: mov -0x38(%rbp),%rax
---Type <return> to continue, or q <return> to quit---
0x00000000006cc881 <+154>: mov %rdx,%rsi
0x00000000006cc884 <+157>: mov %rax,%rdi
0x00000000006cc887 <+160>: callq 0x6c9fbb <rd_kafka_msgq_move>
0x00000000006cc88c <+165>: jmpq 0x6cca40 <rd_kafka_msgq_insert_msgq+601>
0x00000000006cc891 <+170>: mov -0x38(%rbp),%rax
0x00000000006cc895 <+174>: mov 0x8(%rax),%rax
0x00000000006cc899 <+178>: mov 0x8(%rax),%rax
0x00000000006cc89d <+182>: mov (%rax),%rcx
0x00000000006cc8a0 <+185>: mov -0x30(%rbp),%rdx
0x00000000006cc8a4 <+189>: mov -0x48(%rbp),%rax
0x00000000006cc8a8 <+193>: mov %rcx,%rsi
0x00000000006cc8ab <+196>: mov %rdx,%rdi
0x00000000006cc8ae <+199>: callq *%rax
0x00000000006cc8b0 <+201>: test %eax,%eax
0x00000000006cc8b2 <+203>: jle 0x6cc8cc <rd_kafka_msgq_insert_msgq+229>
0x00000000006cc8b4 <+205>: mov -0x40(%rbp),%rdx
0x00000000006cc8b8 <+209>: mov -0x38(%rbp),%rax
0x00000000006cc8bc <+213>: mov %rdx,%rsi
0x00000000006cc8bf <+216>: mov %rax,%rdi
0x00000000006cc8c2 <+219>: callq 0x6c9f13 <rd_kafka_msgq_concat>
0x00000000006cc8c7 <+224>: jmpq 0x6cca40 <rd_kafka_msgq_insert_msgq+601>
0x00000000006cc8cc <+229>: mov -0x48(%rbp),%rdx
0x00000000006cc8d0 <+233>: mov -0x30(%rbp),%rcx
0x00000000006cc8d4 <+237>: mov -0x38(%rbp),%rax
0x00000000006cc8d8 <+241>: mov %rcx,%rsi
0x00000000006cc8db <+244>: mov %rax,%rdi
0x00000000006cc8de <+247>: callq 0x688a7b <rd_kafka_msgq_find_pos>
0x00000000006cc8e3 <+252>: mov %rax,-0x20(%rbp)
0x00000000006cc8e7 <+256>: cmpq $0x0,-0x20(%rbp)
0x00000000006cc8ec <+261>: je 0x6cc8f7 <rd_kafka_msgq_insert_msgq+272>
0x00000000006cc8ee <+263>: mov $0x42,%eax
0x00000000006cc8f3 <+268>: test %al,%al
0x00000000006cc8f5 <+270>: jne 0x6cc916 <rd_kafka_msgq_insert_msgq+303>
0x00000000006cc8f7 <+272>: lea 0x1334e2(%rip),%rcx # 0x7ffde0 <__PRETTY_FUNCTION__.21898>
0x00000000006cc8fe <+279>: mov $0x2d7,%edx
0x00000000006cc903 <+284>: lea 0x132174(%rip),%rsi # 0x7fea7e
0x00000000006cc90a <+291>: lea 0x13235f(%rip),%rdi # 0x7fec70
0x00000000006cc911 <+298>: callq 0x415f70 <__assert_fail@plt>
0x00000000006cc916 <+303>: mov -0x38(%rbp),%rax
0x00000000006cc91a <+307>: mov 0x8(%rax),%rax
0x00000000006cc91e <+311>: mov 0x8(%rax),%rax
0x00000000006cc922 <+315>: mov (%rax),%rax
0x00000000006cc925 <+318>: cmp -0x20(%rbp),%rax
0x00000000006cc929 <+322>: jne 0x6cc989 <rd_kafka_msgq_insert_msgq+418>
0x00000000006cc92b <+324>: mov -0x40(%rbp),%rax
---Type <return> to continue, or q <return> to quit---
0x00000000006cc92f <+328>: mov (%rax),%rax
0x00000000006cc932 <+331>: test %rax,%rax
0x00000000006cc935 <+334>: je 0x6cca02 <rd_kafka_msgq_insert_msgq+539>
0x00000000006cc93b <+340>: mov -0x38(%rbp),%rax
0x00000000006cc93f <+344>: mov 0x8(%rax),%rax
0x00000000006cc943 <+348>: mov -0x40(%rbp),%rdx
0x00000000006cc947 <+352>: mov (%rdx),%rdx
0x00000000006cc94a <+355>: mov %rdx,(%rax)
0x00000000006cc94d <+358>: mov -0x40(%rbp),%rax
0x00000000006cc951 <+362>: mov (%rax),%rax
0x00000000006cc954 <+365>: mov -0x38(%rbp),%rdx
0x00000000006cc958 <+369>: mov 0x8(%rdx),%rdx
0x00000000006cc95c <+373>: mov %rdx,0x50(%rax)
0x00000000006cc960 <+377>: mov -0x40(%rbp),%rax
0x00000000006cc964 <+381>: mov 0x8(%rax),%rdx
0x00000000006cc968 <+385>: mov -0x38(%rbp),%rax
0x00000000006cc96c <+389>: mov %rdx,0x8(%rax)
0x00000000006cc970 <+393>: mov -0x40(%rbp),%rax
0x00000000006cc974 <+397>: movq $0x0,(%rax)
0x00000000006cc97b <+404>: mov -0x40(%rbp),%rdx
0x00000000006cc97f <+408>: mov -0x40(%rbp),%rax
0x00000000006cc983 <+412>: mov %rdx,0x8(%rax)
0x00000000006cc987 <+416>: jmp 0x6cca02 <rd_kafka_msgq_insert_msgq+539>
0x00000000006cc989 <+418>: mov -0x40(%rbp),%rax
0x00000000006cc98d <+422>: mov (%rax),%rax
0x00000000006cc990 <+425>: mov %rax,-0x18(%rbp)
0x00000000006cc994 <+429>: mov -0x40(%rbp),%rax
0x00000000006cc998 <+433>: mov 0x8(%rax),%rax
0x00000000006cc99c <+437>: mov 0x8(%rax),%rax
0x00000000006cc9a0 <+441>: mov (%rax),%rax
0x00000000006cc9a3 <+444>: mov %rax,-0x10(%rbp)
0x00000000006cc9a7 <+448>: mov -0x20(%rbp),%rax
0x00000000006cc9ab <+452>: mov 0x48(%rax),%rax
0x00000000006cc9af <+456>: mov %rax,-0x8(%rbp)
0x00000000006cc9b3 <+460>: mov -0x20(%rbp),%rax
0x00000000006cc9b7 <+464>: mov -0x18(%rbp),%rdx
0x00000000006cc9bb <+468>: mov %rdx,0x48(%rax)
0x00000000006cc9bf <+472>: mov -0x20(%rbp),%rax
0x00000000006cc9c3 <+476>: lea 0x48(%rax),%rdx
0x00000000006cc9c7 <+480>: mov -0x18(%rbp),%rax
0x00000000006cc9cb <+484>: mov %rdx,0x50(%rax)
0x00000000006cc9cf <+488>: mov -0x10(%rbp),%rax
0x00000000006cc9d3 <+492>: mov -0x8(%rbp),%rdx
0x00000000006cc9d7 <+496>: mov %rdx,0x48(%rax)
0x00000000006cc9db <+500>: mov -0x10(%rbp),%rax
---Type <return> to continue, or q <return> to quit---
0x00000000006cc9df <+504>: lea 0x48(%rax),%rdx
0x00000000006cc9e3 <+508>: mov -0x8(%rbp),%rax
=> 0x00000000006cc9e7 <+512>: mov %rdx,0x50(%rax)
0x00000000006cc9eb <+516>: mov -0x40(%rbp),%rax
0x00000000006cc9ef <+520>: movq $0x0,(%rax)
0x00000000006cc9f6 <+527>: mov -0x40(%rbp),%rdx
0x00000000006cc9fa <+531>: mov -0x40(%rbp),%rax
0x00000000006cc9fe <+535>: mov %rdx,0x8(%rax)
0x00000000006cca02 <+539>: mov -0x38(%rbp),%rax
0x00000000006cca06 <+543>: mov 0x10(%rax),%edx
0x00000000006cca09 <+546>: mov -0x40(%rbp),%rax
0x00000000006cca0d <+550>: mov 0x10(%rax),%eax
0x00000000006cca10 <+553>: add %eax,%edx
0x00000000006cca12 <+555>: mov -0x38(%rbp),%rax
0x00000000006cca16 <+559>: mov %edx,0x10(%rax)
0x00000000006cca19 <+562>: mov -0x38(%rbp),%rax
0x00000000006cca1d <+566>: mov 0x18(%rax),%rdx
0x00000000006cca21 <+570>: mov -0x40(%rbp),%rax
0x00000000006cca25 <+574>: mov 0x18(%rax),%rax
0x00000000006cca29 <+578>: add %rax,%rdx
0x00000000006cca2c <+581>: mov -0x38(%rbp),%rax
0x00000000006cca30 <+585>: mov %rdx,0x18(%rax)
0x00000000006cca34 <+589>: mov -0x40(%rbp),%rax
0x00000000006cca38 <+593>: mov %rax,%rdi
0x00000000006cca3b <+596>: callq 0x6c9edb <rd_kafka_msgq_init>
0x00000000006cca40 <+601>: leaveq
0x00000000006cca41 <+602>: retq
End of assembler dump.
(gdb)
(gdb) p *at
$13 = {rkm_rkmessage = {err = RD_KAFKA_RESP_ERR_NO_ERROR, rkt = 0x7f95fc000c70, partition = 133, payload = 0x7f950402f5a0, len = 2287, key = 0x7f950402fe8f,
key_len = 29, offset = -1001, _private = 0x0}, rkm_link = {tqe_next = 0x7f950402ffa0, tqe_prev = 0x7f950402e878}, rkm_flags = 458754,
rkm_timestamp = 1534694858523, rkm_tstype = RD_KAFKA_TIMESTAMP_CREATE_TIME, rkm_headers = 0x7f950402f440, rkm_u = {producer = {ts_timeout = 8963336588783,
ts_enq = 8963036588783, ts_backoff = 8963038414997, msgseq = 411689, retries = 0}, consumer = {binhdrs = {len = -260157969, data = 0x826de9caaef,
_data = "\225"}}}}
(gdb)
$14 = {rkm_rkmessage = {err = RD_KAFKA_RESP_ERR_NO_ERROR, rkt = 0x7f95fc000c70, partition = 133, payload = 0x7f950402f5a0, len = 2287, key = 0x7f950402fe8f,
key_len = 29, offset = -1001, _private = 0x0}, rkm_link = {tqe_next = 0x7f950402ffa0, tqe_prev = 0x7f950402e878}, rkm_flags = 458754,
rkm_timestamp = 1534694858523, rkm_tstype = RD_KAFKA_TIMESTAMP_CREATE_TIME, rkm_headers = 0x7f950402f440, rkm_u = {producer = {ts_timeout = 8963336588783,
ts_enq = 8963036588783, ts_backoff = 8963038414997, msgseq = 411689, retries = 0}, consumer = {binhdrs = {len = -260157969, data = 0x826de9caaef,
_data = "\225"}}}}
(gdb) p *destq
$15 = {rkmq_msgs = {tqh_first = 0x7f9504026290, tqh_last = 0x7f954c028f68}, rkmq_msg_cnt = 656, rkmq_msg_bytes = 865908}
(gdb) p destq.rkmq_msgs
$16 = {tqh_first = 0x7f9504026290, tqh_last = 0x7f954c028f68}
(gdb) p *first
$17 = {rkm_rkmessage = {err = RD_KAFKA_RESP_ERR_NO_ERROR, rkt = 0x7f95fc000c70, partition = 133, payload = 0x7f94ec010710, len = 1240, key = 0x7f94ec010be8,
key_len = 28, offset = -1001, _private = 0x0}, rkm_link = {tqe_next = 0x7f94ec010cf0, tqe_prev = 0x7f950402f548}, rkm_flags = 458754,
rkm_timestamp = 1534694860034, rkm_tstype = RD_KAFKA_TIMESTAMP_CREATE_TIME, rkm_headers = 0x7f94ec010590, rkm_u = {producer = {ts_timeout = 8963338100537,
ts_enq = 8963038100537, ts_backoff = 8963038600256, msgseq = 412354, retries = 0}, consumer = {binhdrs = {len = -258646215, data = 0x826deb3bc39,
_data = "@"}}}}
(gdb) p *dest_first
$18 = {rkm_rkmessage = {err = RD_KAFKA_RESP_ERR_NO_ERROR, rkt = 0x7f95fc000c70, partition = 133, payload = 0x7f950402f5a0, len = 2287, key = 0x7f950402fe8f,
key_len = 29, offset = -1001, _private = 0x0}, rkm_link = {tqe_next = 0x7f950402ffa0, tqe_prev = 0x7f950402e878}, rkm_flags = 458754,
rkm_timestamp = 1534694858523, rkm_tstype = RD_KAFKA_TIMESTAMP_CREATE_TIME, rkm_headers = 0x7f950402f440, rkm_u = {producer = {ts_timeout = 8963336588783,
ts_enq = 8963036588783, ts_backoff = 8963038414997, msgseq = 411689, retries = 0}, consumer = {binhdrs = {len = -260157969, data = 0x826de9caaef,
_data = "\225"}}}}
(gdb)
Fantastic! Can you provide info reg from that same frame too?
@edenhill
#0 0x00000000006cc9e7 in rd_kafka_msgq_insert_msgq (destq=0x7f95a424ed18,
srcq=0x7f9584fc4170, cmp=0x68bb70 <rd_kafka_msg_cmp_msgseq>)
at rdkafka_partition.c:733
733 in rdkafka_partition.c
(gdb) info reg
rax 0x0 0
rbx 0x0 0
rcx 0x7f950402f500 140277994157312
rdx 0x7f951804fb78 140278329834360
rsi 0x7f950402f500 140277994157312
rdi 0x7f94ec010670 140277591377520
rbp 0x7f9584fc4120 0x7f9584fc4120
rsp 0x7f9584fc40d0 0x7f9584fc40d0
r8 0x826debb5c40 8963038600256
r9 0x68bb70 6863728
r10 0x7f95fc000cbc 140282154716348
r11 0x1dd14e48 500256328
r12 0x0 0
r13 0x0 0
r14 0x7f9584fc99c0 140280158001600
r15 0x7f9584fc9700 140280158000896
rip 0x6cc9e7 0x6cc9e7 <rd_kafka_msgq_insert_msgq+512>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
---Type <return> to continue, or q <return> to quit---
gs 0x0 0
(gdb)
In that core file again, can you move to frame 3:
#3 0x00000000006b56ab in rd_kafka_handle_Produce (rk=0x7f95e001e440, rkb=0x7f95a4100490, err=RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION, reply=0x7f93e80581f0, request=0x7f93e80583e0, opaque=0x7f95a424ec20) at rdkafka_request.c:1883
and print:
p *rktp
p *rktp->rktp_leader
p rkb
p *rkb
p *reply
p *reply->rkbuf_rkb
p *request
p *request->rkbuf_rkb
I'm suspecting the leader for the partition was changed (NOT_LEADER_FOR_PARTITION would indicate so as well :) ), so the response handler here is accessing the unprotected thread-local rktp->rktp_xmit_msgq queue which that thread no longer owns. Concurrent unprotected access :boom:
The retrythreadfix branch of librdkafka has a fix for this issue (if your gdb printout proves the theory right)
@edenhill
(gdb) frame 3
#3 0x00000000006b56ab in rd_kafka_handle_Produce (rk=0x7f95e001e440,
rkb=0x7f95a4100490, err=RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION,
reply=0x7f93e80581f0, request=0x7f93e80583e0, opaque=0x7f95a424ec20)
at rdkafka_request.c:1883
1883 rdkafka_request.c: No such file or directory.
(gdb) p *rktp
$1 = {rktp_rklink = {tqe_next = 0x0, tqe_prev = 0x0}, rktp_rkblink = {
tqe_next = 0x0, tqe_prev = 0x7f95a425b5f0}, rktp_activelink = {
cqe_next = 0x7f95a409f660, cqe_prev = 0x7f95a425b5e0}, rktp_rktlink = {
tqe_next = 0x0, tqe_prev = 0x0}, rktp_cgrplink = {tqe_next = 0x0,
tqe_prev = 0x0}, rktp_rkt = 0x7f95fc000c70, rktp_s_rkt = 0x7f95fc000c70,
rktp_partition = 133, rktp_leader_id = 75380, rktp_leader = 0x7f95a409f5d0,
rktp_next_leader = 0x0, rktp_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 3}, rktp_lock = {
__data = {__lock = 1, __count = 0, __owner = 13696, __nusers = 1,
__kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}},
__size = "\001\000\000\000\000\000\000\000\200\065\000\000\001", '\000' <repeats 26 times>, __align = 1}, rktp_msgq_wakeup_fd = 118, rktp_msgq = {
rkmq_msgs = {tqh_first = 0x0, tqh_last = 0x7f95a424ecf8},
rkmq_msg_cnt = 0, rkmq_msg_bytes = 0}, rktp_xmit_msgq = {rkmq_msgs = {
tqh_first = 0x7f9504026290, tqh_last = 0x7f954c028f68},
rkmq_msg_cnt = 656, rkmq_msg_bytes = 865908}, rktp_fetch = 0,
rktp_fetchq = 0x7f95a424ef80, rktp_ops = 0x7f95a424f070,
rktp_msgseq = 412524, rktp_version = {val = 1}, rktp_op_version = 1,
rktp_fetch_version = 0, rktp_fetch_state = RD_KAFKA_TOPPAR_FETCH_NONE,
rktp_fetch_msg_max_bytes = 1048576, rktp_ts_fetch_backoff = 0,
---Type <return> to continue, or q <return> to quit---
rktp_query_offset = 0, rktp_next_offset = 0, rktp_last_next_offset = 0,
rktp_app_offset = -1001, rktp_stored_offset = -1001,
rktp_committing_offset = 0, rktp_committed_offset = -1001,
rktp_ts_committed_offset = 0, rktp_offsets = {fetch_offset = 0,
eof_offset = -1001, hi_offset = -1001}, rktp_offsets_fin = {
fetch_offset = 0, eof_offset = -1001, hi_offset = -1001},
rktp_hi_offset = -1001, rktp_lo_offset = -1001, rktp_ts_offset_lag = 0,
rktp_offset_path = 0x0, rktp_offset_fp = 0x0, rktp_cgrp = 0x0,
rktp_assigned = 0, rktp_replyq = {q = 0x0, version = 0, _id = 0x0},
rktp_flags = 0, rktp_s_for_desp = 0x0, rktp_s_for_cgrp = 0x0,
rktp_s_for_rkb = 0x7f95a424ec20, rktp_offset_query_tmr = {rtmr_link = {
tqe_next = 0x0, tqe_prev = 0x0}, rtmr_next = 0, rtmr_interval = 0,
rtmr_oneshot = 0 '\000', rtmr_callback = 0x0, rtmr_arg = 0x0},
rktp_offset_commit_tmr = {rtmr_link = {tqe_next = 0x0, tqe_prev = 0x0},
rtmr_next = 0, rtmr_interval = 0, rtmr_oneshot = 0 '\000',
rtmr_callback = 0x0, rtmr_arg = 0x0}, rktp_offset_sync_tmr = {rtmr_link = {
tqe_next = 0x0, tqe_prev = 0x0}, rtmr_next = 0, rtmr_interval = 0,
rtmr_oneshot = 0 '\000', rtmr_callback = 0x0, rtmr_arg = 0x0},
rktp_consumer_lag_tmr = {rtmr_link = {tqe_next = 0x0, tqe_prev = 0x0},
rtmr_next = 0, rtmr_interval = 0, rtmr_oneshot = 0 '\000',
rtmr_callback = 0x0, rtmr_arg = 0x0}, rktp_wait_consumer_lag_resp = 0,
rktp_c = {tx_msgs = {val = 413763}, tx_msg_bytes = {val = 545787250},
rx_msgs = {val = 0}, rx_msg_bytes = {val = 0}, producer_enq_msgs = {
---Type <return> to continue, or q <return> to quit---
val = 412524}, rx_ver_drops = {val = 0}}}
(gdb) p *rktp->rktp_leader
$2 = {rkb_link = {tqe_next = 0x7f95a40ad330, tqe_prev = 0x7f95a4091870},
rkb_nodeid = 75380, rkb_rsal = 0x7f949c1d4530,
rkb_ts_rsal_last = 8878017231260, rkb_addr_last = 0x7f949c1d4538,
rkb_transport = 0x0, rkb_corrid = 6073, rkb_connid = 3,
rkb_ops = 0x7f95a409fee0, rkb_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0},
rkb_blocking_max_ms = 13, rkb_toppars = {tqh_first = 0x7f95a422df20,
tqh_last = 0x7f95a424ec30}, rkb_toppar_cnt = 5, rkb_active_toppars = {
cqh_first = 0x7f95a422df20, cqh_last = 0x7f95a424ec20},
rkb_active_toppar_cnt = 5, rkb_active_toppar_next = 0x7f95a422df20,
rkb_cgrp = 0x0, rkb_ts_fetch_backoff = 0, rkb_fetching = 0,
rkb_state = RD_KAFKA_BROKER_STATE_UP, rkb_ts_state = 8878017600550,
rkb_timeout_scan_intvl = {ri_ts_last = 8963038098154, ri_fixed = 0,
ri_backoff = 0}, rkb_blocking_request_cnt = {val = 0},
rkb_features = 2047, rkb_ApiVersions = 0x7f949c1f2370,
rkb_ApiVersions_cnt = 34, rkb_ApiVersion_fail_intvl = {
ri_ts_last = 8878017500286, ri_fixed = 1200000000, ri_backoff = 0},
rkb_source = RD_KAFKA_LEARNED, rkb_c = {tx_bytes = {val = 422067884}, tx = {
val = 28659}, tx_err = {val = 0}, tx_retries = {val = 0},
req_timeouts = {val = 0}, rx_bytes = {val = 478178}, rx = {val = 6073},
rx_err = {val = 3}, rx_corrid_err = {val = 0}, rx_partial = {val = 0},
---Type <return> to continue, or q <return> to quit---
zbuf_grow = {val = 0}, buf_grow = {val = 0}, wakeups = {val = 1408259}},
rkb_req_timeouts = 0, rkb_ts_tx_last = 8879996402291,
rkb_ts_metadata_poll = 8719197400385, rkb_metadata_fast_poll_cnt = 0,
rkb_thread = 140280216749824, rkb_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 8},
rkb_rk = 0x7f95e001e440, rkb_recv_buf = 0x0, rkb_max_inflight = 1000000,
rkb_outbufs = {rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a409f7c8},
rkbq_cnt = {val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_waitresps = {
rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a409f7e0}, rkbq_cnt = {
val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_retrybufs = {rkbq_bufs = {
tqh_first = 0x0, tqh_last = 0x7f95a409f7f8}, rkbq_cnt = {val = 0},
rkbq_msg_cnt = {val = 0}}, rkb_avg_int_latency = {ra_v = {maxv = 1999356,
minv = 1684329, avg = 0, sum = 311815974, cnt = 166,
start = 8963019442607}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a40b15b0, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_outbuf_latency = {ra_v = {maxv = 0,
minv = 0, avg = 0, sum = 0, cnt = 0, start = 8963019442609}, ra_lock = {
---Type <return> to continue, or q <return> to quit---
__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0},
ra_enabled = 1, ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a409ffd0,
ra_hist = {p50 = 0, p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0,
oor = 0, hdrsize = 0, stddev = 0, mean = 0}}, rkb_avg_rtt = {ra_v = {
maxv = 0, minv = 0, avg = 0, sum = 0, cnt = 0, start = 8963019442611},
ra_lock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0},
ra_enabled = 1, ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a40a3450,
ra_hist = {p50 = 0, p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0,
oor = 0, hdrsize = 0, stddev = 0, mean = 0}}, rkb_avg_throttle = {
ra_v = {maxv = 0, minv = 0, avg = 0, sum = 0, cnt = 0,
start = 8963019442613}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a40a8d50, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}},
rkb_name = "ssl://kafka028.REDACTED.net:9093/75380", '\000' <repeats 82 times>,
---Type <return> to continue, or q <return> to quit---
rkb_nodename = "kafka028.REDACTED.net:9093", '\000' <repeats 94 times>, rkb_port = 9093,
rkb_origname = 0x7f95a409fe70 "kafka028.REDACTED.net",
rkb_logname = 0x7f95a409fea0 "ssl://kafka028.REDACTED.net:9093/75380", rkb_logname_lock = {__data = {__lock = 0, __count = 0, __owner = 0,
__nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {
__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>,
__align = 0}, rkb_wakeup_fd = {117, 118}, rkb_toppar_wakeup_fd = 118,
rkb_connect_intvl = {ri_ts_last = 8878017230322, ri_fixed = 0,
ri_backoff = 0}, rkb_proto = RD_KAFKA_PROTO_SSL, rkb_down_reported = 0,
rkb_err = {
msg = "ssl://kafka028.REDACTED.net:9093/75380: Disconnected", '\000' <repeats 452 times>, err = 0}}
(gdb) p rkb
$3 = (rd_kafka_broker_t *) 0x7f95a4100490
(gdb) p *rkb
$4 = {rkb_link = {tqe_next = 0x7f95a410e1f0, tqe_prev = 0x7f95a40f27a0},
rkb_nodeid = 63698, rkb_rsal = 0x7f93e8057670,
rkb_ts_rsal_last = 8963037011659, rkb_addr_last = 0x7f93e8057678,
rkb_transport = 0x7f93e80576a0, rkb_corrid = 12436, rkb_connid = 8,
rkb_ops = 0x7f95a4100da0, rkb_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0},
rkb_blocking_max_ms = 1000, rkb_toppars = {tqh_first = 0x7f95a420b130,
tqh_last = 0x7f95a4262970}, rkb_toppar_cnt = 2, rkb_active_toppars = {
cqh_first = 0x7f95a420b130, cqh_last = 0x7f95a4262960},
rkb_active_toppar_cnt = 2, rkb_active_toppar_next = 0x7f95a420b130,
rkb_cgrp = 0x0, rkb_ts_fetch_backoff = 0, rkb_fetching = 0,
rkb_state = RD_KAFKA_BROKER_STATE_UP, rkb_ts_state = 8963037363446,
rkb_timeout_scan_intvl = {ri_ts_last = 8963038000270, ri_fixed = 0,
ri_backoff = 0}, rkb_blocking_request_cnt = {val = 0},
rkb_features = 2047, rkb_ApiVersions = 0x7f93e80595b0,
rkb_ApiVersions_cnt = 34, rkb_ApiVersion_fail_intvl = {
ri_ts_last = 8963037300220, ri_fixed = 1200000000, ri_backoff = 0},
rkb_source = RD_KAFKA_LEARNED, rkb_c = {tx_bytes = {val = 649492492}, tx = {
val = 45781}, tx_err = {val = 0}, tx_retries = {val = 0},
req_timeouts = {val = 0}, rx_bytes = {val = 858113}, rx = {val = 12436},
rx_err = {val = 7}, rx_corrid_err = {val = 0}, rx_partial = {val = 0},
---Type <return> to continue, or q <return> to quit---
zbuf_grow = {val = 0}, buf_grow = {val = 0}, wakeups = {val = 2209509}},
rkb_req_timeouts = 0, rkb_ts_tx_last = 8963038316094,
rkb_ts_metadata_poll = 8719198025123, rkb_metadata_fast_poll_cnt = 0,
rkb_thread = 140280158000896, rkb_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 6},
rkb_rk = 0x7f95e001e440, rkb_recv_buf = 0x0, rkb_max_inflight = 1000000,
rkb_outbufs = {rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a4100688},
rkbq_cnt = {val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_waitresps = {
rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a41006a0}, rkbq_cnt = {
val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_retrybufs = {rkbq_bufs = {
tqh_first = 0x0, tqh_last = 0x7f95a41006b8}, rkbq_cnt = {val = 0},
rkbq_msg_cnt = {val = 0}}, rkb_avg_int_latency = {ra_v = {maxv = 1722480,
minv = 26, avg = 0, sum = 1659366616, cnt = 2146,
start = 8963019442705}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a40273f0, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_outbuf_latency = {ra_v = {maxv = 354499,
minv = 52, avg = 0, sum = 612280, cnt = 11, start = 8963019442707},
---Type <return> to continue, or q <return> to quit---
ra_lock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0},
ra_enabled = 1, ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a42f14a0,
ra_hist = {p50 = 0, p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0,
oor = 0, hdrsize = 0, stddev = 0, mean = 0}}, rkb_avg_rtt = {ra_v = {
maxv = 192096, minv = 63105, avg = 0, sum = 1219579, cnt = 11,
start = 8963019442709}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a4100e90, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_throttle = {ra_v = {maxv = 0, minv = 0,
avg = 0, sum = 0, cnt = 10, start = 8963019442710}, ra_lock = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0,
__spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a4109c10, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}},
rkb_name = "ssl://kafka005.REDACTED.net:9093/63698", '\000' <repeats 82 times>,
---Type <return> to continue, or q <return> to quit---
rkb_nodename = "kafka005.REDACTED.net:9093", '\000' <repeats 94 times>, rkb_port = 9093,
rkb_origname = 0x7f95a4100d30 "kafka005.REDACTED.net",
rkb_logname = 0x7f95a4100d60 "ssl://kafka005.REDACTED.net:9093/63698", rkb_logname_lock = {__data = {__lock = 0, __count = 0, __owner = 0,
__nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {
__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>,
__align = 0}, rkb_wakeup_fd = {131, 132}, rkb_toppar_wakeup_fd = 132,
rkb_connect_intvl = {ri_ts_last = 8963037010020, ri_fixed = 0,
ri_backoff = 0}, rkb_proto = RD_KAFKA_PROTO_SSL, rkb_down_reported = 0,
rkb_err = {
msg = "ssl://kafka005.REDACTED.net:9093/63698: Disconnected", '\000' <repeats 452 times>, err = 0}}
(gdb) p *reply
$5 = {rkbuf_link = {tqe_next = 0x0, tqe_prev = 0x0}, rkbuf_corrid = 0,
rkbuf_ts_retry = 0, rkbuf_flags = 0, rkbuf_buf = {rbuf_segments = {
tqh_first = 0x7f93e8059750, tqh_last = 0x7f93e8059798},
rbuf_segment_cnt = 2, rbuf_wpos = 0x7f93e8059798, rbuf_len = 50,
rbuf_size = 50, rbuf_extra = 0x7f93e8059750 "\230\227\005\350\223\177",
rbuf_extra_len = 136, rbuf_extra_size = 136}, rkbuf_reader = {
buf = 0x7f93e8058218, seg = 0x7f93e8059798, rof = 42, start = 8,
end = 50}, rkbuf_connid = 0, rkbuf_totlen = 42, rkbuf_crc = 0,
rkbuf_reqhdr = {Size = 0, ApiKey = 0, ApiVersion = 3, CorrId = 0},
rkbuf_reshdr = {Size = 46, CorrId = 12436}, rkbuf_expected_size = 0,
rkbuf_replyq = {q = 0x0, version = 0, _id = 0x0}, rkbuf_orig_replyq = {
q = 0x0, version = 0, _id = 0x0}, rkbuf_cb = 0x0, rkbuf_response = 0x0,
rkbuf_rkb = 0x7f95a4100490, rkbuf_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 1},
rkbuf_opaque = 0x0, rkbuf_retries = 0, rkbuf_features = 0, rkbuf_ts_enq = 0,
rkbuf_ts_sent = 0, rkbuf_ts_timeout = 0, rkbuf_abs_timeout = 0,
rkbuf_rel_timeout = 0, rkbuf_offset = 0, rkbuf_rktp_vers = 0x0,
rkbuf_msgq = {rkmq_msgs = {tqh_first = 0x0, tqh_last = 0x7f93e8058378},
rkmq_msg_cnt = 0, rkmq_msg_bytes = 0},
rkbuf_err = RD_KAFKA_RESP_ERR_NO_ERROR, rkbuf_u = {Metadata = {topics = 0x0,
reason = 0x0, rko = 0x0, all_topics = 0, decr = 0x0, decr_lock = 0x0}},
---Type <return> to continue, or q <return> to quit---
rkbuf_uflow_mitigation = 0x0}
(gdb) p *reply->rkbuf_rkb
$6 = {rkb_link = {tqe_next = 0x7f95a410e1f0, tqe_prev = 0x7f95a40f27a0},
rkb_nodeid = 63698, rkb_rsal = 0x7f93e8057670,
rkb_ts_rsal_last = 8963037011659, rkb_addr_last = 0x7f93e8057678,
rkb_transport = 0x7f93e80576a0, rkb_corrid = 12436, rkb_connid = 8,
rkb_ops = 0x7f95a4100da0, rkb_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0},
rkb_blocking_max_ms = 1000, rkb_toppars = {tqh_first = 0x7f95a420b130,
tqh_last = 0x7f95a4262970}, rkb_toppar_cnt = 2, rkb_active_toppars = {
cqh_first = 0x7f95a420b130, cqh_last = 0x7f95a4262960},
rkb_active_toppar_cnt = 2, rkb_active_toppar_next = 0x7f95a420b130,
rkb_cgrp = 0x0, rkb_ts_fetch_backoff = 0, rkb_fetching = 0,
rkb_state = RD_KAFKA_BROKER_STATE_UP, rkb_ts_state = 8963037363446,
rkb_timeout_scan_intvl = {ri_ts_last = 8963038000270, ri_fixed = 0,
ri_backoff = 0}, rkb_blocking_request_cnt = {val = 0},
rkb_features = 2047, rkb_ApiVersions = 0x7f93e80595b0,
rkb_ApiVersions_cnt = 34, rkb_ApiVersion_fail_intvl = {
ri_ts_last = 8963037300220, ri_fixed = 1200000000, ri_backoff = 0},
rkb_source = RD_KAFKA_LEARNED, rkb_c = {tx_bytes = {val = 649492492}, tx = {
val = 45781}, tx_err = {val = 0}, tx_retries = {val = 0},
req_timeouts = {val = 0}, rx_bytes = {val = 858113}, rx = {val = 12436},
rx_err = {val = 7}, rx_corrid_err = {val = 0}, rx_partial = {val = 0},
---Type <return> to continue, or q <return> to quit---
zbuf_grow = {val = 0}, buf_grow = {val = 0}, wakeups = {val = 2209509}},
rkb_req_timeouts = 0, rkb_ts_tx_last = 8963038316094,
rkb_ts_metadata_poll = 8719198025123, rkb_metadata_fast_poll_cnt = 0,
rkb_thread = 140280158000896, rkb_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 6},
rkb_rk = 0x7f95e001e440, rkb_recv_buf = 0x0, rkb_max_inflight = 1000000,
rkb_outbufs = {rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a4100688},
rkbq_cnt = {val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_waitresps = {
rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a41006a0}, rkbq_cnt = {
val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_retrybufs = {rkbq_bufs = {
tqh_first = 0x0, tqh_last = 0x7f95a41006b8}, rkbq_cnt = {val = 0},
rkbq_msg_cnt = {val = 0}}, rkb_avg_int_latency = {ra_v = {maxv = 1722480,
minv = 26, avg = 0, sum = 1659366616, cnt = 2146,
start = 8963019442705}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a40273f0, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_outbuf_latency = {ra_v = {maxv = 354499,
minv = 52, avg = 0, sum = 612280, cnt = 11, start = 8963019442707},
---Type <return> to continue, or q <return> to quit---
ra_lock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0},
ra_enabled = 1, ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a42f14a0,
ra_hist = {p50 = 0, p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0,
oor = 0, hdrsize = 0, stddev = 0, mean = 0}}, rkb_avg_rtt = {ra_v = {
maxv = 192096, minv = 63105, avg = 0, sum = 1219579, cnt = 11,
start = 8963019442709}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a4100e90, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_throttle = {ra_v = {maxv = 0, minv = 0,
avg = 0, sum = 0, cnt = 10, start = 8963019442710}, ra_lock = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0,
__spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a4109c10, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}},
rkb_name = "ssl://kafka005.REDACTED.net:9093/63698", '\000' <repeats 82 times>,
---Type <return> to continue, or q <return> to quit---
rkb_nodename = "kafka005.REDACTED.net:9093", '\000' <repeats 94 times>, rkb_port = 9093,
rkb_origname = 0x7f95a4100d30 "kafka005.REDACTED.net",
rkb_logname = 0x7f95a4100d60 "ssl://kafka005.REDACTED.net:9093/63698", rkb_logname_lock = {__data = {__lock = 0, __count = 0, __owner = 0,
__nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {
__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>,
__align = 0}, rkb_wakeup_fd = {131, 132}, rkb_toppar_wakeup_fd = 132,
rkb_connect_intvl = {ri_ts_last = 8963037010020, ri_fixed = 0,
ri_backoff = 0}, rkb_proto = RD_KAFKA_PROTO_SSL, rkb_down_reported = 0,
rkb_err = {
msg = "ssl://kafka005.REDACTED.net:9093/63698: Disconnected", '\000' <repeats 452 times>, err = 0}}
(gdb) p *request
$7 = {rkbuf_link = {tqe_next = 0x0, tqe_prev = 0x7f95a41006a0},
rkbuf_corrid = 12436, rkbuf_ts_retry = 0, rkbuf_flags = 0, rkbuf_buf = {
rbuf_segments = {tqh_first = 0x7f93e802cf40, tqh_last = 0x7f93e8045e58},
rbuf_segment_cnt = 3, rbuf_wpos = 0x7f93e8045e58, rbuf_len = 24867,
rbuf_size = 24903, rbuf_extra = 0x7f93e802cf40 "\230^\004\350\223\177",
rbuf_extra_len = 102296, rbuf_extra_size = 128375}, rkbuf_reader = {
buf = 0x7f93e8058408, seg = 0x7f93e8045e98, rof = 24753, start = 0,
end = 24867}, rkbuf_connid = 8, rkbuf_totlen = 0, rkbuf_crc = 0,
rkbuf_reqhdr = {Size = 0, ApiKey = 0, ApiVersion = 3, CorrId = 0},
rkbuf_reshdr = {Size = 0, CorrId = 0}, rkbuf_expected_size = 0,
rkbuf_replyq = {q = 0x0, version = 0, _id = 0x0}, rkbuf_orig_replyq = {
q = 0x0, version = 0, _id = 0x0},
rkbuf_cb = 0x6b5255 <rd_kafka_handle_Produce>, rkbuf_response = 0x0,
rkbuf_rkb = 0x7f95a4100490, rkbuf_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 1},
rkbuf_opaque = 0x7f95a424ec20, rkbuf_retries = 0, rkbuf_features = 512,
rkbuf_ts_enq = 8963038314357, rkbuf_ts_sent = 184101,
rkbuf_ts_timeout = 8963098314357, rkbuf_abs_timeout = 8963338100356,
rkbuf_rel_timeout = 0, rkbuf_offset = 0, rkbuf_rktp_vers = 0x0,
rkbuf_msgq = {rkmq_msgs = {tqh_first = 0x0, tqh_last = 0x7f93e8058568},
rkmq_msg_cnt = 0, rkmq_msg_bytes = 0},
---Type <return> to continue, or q <return> to quit---
rkbuf_err = RD_KAFKA_RESP_ERR_NO_ERROR, rkbuf_u = {Metadata = {topics = 0x0,
reason = 0x0, rko = 0x0, all_topics = 0, decr = 0x0, decr_lock = 0x0}},
rkbuf_uflow_mitigation = 0x0}
(gdb) p *request->rkbuf_rkb
$8 = {rkb_link = {tqe_next = 0x7f95a410e1f0, tqe_prev = 0x7f95a40f27a0},
rkb_nodeid = 63698, rkb_rsal = 0x7f93e8057670,
rkb_ts_rsal_last = 8963037011659, rkb_addr_last = 0x7f93e8057678,
rkb_transport = 0x7f93e80576a0, rkb_corrid = 12436, rkb_connid = 8,
rkb_ops = 0x7f95a4100da0, rkb_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0},
rkb_blocking_max_ms = 1000, rkb_toppars = {tqh_first = 0x7f95a420b130,
tqh_last = 0x7f95a4262970}, rkb_toppar_cnt = 2, rkb_active_toppars = {
cqh_first = 0x7f95a420b130, cqh_last = 0x7f95a4262960},
rkb_active_toppar_cnt = 2, rkb_active_toppar_next = 0x7f95a420b130,
rkb_cgrp = 0x0, rkb_ts_fetch_backoff = 0, rkb_fetching = 0,
rkb_state = RD_KAFKA_BROKER_STATE_UP, rkb_ts_state = 8963037363446,
rkb_timeout_scan_intvl = {ri_ts_last = 8963038000270, ri_fixed = 0,
ri_backoff = 0}, rkb_blocking_request_cnt = {val = 0},
rkb_features = 2047, rkb_ApiVersions = 0x7f93e80595b0,
rkb_ApiVersions_cnt = 34, rkb_ApiVersion_fail_intvl = {
ri_ts_last = 8963037300220, ri_fixed = 1200000000, ri_backoff = 0},
rkb_source = RD_KAFKA_LEARNED, rkb_c = {tx_bytes = {val = 649492492}, tx = {
val = 45781}, tx_err = {val = 0}, tx_retries = {val = 0},
req_timeouts = {val = 0}, rx_bytes = {val = 858113}, rx = {val = 12436},
rx_err = {val = 7}, rx_corrid_err = {val = 0}, rx_partial = {val = 0},
---Type <return> to continue, or q <return> to quit---
zbuf_grow = {val = 0}, buf_grow = {val = 0}, wakeups = {val = 2209509}},
rkb_req_timeouts = 0, rkb_ts_tx_last = 8963038316094,
rkb_ts_metadata_poll = 8719198025123, rkb_metadata_fast_poll_cnt = 0,
rkb_thread = 140280158000896, rkb_refcnt = {lock = {__data = {__lock = 0,
__count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0,
__elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, v = 6},
rkb_rk = 0x7f95e001e440, rkb_recv_buf = 0x0, rkb_max_inflight = 1000000,
rkb_outbufs = {rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a4100688},
rkbq_cnt = {val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_waitresps = {
rkbq_bufs = {tqh_first = 0x0, tqh_last = 0x7f95a41006a0}, rkbq_cnt = {
val = 0}, rkbq_msg_cnt = {val = 0}}, rkb_retrybufs = {rkbq_bufs = {
tqh_first = 0x0, tqh_last = 0x7f95a41006b8}, rkbq_cnt = {val = 0},
rkbq_msg_cnt = {val = 0}}, rkb_avg_int_latency = {ra_v = {maxv = 1722480,
minv = 26, avg = 0, sum = 1659366616, cnt = 2146,
start = 8963019442705}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a40273f0, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_outbuf_latency = {ra_v = {maxv = 354499,
minv = 52, avg = 0, sum = 612280, cnt = 11, start = 8963019442707},
---Type <return> to continue, or q <return> to quit---
ra_lock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0,
__next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0},
ra_enabled = 1, ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a42f14a0,
ra_hist = {p50 = 0, p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0,
oor = 0, hdrsize = 0, stddev = 0, mean = 0}}, rkb_avg_rtt = {ra_v = {
maxv = 192096, minv = 63105, avg = 0, sum = 1219579, cnt = 11,
start = 8963019442709}, ra_lock = {__data = {__lock = 0, __count = 0,
__owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0,
__list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a4100e90, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}}, rkb_avg_throttle = {ra_v = {maxv = 0, minv = 0,
avg = 0, sum = 0, cnt = 10, start = 8963019442710}, ra_lock = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0,
__spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 39 times>, __align = 0}, ra_enabled = 1,
ra_type = RD_AVG_GAUGE, ra_hdr = 0x7f95a4109c10, ra_hist = {p50 = 0,
p75 = 0, p90 = 0, p95 = 0, p99 = 0, p99_99 = 0, oor = 0, hdrsize = 0,
stddev = 0, mean = 0}},
rkb_name = "ssl://kafka005.REDACTED.net:9093/63698", '\000' <repeats 82 times>,
---Type <return> to continue, or q <return> to quit---
rkb_nodename = "kafka005.REDACTED.net:9093", '\000' <repeats 94 times>, rkb_port = 9093,
rkb_origname = 0x7f95a4100d30 "kafka005.REDACTED.net",
rkb_logname = 0x7f95a4100d60 "ssl://kafka005.REDACTED.net:9093/63698", rkb_logname_lock = {__data = {__lock = 0, __count = 0, __owner = 0,
__nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {
__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>,
__align = 0}, rkb_wakeup_fd = {131, 132}, rkb_toppar_wakeup_fd = 132,
rkb_connect_intvl = {ri_ts_last = 8963037010020, ri_fixed = 0,
ri_backoff = 0}, rkb_proto = RD_KAFKA_PROTO_SSL, rkb_down_reported = 0,
rkb_err = {
msg = "ssl://kafka005.REDACTED.net:9093/63698: Disconnected", '\000' <repeats 452 times>, err = 0}}
(gdb)
Partition leader is 75380, while the request was sent to, and response received from, broker 63698, so that means the theory stands and the fix is valid!
Would you be able to try out the fix as soon as it lands in master?
Absolutely!
On Thu, Aug 23, 2018, 8:58 AM Magnus Edenhill notifications@github.com
wrote:
Partition leader is 75380, while the request was sent to, and response
received from, broker 63698, so that means the theory stands and the fix is
valid!Would you be able to try out the fix as soon as it lands in master?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/confluentinc/confluent-kafka-go/issues/203#issuecomment-415470249,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABoBElP19BECLyUuvg_rPYsYhLOc1RBjks5uTtE0gaJpZM4Um7tI
.
@billygout The fix is now on librdkafka master, fire away!
ok, it'll take us about a week to get it out, and another week of no crashes (hopefully) to claim victory.
Do you want me to craft an RC to make it a bit more formal?
I personally don't mind, so it's up to you.
Let me create an RC after some release testing tomorrow, and you can use that.
Thanks
In any case, i've been rebasing https://github.com/gduranceau/librdkafka/tree/connect_on_demand on top of master.