Signal handler thread kills the server instead of main thread causing segfault
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Drizzle |
Fix Released
|
High
|
Andrew Hutchings | ||
Dexter |
Fix Released
|
High
|
Andrew Hutchings |
Bug Description
With revno 1733, the server is segfaulting on shutdown when PBXT is enabled:
$ sbin/drizzled --datadir=$PWD/var --plugin_add=pbxt
$ bin/drizzle --shutdown
100827 10:02:20 InnoDB: Starting shutdown...
100827 10:02:22 InnoDB: Shutdown completed; log sequence number 44254
100827 10:02:22 [Note] PrimeBase XT Engine shutdown...
100827 10:02:22 - drizzled got signal 11;
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.
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.
read_buffer_
max_used_
connection_count=0
It is possible that drizzled could use up to
(read_buffer_size + sort_buffer_
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
Number of stack frames obtained: 9
()
pthread_kill()
SignalHandler:
drizzled:
drizzled:
main()
__libc_start_main()
sbin/drizzled() [0x60b609]
Segmentation fault (core dumped)
Backtrace:
(gdb) bt
#0 0x00007f10f9337abc in pthread_kill () from /lib/libpthread
#1 0x0000000000794cfe in write_core (sig=11) at drizzled/
#2 0x00000000007950fd in drizzled_
at drizzled/
#3 <signal handler called>
#4 0x00007f10f9337a90 in pthread_kill () from /lib/libpthread
#5 0x0000000000a57e19 in SignalHandler:
#6 0x0000000000714281 in ~Registry (this=0x14b3d20,
__in_
#7 0x00000000007143f4 in drizzled:
at drizzled/
#8 0x000000000060c0da in main (argc=3, argv=0x7fff8463
at drizzled/
Related branches
- Monty Taylor: Approve
-
Diff: 45 lines (+4/-7)2 files modifieddrizzled/signal_handler.h (+1/-1)
plugin/signal_handler/signal_handler.cc (+3/-6)
Changed in drizzle: | |
status: | New → Confirmed |
Crash is with signal handler plugin:
(gdb) frame 2 :module: :Registry: :~Registry ( module/ registry. cc:44 iter).second;
#2 0x00000000005abe72 in drizzled:
this=0xc0c570, __in_chrg=<value optimized out>)
at drizzled/
44 delete (*plugin_
(gdb) print plugin_iter
$1 = {first = "signal handler", second = }