[MDEV-16825] SIGSEGV after SIGINT in bootstrap mode Created: 2018-07-25  Updated: 2021-12-02  Resolved: 2021-12-02

Status: Closed
Project: MariaDB Server
Component/s: Server
Affects Version/s: 10.3.9
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Aleksey Midenkov Assignee: Aleksey Midenkov
Resolution: Cannot Reproduce Votes: 0
Labels: None


 Description   

Server crashes with signal 11 on SIGINT when run in --bootstrap mode.

Reproduce

#!/bin/sh
gdbrc=/tmp/bootsrap.gdb
cat <<EOF > $gdbrc
start
break bootstrap
commands
    commands
        backtrace
        echo bootstrap() entered again!\n
        continue
    end
    signal SIGINT
end
continue
EOF
gdb -q -x $gdbrc --args mysqld --debug-gdb --silent-startup --bootstrap

Result

Thread 1 "mysqld" hit Breakpoint 2, bootstrap (file=0x28859f0 [instrumented_stdin]) at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:6445
6445      DBUG_ENTER("bootstrap");
 
Thread 1 "mysqld" hit Breakpoint 2, bootstrap (file=0x28859f0 [instrumented_stdin]) at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:6445
6445      DBUG_ENTER("bootstrap");
h1.0  bootstrap (file=0x28859f0 [instrumented_stdin]) at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:6445
h1.1  0x000000000064b560 in mysqld_main (argc=5, argv=0x28a5818) at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:6097
h1.2  0x0000000000646b02 in main (argc=4, argv=0x7fffffffd378) at /home/midenok/src/mariadb/upstream/src/sql/main.cc:25
bootstrap() entered again!
 
Thread 32 "mysqld" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff4c38700 (LWP 18210)]
0x000000000141b110 in my_hash_free_elements (hash=0x370) at /home/midenok/src/mariadb/upstream/src/mysys/hash.c:118
118       uint records= hash->records;

Note that bootstrap() reentered on SIGINT.

h1.0  0x000000000141b110 in my_hash_free_elements (hash=0x370) at /home/midenok/src/mariadb/upstream/src/mysys/hash.c:118
h1.1  0x000000000141b1fa in my_hash_reset (hash=0x370) at /home/midenok/src/mariadb/upstream/src/mysys/hash.c:171
h1.2  0x000000000094caba in Master_info_index::free_connections (this=0x0) at /home/midenok/src/mariadb/upstream/src/sql/rpl_mi.cc:1057
h1.3  0x000000000068b652 in slave_prepare_for_shutdown () at /home/midenok/src/mariadb/upstream/src/sql/slave.cc:1391
h1.4  0x0000000000656685 in close_connections () at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:1764
h1.5  0x000000000064789d in kill_server (sig_ptr=0x0) at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:2034
h1.6  0x00000000006475ad in kill_server_thread (arg=0x7ffff4c81e6c) at /home/midenok/src/mariadb/upstream/src/sql/mysqld.cc:2066
h1.7  0x00007ffff7bbd7fc in start_thread (arg=0x7ffff4c38700) at pthread_create.c:465
h1.8  0x00007ffff5e81b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

(gdb) f 0
h1.0  0x000000000141b110 in my_hash_free_elements (hash=0x370) at /home/midenok/src/mariadb/upstream/src/mysys/hash.c:118
118       uint records= hash->records;
(gdb) p hash
$1 = (HASH *) 0x370

Info

Occurrs at any place in bootstrap().



 Comments   
Comment by Aleksey Midenkov [ 2018-07-25 ]

Analysis

Comment by Sergey Vojtovich [ 2020-05-06 ]

It must've been fixed in 10.4: the killer thread doesn't call close_connections() anymore. It is called way after bootstrap handling in main thread. Please make sure that the whole change is not merged up from 10.3.

Comment by Robert Bindar [ 2021-12-02 ]

Not reproducible 10.4+, doesn't make sense to fix it in 10.3 as it seems not that many people hit this bug.

Generated at Thu Feb 08 08:31:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.