[MDEV-23147] Assertion `wsrep::this_thread::get_id() == owning_thread_id_' failed Created: 2020-07-11  Updated: 2021-04-19  Resolved: 2020-07-24

Status: Closed
Project: MariaDB Server
Component/s: Galera
Affects Version/s: 10.4.13
Fix Version/s: 10.4.14, 10.5.5

Type: Bug Priority: Critical
Reporter: Valerii Kravchuk Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 1
Labels: None

Issue Links:
Relates
relates to MDEV-23214 Buffer overflow during insert Closed

 Description   

The following assertion failure happened:

mysqld: /home/buildbot/buildbot/build/wsrep-lib/src/client_state.cpp:804: void wsrep::client_state::state(wsrep::unique_lock<wsrep::mutex>&, wsrep::client_state::state): Assertion `wsrep::this_thread::get_id() == owning_thread_id_' failed.
200711  5:57:32 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
 
To report this bug, see https://mariadb.com/kb/en/reporting-bugs
 
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.
 
Server version: 10.4.13-MariaDB-log
key_buffer_size=33554432
read_buffer_size=2097152
max_used_connections=161
max_threads=4011
thread_count=83
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 41204404 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x7f03c00008c8
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f05053f7e40 thread_stack 0x49000
/usr/local/mysql/bin/mysqld(my_print_stacktrace+0x2e)[0x55851ff46e2e]
/usr/local/mysql/bin/mysqld(handle_fatal_signal+0x30f)[0x55851f957b3f]
/lib64/libpthread.so.0(+0xf600)[0x7f1881f00600]
/lib64/libc.so.6(gsignal+0x37)[0x7f1880c8e3a7]
/lib64/libc.so.6(abort+0x148)[0x7f1880c8fa98]
/lib64/libc.so.6(+0x2f1c6)[0x7f1880c871c6]
/lib64/libc.so.6(+0x2f272)[0x7f1880c87272]
/usr/local/mysql/bin/mysqld(_ZN5wsrep12client_state5stateERNS_11unique_lockINS_5mutexEEENS0_5stateE+0x145)[0x55851ffda515]
/usr/local/mysql/bin/mysqld(_ZN5wsrep12client_state5closeEv+0x42)[0x55851ffda722]
/usr/local/mysql/bin/mysqld(_Z14end_connectionP3THD+0x134)[0x55851f8383f4]
/usr/local/mysql/bin/mysqld(_Z24do_handle_one_connectionP7CONNECT+0x234)[0x55851f838cc4]
/usr/local/mysql/bin/mysqld(handle_one_connection+0x3d)[0x55851f838d6d]
/usr/local/mysql/bin/mysqld(+0xe44dcd)[0x55851fe72dcd]
/lib64/libpthread.so.0(+0x7e75)[0x7f1881ef8e75]
/lib64/libc.so.6(clone+0x6d)[0x7f1880d568fd]
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x0): 
Connection ID (thread ID): 28318
Status: KILL_QUERY

I can not find the exact match, so probably it's some new bug.



 Comments   
Comment by Jan Lindström (Inactive) [ 2020-07-21 ]

valerii Is this KILL [QUERY | CONNECTION] ? It is very hard to say anything as error log basically start from assertion.

Comment by Jan Lindström (Inactive) [ 2020-08-12 ]

Analysis from gdb output:

Thread 1 (Thread 0x7f05684ef700 (LWP 25548)):
#0  0x00007f18e6cc1a71 in pthread_kill () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x000055c631632bbe in handle_fatal_signal (sig=6) at /home/buildbot/buildbot/build/sql/signal_handler.cc:343
        curr_time = 1593502515
        tm = {tm_sec = 15, tm_min = 35, tm_hour = 16, tm_mday = 30, tm_mon = 5, tm_year = 120, tm_wday = 2, tm_yday = 181, tm_isdst = 0, tm_gmtoff = 32400, tm_zone = 0x55c633998c60 "KST"}
        print_invalid_query_pointer = false
#2  <signal handler called>
No symbol table info available.
#3  0x00007f18e5a523a7 in raise () from /lib64/libc.so.6
No symbol table info available.
#4  0x00007f18e5a53a98 in abort () from /lib64/libc.so.6
No symbol table info available.
#5  0x00007f18e5a4b1c6 in __assert_fail_base () from /lib64/libc.so.6
No symbol table info available.
#6  0x00007f18e5a4b272 in __assert_fail () from /lib64/libc.so.6
No symbol table info available.
#7  0x000055c631cc550f in wsrep::transaction::before_rollback (this=0x7f03dc096f68) at /home/buildbot/buildbot/build/wsrep-lib/src/transaction.cpp:625
        lock = {mutex_ = @0x7f03dc096ec8, locked_ = true}
        __PRETTY_FUNCTION__ = "int wsrep::transaction::before_rollback()"

This should be fixed on commit 2b8b7394a129ab27225a1284bab253a6714aaf03

commit 2b8b7394a129ab27225a1284bab253a6714aaf03
Author: mkaruza <mario.karuza@galeracluster.com>
Date:   Sun Jun 28 23:03:38 2020 +0200
 
    MDEV-22222: Assertion `state() == s_executing || state() == s_preparing || state() == s_prepared || state() == s_must_abort || state() == s_aborting || state() == s_cert_failed || state() == s_must_replay' failed in wsrep::transaction::before_rollback
    
    LOCK TABLE will do implicit commit, we need to properly handle transaction after commit.

Thread 1 (Thread 0x7f7e45a70700 (LWP 24512)):
#0  0x00007f91c53253a7 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007f91c5326a98 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007f91c531e1c6 in __assert_fail_base () from /lib64/libc.so.6
No symbol table info available.
#3  0x00007f91c531e272 in __assert_fail () from /lib64/libc.so.6
No symbol table info available.
#4  0x000055b6ee651515 in wsrep::client_state::state (this=this@entry=0x7f7c68006900, lock=@0x7f7e45a6fdf0: {mutex_ = @0x7f7c680068c8, locked_ = true}, state=state@entry=wsrep::client_state::s_quitting) at /home/buildbot/buildbot/build/wsrep-lib/src/client_state.cpp:804
        __PRETTY_FUNCTION__ = "void wsrep::client_state::state(wsrep::unique_lock<wsrep::mutex>&, wsrep::client_state::state)"
        allowed = {"\000\001\000\000", "\000\000\001\000\001", "\000\000\000\001", "\000\001\000\000", "\001\000\000\000"}

Should be fixed on commit commit 956f21c3b0beba89835e8d24fde4b67b589ab142

Merge: 3280edda896 6a1713ac17a
Author: Julius Goryavsky <julius.goryavsky@mariadb.com>
Date:   Thu Jul 16 13:03:29 2020 +0200
 
    Merge remote-tracking branch 'origin/bb-10.4-MDEV-21910' into 10.4

Generated at Thu Feb 08 09:20:11 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.