Incorrect POSIX_SPAWN_SETSIGDEF usage in wsrep_utils.cc
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC | Status tracked in 5.6 | |||||
5.5 |
Fix Released
|
Low
|
Alexey Kopytov | |||
5.6 |
Fix Released
|
Low
|
Alexey Kopytov |
Bug Description
The code in the wsp::process class constructor uses posix_spawn() to create a child process. In particular, it sets the POSIX_SPAWN_
err_ = posix_spawnattr
The goal was apparently to reset the ignored (SIG_IGN) state set by the server for certain signals (e.g. SIGINT) back to their default handlers.
However, the POSIX_SPAWN_
"
The spawn-sigdefault attribute represents the set of signals to be forced to default signal handling in the new process image (if POSIX_SPAWN_
"
As a result, the SST process spawn code does not reset any ignored signals as intended.
Related branches
- Alexey Kopytov (community): Needs Fixing
- Raghavendra D Prabhu: Pending requested
-
Diff: 265 lines (+110/-100)2 files modifiedsql/wsrep_utils.cc (+96/-100)
storage/innobase/os/os0proc.c (+14/-0)
- Raghavendra D Prabhu (community): Needs Fixing
- Alexey Kopytov (community): Needs Fixing
-
Diff: 266 lines (+111/-100)2 files modifiedsql/wsrep_utils.cc (+97/-100)
storage/innobase/os/os0proc.cc (+14/-0)
description: | updated |
This will be fixed in 5.6 with the patch for bug #1382797. As a side effect, because all code related to the posix_spawn*() family of functions will be replaced.