Crash when library is 'replaced'
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Galera |
New
|
Undecided
|
Unassigned | ||
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC |
Invalid
|
Undecided
|
Unassigned | ||
5.5 |
Won't Fix
|
High
|
Unassigned | ||
5.6 |
Won't Fix
|
High
|
Unassigned |
Bug Description
When dlopened galera library is replaced with cp, mysqld crashes
as
#0 0x000000000006f606 in ?? ()
#1 0x00007fff627b5d98 in lock (this=<optimized out>) at asio/asio/
#2 lock (this=0x7fff585
#3 ~task_cleanup (this=0x7fff585
#4 do_one (this_idle_
#5 asio::detail:
#6 0x00007fff627b3ac6 in run (this=0x1633fe0) at asio/asio/
#7 gcomm::
#8 0x00007fff627ccc99 in GCommConn::run (this=0x1633720) at gcs/src/
#9 0x00007fff627d1c59 in GCommConn::run_fn (arg=<optimized out>) at gcs/src/
#10 0x00007ffff7bc80a2 in start_thread () from /usr/lib/
#11 0x00007ffff600b3dd in clone () from /usr/lib/libc.so.6
SIGBUS here.
or
#0 0x000000000006f606 in ?? ()
#1 0x00007fff627b5100 in lock (this=0x1628320) at asio/asio/
#2 scoped_lock (m=..., this=<synthetic pointer>) at asio/asio/
#3 asio::detail:
#4 0x00007fff627b5ca4 in do_one (this_idle_
#5 asio::detail:
#6 0x00007fff627b3ac6 in run (this=0x1627f00) at asio/asio/
#7 gcomm::
#8 0x00007fff627ccc99 in GCommConn::run (this=0x16276f0) at gcs/src/
#9 0x00007fff627d1c59 in GCommConn::run_fn (arg=<optimized out>) at gcs/src/
#10 0x00007ffff7bc80a2 in start_thread () from /usr/lib/
#11 0x00007ffff600b3dd in clone () from /usr/lib/libc.so.6
This happens even library is identical to one loaded.
This doesn't happen with rm of the loaded library.(or when rm +
cp is done).
This may impact in following ways:
When someone upgrades their galera package while mysqld is
running (either to switch provider at runtime or to restart
later), mysqld can crash. So, mysqld will need to be stopped
before upgrade.
Interestingly, this happens even with RTLD_NOW.
Just want to add that this happens only on cp but not on install. Since packaging applications use install, this shouldn't be a problem.