Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logical error: 'false && "WriteBuffer is not finalized in destructor."' in WriteBufferFromS3 #64297

Open
kssenii opened this issue May 23, 2024 · 0 comments
Assignees
Labels
fuzz Problem found by one of the fuzzers

Comments

@kssenii
Copy link
Member

kssenii commented May 23, 2024

https://s3.amazonaws.com/clickhouse-test-reports/64128/45492baf440418267c8187607650a6ceddc061d3/stress_test__asan_.html

2024-05-23 13:20:01 Thread 1121 "HTTPHandler" received signal SIGABRT, Aborted.
2024-05-23 13:20:01 [Switching to Thread 0x7fe2be95d640 (LWP 8108)]
2024-05-23 13:20:01 0x00007fe9074c79fc in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6
2024-05-23 13:20:01 #0  0x00007fe9074c79fc in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6
2024-05-23 13:20:01 No symbol table info available.
2024-05-23 13:20:01 #1  0x00007fe907473476 in raise () from /lib/x86_64-linux-gnu/libc.so.6
2024-05-23 13:20:01 No symbol table info available.
2024-05-23 13:20:01 #2  0x00007fe9074597f3 in abort () from /lib/x86_64-linux-gnu/libc.so.6
2024-05-23 13:20:01 No symbol table info available.
2024-05-23 13:20:01 #3  0x000055c2d0ea3112 in DB::abortOnFailedAssertion (description=...) at ./build_docker/./src/Common/Exception.cpp:44
2024-05-23 13:20:01 No locals.
2024-05-23 13:20:01 #4  0x000055c2d0fe1fea in DB::WriteBuffer::~WriteBuffer (this=<optimized out>) at ./build_docker/./src/IO/WriteBuffer.cpp:28
2024-05-23 13:20:01         log = <optimized out>
2024-05-23 13:20:01 #5  0x000055c2dd86ba35 in DB::BufferWithOwnMemory<DB::WriteBuffer>::~BufferWithOwnMemory (this=0x517002af5080) at ./src/IO/BufferWithOwnMemory.h:150
2024-05-23 13:20:01 No locals.
2024-05-23 13:20:01 #6  DB::WriteBufferFromS3::~WriteBufferFromS3 (this=0x517002af5080) at ./build_docker/./src/IO/WriteBufferFromS3.cpp:286
2024-05-23 13:20:01 No locals.
2024-05-23 13:20:01 #7  0x000055c2dd86c6ae in DB::WriteBufferFromS3::~WriteBufferFromS3 (this=0xd14) at ./build_docker/./src/IO/WriteBufferFromS3.cpp:265
2024-05-23 13:20:01 No locals.
2024-05-23 13:20:01 #8  0x000055c2de61d219 in std::__1::default_delete<DB::WriteBuffer>::operator()[abi:v15000](DB::WriteBuffer*) const (this=<optimized out>, __ptr=0x0) at ./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:48
2024-05-23 13:20:01 No locals.
2024-05-23 13:20:01 #9  std::__1::unique_ptr<DB::WriteBuffer, std::__1::default_delete<DB::WriteBuffer> >::reset[abi:v15000](DB::WriteBuffer*) (this=<optimized out>, __p=0x0) at ./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:305
2024-05-23 13:20:01         __tmp = 0x0
2024-05-23 13:20:01 #10 std::__1::unique_ptr<DB::WriteBuffer, std::__1::default_delete<DB::WriteBuffer> >::~unique_ptr[abi:v15000]() (this=<optimized out>) at ./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:259
2024-05-23 13:20:01 No locals.
2024-05-23 13:20:01 #11 DB::WriteBufferFromFileDecorator::~WriteBufferFromFileDecorator (this=0x50f0017f2900) at ./build_docker/./src/IO/WriteBufferFromFileDecorator.cpp:37
2024-05-23 13:20:02 No locals.
2024-05-23 13:20:02 #12 0x000055c2de61c539 in DB::WriteBufferWithFinalizeCallback::~WriteBufferWithFinalizeCallback (this=0x50f0017f2900) at ./src/Disks/IO/WriteBufferWithFinalizeCallback.h:14
2024-05-23 13:20:02 No locals.
2024-05-23 13:20:02 #13 DB::WriteBufferWithFinalizeCallback::~WriteBufferWithFinalizeCallback (this=0x50f0017f2900) at ./src/Disks/IO/WriteBufferWithFinalizeCallback.h:14
2024-05-23 13:20:02 No locals.
2024-05-23 13:20:02 #14 0x000055c2e3246a7f in std::__1::default_delete<DB::WriteBufferFromFileBase>::operator()[abi:v15000](DB::WriteBufferFromFileBase*) const (this=0x5110044a6598, __ptr=0xd14) at ./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:48
2024-05-23 13:20:02 No locals.
2024-05-23 13:20:02 #15 std::__1::unique_ptr<DB::WriteBufferFromFileBase, std::__1::default_delete<DB::WriteBufferFromFileBase> >::reset[abi:v15000](DB::WriteBufferFromFileBase*) (this=0x5110044a6598, __p=0x0) at ./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:305
2024-05-23 13:20:02         __tmp = 0xd14
2024-05-23 13:20:02 #16 DB::MergeTreeDeduplicationLog::shutdown (this=<optimized out>) at ./build_docker/./src/Storages/MergeTree/MergeTreeDeduplicationLog.cpp:352
2024-05-23 13:20:02         lock = {__m_ = @0x5110044a65a0}
2024-05-23 13:20:02 #17 0x000055c2dfc3f513 in DB::IStorage::flushAndShutdown (this=0x51f00223b2c0, is_drop=true) at ./src/Storages/IStorage.h:583
2024-05-23 13:20:02 No locals.
2024-05-23 13:20:02 #18 DB::InterpreterDropQuery::executeToTableImpl (this=<optimized out>, context_=..., query=..., db=..., uuid_to_wait=...) at ./build_docker/./src/Interpreters/InterpreterDropQuery.cpp:296
2024-05-23 13:20:02         table_lock = <optimized out>
2024-05-23 13:20:02         check_loading_deps = <optimized out>
2024-05-23 13:20:02         check_ref_deps = <optimized out>
2024-05-23 13:20:02         query_to_send = @0x514003ebae58: {<DB::ASTQueryWithTableAndOutput> = {<DB::ASTQueryWithOutput> = {<DB::IAST> = {<std::__1::enable_shared_from_this<DB::IAST>> = {__weak_this_ = {__ptr_ = 0x514003ebae58, __cntrl_ = 0x514003ebae40}}, <DB::TypePromotion<DB::IAST>> = {<No data fields>}, _vptr$IAST = 0x55c2f03736b0 <vtable for DB::ASTDropQuery+16>, children = {storage_ = {static kOptimalInlinedSize = 7, metadata_ = {<absl::container_internal::internal_compressed_tuple::CompressedTupleImpl<absl::container_internal::CompressedTuple<std::__1::allocator<std::__1::shared_ptr<DB::IAST> >, unsigned long>, absl::integer_sequence<unsigned long, 0ul, 1ul>, true>> = {<absl::container_internal::internal_compressed_tuple::uses_inheritance> = {<No data fields>}, <absl::container_internal::internal_compressed_tuple::Storage<std::__1::allocator<std::__1::shared_ptr<DB::IAST> >, 0ul, true>> = {<std::__1::allocator<std::__1::shared_ptr<DB::IAST> >> = {<std::__1::__non_trivial_if<true, std::__1::allocator<std::__1::shared_ptr<DB::IAST> > >> = {<No data fields>}, <No data fields>}, <No data fields>}, <absl::container_internal::internal_compressed_tuple::Storage<unsigned long, 1ul, false>> = {value = 8}, <No data fields>}, <No data fields>}, data_ = {allocated = {allocated_data = 0x51200254ee58, allocated_capacity = 89197919923776}, inlined = {inlined_data = "X\356T\002 Q\000\000@\356T\002 Q\000\000\330m]\000 Q\000\000\300m]\000 Q\000\000X-\v\001 Q\000\000@-\v\001 Q\000\000X2p\000 Q\000\000@2p\000 Q\000\000", '\276' <repeats 48 times>}}}}, static hilite_keyword = 0x55c2bc5fac80 <str> "\033[1m", static hilite_identifier = 0x55c2bc5faca0 <str> "\033[0;36m", static hilite_function = 0x55c2bc5facc0 <str> "\033[0;33m", static hilite_operator = 0x55c2bc5face0 <str> "\033[1;33m", static hilite_alias = 0x55c2bc5fad00 <str> "\033[0;32m", static hilite_substitution = 0x55c2bc5fad20 <str> "\033[1;36m", static hilite_none = 0x55c2bc5fad40 <str> "\033[0m", next_to_delete = {__ptr_ = 0x0, __cntrl_ = 0x0}, next_to_delete_list_head = 0x0}, out_file = {__ptr_ = 0x0, __cntrl_ = 0x0}, is_into_outfile_with_stdout = false, is_outfile_append = false, is_outfile_truncate = false, format = {__ptr_ = 0x0, __cntrl_ = 0x0}, settings_ast = {__ptr_ = 0x0, __cntrl_ = 0x0}, compression = {__ptr_ = 0x0, __cntrl_ = 0x0}, compression_level = {__ptr_ = 0x0, __cntrl_ = 0x0}}, database = {__ptr_ = 0x5120010b2d58, __cntrl_ = 0x5120010b2d40}, table = {__ptr_ = 0x512000703258, __cntrl_ = 0x512000703240}, uuid = {t = {items = {0, 0}}}, temporary = false}, <DB::ASTQueryWithOnCluster> = {_vptr$ASTQueryWithOnCluster = 0x55c2f0373748 <vtable for DB::ASTDropQuery+168>, cluster = {static __endian_factor = 1, __r_ = {<std::__1::__compressed_pair_elem<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = {__value_ = {{__l = {__data_ = 0x0, __size_ = 0, __cap_ = 0, __is_long_ = 0}, __s = {__data_ = '\000' <repeats 22 times>, __padding_ = 0x514003ebafaf "", __size_ = 0 '\000', __is_long_ = 0 '\000'}, __r = {__words = {0, 0, 0}}}}}, <std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = {<std::__1::allocator<char>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<char> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, static npos = 18446744073709551615}}, kind = DB::ASTDropQuery::Drop, if_exists = true, if_empty = false, no_ddl_lock = false, has_all_tables = false, is_dictionary = false, is_view = false, sync = true, permanently = false, database_and_tables = {__ptr_ = 0x0, __cntrl_ = 0x0}}
2024-05-23 13:20:02         is_drop_or_detach_database = <optimized out>
2024-05-23 13:20:02         drop_storage = <optimized out>
2024-05-23 13:20:02         new_query_ptr = {__ptr_ = 0x514003ebae58, __cntrl_ = 0x514003ebae40}
2024-05-23 13:20:02         settings = <optimized out>
2024-05-23 13:20:02         ast_drop_query = <optimized out>
2024-05-23 13:20:03         table_id = {database_name = {static __endian_factor = 1, __r_ = {<std::__1::__compressed_pair_elem<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = {__value_ = {{__l = {__data_ = <optimized out>, __size_ = <optimized out>, __cap_ = <optimized out>, __is_long_ = <optimized out>}, __s = {__data_ = {<optimized out> <repeats 23 times>}, __padding_ = 0x0, __size_ = <optimized out>, __is_long_ = <optimized out>}, __r = {__words = {<optimized out>, <optimized out>, <optimized out>}}}}}, <std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = {<std::__1::allocator<char>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<char> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, static npos = 18446744073709551615}, table_name = {static __endian_factor = 1, __r_ = {<std::__1::__compressed_pair_elem<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = {__value_ = {{__l = {__data_ = <optimized out>, __size_ = <optimized out>, __cap_ = <optimized out>, __is_long_ = <optimized out>}, __s = {__data_ = {<optimized out> <repeats 23 times>}, __padding_ = 0x0, __size_ = <optimized out>, __is_long_ = <optimized out>}, __r = {__words = {<optimized out>, <optimized out>, <optimized out>}}}}}, <std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = {<std::__1::allocator<char>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<char> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, static npos = 18446744073709551615}, uuid = {t = {items = {0, 0}}}}
2024-05-23 13:20:03         ddl_guard = {__ptr_ = {<std::__1::__compressed_pair_elem<DB::DDLGuard*, 0, false>> = {__value_ = 0x5060043d6420}, <std::__1::__compressed_pair_elem<std::__1::default_delete<DB::DDLGuard>, 1, true>> = {<std::__1::default_delete<DB::DDLGuard>> = {<No data fields>}, <No data fields>}, <No data fields>}}
2024-05-23 13:20:03         database = @0x7fe2bdd4a280: {__ptr_ = 0x516002517c98, __cntrl_ = 0x516002517c80}
2024-05-23 13:20:03         table = @0x7fe2bdd4a290: {__ptr_ = 0x51f00223b2c0, __cntrl_ = 0x51f00223b280}
2024-05-23 13:20:03 #19 0x000055c2dfc436b7 in DB::InterpreterDropQuery::executeToDatabaseImpl (this=<optimized out>, query=..., database=..., uuids_to_wait=...) at ./build_docker/./src/Interpreters/InterpreterDropQuery.cpp:442
2024-05-23 13:20:03         db = {__ptr_ = 0x0, __cntrl_ = 0x0}
2024-05-23 13:20:03         table_to_wait = <optimized out>
2024-05-23 13:20:03         table = @0x51500239d620: {first = {static __endian_factor = 1, __r_ = {<std::__1::__compressed_pair_elem<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, 0, false>> = {__value_ = {{__l = {__data_ = 0x7400325f315f7364 <error: Cannot access memory at address 0x7400325f315f7364>, __size_ = 25701, __cap_ = 432345564227567616, __is_long_ = 0}, __s = {__data_ = "ds_1_2\000ted", '\000' <repeats 12 times>, __padding_ = 0x51500239d637 "\006", __size_ = 6 '\006', __is_long_ = 0 '\000'}, __r = {__words = {8358736292831261540, 25701, 432345564227567616}}}}}, <std::__1::__compressed_pair_elem<std::__1::allocator<char>, 1, true>> = {<std::__1::allocator<char>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<char> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, static npos = 18446744073709551615}, second = false}
2024-05-23 13:20:03         __range4 = @0x7fe2bdb65ae0: {__begin_ = 0x51500239d600, __end_ = 0x51500239d740, __end_cap_ = {<std::__1::__compressed_pair_elem<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool>*, 0, false>> = {__value_ = 0x51500239d800}, <std::__1::__compressed_pair_elem<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool> >, 1, true>> = {<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool> >> = {<std::__1::__non_trivial_if<true, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool> > >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}
2024-05-23 13:20:03         __begin4 = {__i = 0x51500239d620}
2024-05-23 13:20:03         __end4 = {__i = 0x51500239d740}
@kssenii kssenii added the fuzz Problem found by one of the fuzzers label May 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fuzz Problem found by one of the fuzzers
Projects
None yet
Development

No branches or pull requests

2 participants