Skip to content

INERT INTO Kafka Engine from an empty SELECT sub query cause FATAL crash #14202

@donge

Description

@donge

(you don't have to strictly follow this form)

Describe the bug

INERT INTO Kafka Engine from an empty SELECT sub query cause FATAL crash

After upgrade to version 20. issue is seen, I tried lastest version also.

but Version 19 is working good without crash.

How to reproduce

  • Which ClickHouse server version to use
    (version 20.6.2.1, no build id)

  • Which interface to use, if matters
    clickhouse-client

  • Non-default settings, if any

  • CREATE TABLE statements for all tables involved

CREATE TABLE kafka_q
(
    `ts` UInt64,
    `ip` String
)
ENGINE = Kafka('kafka1:9092,kafka2:9092,kafka3:9092', 'test', 'group_dev', 'JSONEachRow')

CREATE TABLE data
(
    `dt` Date,
    `ip` String,
    `count` UInt64
)
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMM(dt)
ORDER BY (ip);
  • Sample data for all these tables, use clickhouse-obfuscator if necessary
    no data

  • Queries to run that lead to unexpected result

INSERT INTO kafka_q SELECT ts, ip FROM (select ip, dt as ts from data)

data table is empty, and kafka_q no master connected or disconnected.

Expected behavior
A clear and concise description of what you expected to happen.
no crash

Error message and/or stacktrace
If applicable, add screenshots to help explain your problem.

Logs:

INSERT INTO kafka_q SELECT
    ts,
    ip
FROM
(
    SELECT
        ip,
        dt AS ts
    FROM data
)

2020.08.28 12:03:55.215231 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Debug> executeQuery: (from [::1]:52540) INSERT INTO kafka_q SELECT ts, ip FROM (select ip, dt as ts from data)
2020.08.28 12:03:55.215289 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Trace> ContextAccess (default): Access granted: INSERT(ts, ip) ON default.kafka_q
2020.08.28 12:03:55.215414 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Trace> ContextAccess (default): Access granted: SELECT(dt, ip) ON default.data
2020.08.28 12:03:55.215494 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Trace> ContextAccess (default): Access granted: SELECT(dt, ip) ON default.data
2020.08.28 12:03:55.215575 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Debug> default.data (SelectExecutor): Key condition: unknown
2020.08.28 12:03:55.215592 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Debug> default.data (SelectExecutor): MinMax index condition: unknown
2020.08.28 12:03:55.215605 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Debug> default.data (SelectExecutor): Selected 0 parts by date, 0 parts by key, 0 marks to read from 0 ranges
2020.08.28 12:03:55.215627 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
2020.08.28 12:03:55.215648 [ 101645 ] {01e92588-99e6-43ff-bcf9-7a146375e049} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
2020.08.28 12:03:55.216111 [ 101552 ] {} <Trace> BaseDaemon: Received signal 11
2020.08.28 12:03:55.216220 [ 103418 ] {} <Fatal> BaseDaemon: ########################################
2020.08.28 12:03:55.216289 [ 103418 ] {} <Fatal> BaseDaemon: (version 20.6.2.1, no build id) (from thread 101558) (query_id: 01e92588-99e6-43ff-bcf9-7a146375e049) Received signal Segmentation fault: 11 (11)
2020.08.28 12:03:55.216325 [ 103418 ] {} <Fatal> BaseDaemon: Address: NULL pointer. Address not mapped to object.
2020.08.28 12:03:55.216350 [ 103418 ] {} <Fatal> BaseDaemon: Stack trace: 0x106b695ed
2020.08.28 12:03:55.216374 [ 103418 ] {} <Fatal> BaseDaemon: 0. 0x106b695ed

[ip-192-168-1-102.cn-northwest-1.compute.internal] 2020.08.28 12:03:55.216220 [ 103418 ] <Fatal> BaseDaemon: ########################################
[ip-192-168-1-102.cn-northwest-1.compute.internal] 2020.08.28 12:03:55.216289 [ 103418 ] <Fatal> BaseDaemon: (version 20.6.2.1, no build id) (from thread 101558) (query_id: 01e92588-99e6-43ff-bcf9-7a146375e049) Received signal Segmentation fault: 11 (11)
[ip-192-168-1-102.cn-northwest-1.compute.internal] 2020.08.28 12:03:55.216325 [ 103418 ] <Fatal> BaseDaemon: Address: NULL pointer. Address not mapped to object.
[ip-192-168-1-102.cn-northwest-1.compute.internal] 2020.08.28 12:03:55.216350 [ 103418 ] <Fatal> BaseDaemon: Stack trace: 0x106b695ed
[ip-192-168-1-102.cn-northwest-1.compute.internal] 2020.08.28 12:03:55.216374 [ 103418 ] <Fatal> BaseDaemon: 0. 0x106b695ed
2020.08.28 12:03:59.284593 [ 101596 ] {} <Trace> SystemLog (system.query_log): Flushing system log, 1 entries to flush
2020.08.28 12:03:59.285824 [ 101596 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 31.26 TiB.
2020.08.28 12:03:59.288719 [ 101596 ] {} <Trace> system.query_log: Renaming temporary part tmp_insert_202008_11_11_0 to 202008_21_21_0.
2020.08.28 12:03:59.289266 [ 101596 ] {} <Trace> SystemLog (system.query_log): Flushed system log
2020.08.28 12:03:59.418192 [ 101599 ] {} <Trace> SystemLog (system.metric_log): Flushing system log, 7 entries to flush
2020.08.28 12:03:59.423499 [ 101599 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 31.26 TiB.
2020.08.28 12:03:59.425930 [ 101599 ] {} <Trace> system.metric_log: Renaming temporary part tmp_insert_202008_23_23_0 to 202008_70_70_0.
2020.08.28 12:03:59.426467 [ 101599 ] {} <Trace> SystemLog (system.metric_log): Flushed system log

Exception on client:
Code: 32. DB::Exception: Attempt to read after eof: while receiving packet from localhost:9000

GDB fullstack:

(lldb) bt
* thread #11, name = 'QueryPipelineEx', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00000001036215ed clickhouse`DB::KafkaBlockOutputStream::writeSuffix(this=0x0000000114072498) at KafkaBlockOutputStream.cpp:45:12 [opt]
    frame #1: 0x00000001042fc855 clickhouse`DB::ISink::prepare(this=0x00000001140f3618) at ISink.cpp:19:9 [opt]
    frame #2: 0x000000010432bdd4 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=8, thread_number=0, queue=size=0, node_lock=<unavailable>) at PipelineExecutor.cpp:291:58 [opt]
    frame #3: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405bc90, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #4: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=7, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #5: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405bbf0, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #6: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=6, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #7: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405bb50, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #8: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=5, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #9: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405bab0, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #10: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=4, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #11: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405b9c0, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #12: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=3, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #13: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405b970, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #14: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=2, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #15: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405b6f0, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #16: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=1, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #17: 0x000000010432bcb4 clickhouse`DB::PipelineExecutor::tryAddProcessorToStackIfUpdated(this=0x0000000120c9de18, edge=0x000000011405b600, queue=size=0, thread_number=0) at PipelineExecutor.cpp:264:16 [opt]
    frame #18: 0x000000010432c255 clickhouse`DB::PipelineExecutor::prepareProcessor(this=0x0000000120c9de18, pid=0, thread_number=0, queue=<unavailable>, node_lock=<unavailable>) at PipelineExecutor.cpp:367:18 [opt]
    frame #19: 0x000000010432e483 clickhouse`DB::PipelineExecutor::executeStepImpl(this=0x0000000120c9de18, thread_num=0, num_threads=1, yield_flag=<unavailable>) at PipelineExecutor.cpp:658:26 [opt]
    frame #20: 0x000000010432d05e clickhouse`DB::PipelineExecutor::executeImpl(unsigned long) [inlined] DB::PipelineExecutor::executeSingleThread(this=0x0000000120c9de18, thread_num=0, num_threads=1) at PipelineExecutor.cpp:546:5 [opt]
    frame #21: 0x000000010432d04f clickhouse`DB::PipelineExecutor::executeImpl(this=0x0000000120c9de18, num_threads=1) at PipelineExecutor.cpp:812 [opt]
    frame #22: 0x000000010432ccfe clickhouse`DB::PipelineExecutor::execute(this=0x0000000120c9de18, num_threads=<unavailable>) at PipelineExecutor.cpp:479:9 [opt]
    frame #23: 0x00000001043363cc clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] DB::threadFunction(data=<unavailable>, num_threads=<unavailable>) at PullingAsyncPipelineExecutor.cpp:79:24 [opt]
    frame #24: 0x00000001043363a4 clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] DB::PullingAsyncPipelineExecutor::pull(this=0x000000012091f758)::$_0::operator()() const at PullingAsyncPipelineExecutor.cpp:101 [opt]
    frame #25: 0x000000010433634d clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] decltype(__f=0x000000012091f758)::$_0 const&>(fp)()) std::__1::__invoke_constexpr<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0 const&>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0 const&) at type_traits:3525 [opt]
    frame #26: 0x000000010433634d clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] decltype(__f=0x000000012091f758, __t=<unavailable>) std::__1::__apply_tuple_impl<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0 const&, std::__1::tuple<> const&>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0 const&, std::__1::tuple<> const&, std::__1::__tuple_indices<>) at tuple:1415 [opt]
    frame #27: 0x000000010433634d clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] decltype(__f=0x000000012091f758, __t=<unavailable>) std::__1::apply<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0 const&, std::__1::tuple<> const&>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0 const&, std::__1::tuple<> const&) at tuple:1424 [opt]
    frame #28: 0x000000010433634d clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() at ThreadPool.h:168 [opt]
    frame #29: 0x0000000104336348 clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] decltype(__f=<unavailable>)::$_0>(fp)()) std::__1::__invoke<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()&>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&) at type_traits:3519 [opt]
    frame #30: 0x0000000104336348 clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] void std::__1::__invoke_void_return_wrapper<void>::__call<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(__args=<unavailable>)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()&>(ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()&) at __functional_base:348 [opt]
    frame #31: 0x0000000104336348 clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator()() [inlined] std::__1::__function::__alloc_func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator(this=<unavailable>)() at functional:1540 [opt]
    frame #32: 0x0000000104336348 clickhouse`std::__1::__function::__func<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'(), std::__1::allocator<ThreadFromGlobalPool::ThreadFromGlobalPool<DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0>(DB::PullingAsyncPipelineExecutor::pull(DB::Chunk&, unsigned long long)::$_0&&)::'lambda'()>, void ()>::operator(this=0x000000012091f740)() at functional:1714 [opt]
    frame #33: 0x0000000100026756 clickhouse`ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) [inlined] std::__1::__function::__value_func<void ()>::operator(this=<unavailable>)() const at functional:1867:16 [opt]
    frame #34: 0x0000000100026743 clickhouse`ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) [inlined] std::__1::function<void ()>::operator(this=<unavailable>)() const at functional:2473 [opt]
    frame #35: 0x0000000100026743 clickhouse`ThreadPoolImpl<std::__1::thread>::worker(this=0x0000000111e19f00, thread_it=<unavailable>) at ThreadPool.cpp:227 [opt]
    frame #36: 0x0000000100028d71 clickhouse`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long long>)::'lambda1'()> >(void*) [inlined] void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(this=<unavailable>)>, int, std::__1::optional<unsigned long long>)::'lambda1'()::operator()() const at ThreadPool.cpp:108:73 [opt]
    frame #37: 0x0000000100028d68 clickhouse`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long long>)::'lambda1'()> >(void*) [inlined] decltype(__f=<unavailable>)()) std::__1::__invoke<void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long long>)::'lambda1'()>(void&&) at type_traits:3519 [opt]
    frame #38: 0x0000000100028d68 clickhouse`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long long>)::'lambda1'()> >(void*) [inlined] void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long long>)::'lambda1'()>(__t=<unavailable>)>, int, std::__1::optional<unsigned long long>)::'lambda1'()>&, std::__1::__tuple_indices<>) at thread:273 [opt]
    frame #39: 0x0000000100028d68 clickhouse`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void ThreadPoolImpl<std::__1::thread>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long long>)::'lambda1'()> >(__vp=0x0000000112c686e0) at thread:284 [opt]
    frame #40: 0x00007fff675ff109 libsystem_pthread.dylib`_pthread_start + 148
    frame #41: 0x00007fff675fab8b libsystem_pthread.dylib`thread_start + 15
(lldb) child
error: 'child' is not a valid command.
(lldb) thread 11
invalid command 'thread 11'.
(lldb) t 11
* thread #11, name = 'QueryPipelineEx', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00000001036215ed clickhouse`DB::KafkaBlockOutputStream::writeSuffix(this=0x0000000114072498) at KafkaBlockOutputStream.cpp:45:12 [opt]
   42
   43  	void KafkaBlockOutputStream::writeSuffix()
   44  	{
-> 45  	    child->writeSuffix();
   46  	    flush();
   47  	}
   48
(lldb) p child
(DB::BlockOutputStreamPtr) $0 = nullptr {
  __ptr_ = 0x0000000000000000
}

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugConfirmed user-visible misbehaviour in official releasecomp-message-queuesMessage queue integrations (Kafka, RabbitMQ, NATS table engines for stream ingestion/egress).

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions