Bug ID 1214292
Summary zypper signal handler causes deadlock
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component libzypp
Assignee zypp-maintainers@suse.de
Reporter fabian@ritter-vogt.de
QA Contact qa-bugs@suse.de
Target Milestone ---
Found By ---
Blocker ---

I pressed Ctrl-C while zypper was busy calculating the "dup". This apparently
caused a deadlock, the process does not react to any input anymore.

With gdb, it's visible that the cause is that a signal handler calls "malloc",
which is not allowed (not async-signal-safe).

(gdb) bt
#0  0x00007f2c72e8c79b in __lll_lock_wait_private () at /lib64/libc.so.6
#1  0x00007f2c72ea13e0 in malloc () at /lib64/libc.so.6
#2  0x00007f2c732bc9bc in operator new(unsigned long) () at
/lib64/libstdc++.so.6
#3  0x00007f2c739739d2 in  () at /lib64/libzypp.so.1722
#4  0x00007f2c73bb2018 in  () at /lib64/libzypp.so.1722
#5  0x00007f2c733459dd in std::basic_ostream<char, std::char_traits<char> >&
std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*, long) () at /lib64/libstdc++.so.6
#6  0x000055aa51d6f085 in  ()
#7  0x000055aa51d90dc9 in Zypper::instance() ()
#8  0x000055aa51d84309 in signal_handler(int) ()
#9  0x00007f2c72e3f1f0 in <signal handler called> () at /lib64/libc.so.6
#10 0x00007f2c72e9fa25 in _int_malloc () at /lib64/libc.so.6
#11 0x00007f2c72ea11ad in malloc () at /lib64/libc.so.6
#12 0x00007f2c732bc9bc in operator new(unsigned long) () at
/lib64/libstdc++.so.6
#13 0x00007f2c73aa9bf1 in zypp::PoolItem::PoolItem(zypp::PoolItem::Impl*) () at
/lib64/libzypp.so.1722
#14 0x00007f2c73ab0b56 in zypp::PoolItem::makePoolItem(zypp::sat::Solvable
const&) () at /lib64/libzypp.so.1722
#15 0x00007f2c73afff1d in  () at /lib64/libzypp.so.1722
#16 0x00007f2c73b04cc5 in
zypp::ResPool::setHardLockQueries(std::__cxx11::list<zypp::PoolQuery,
std::allocator<zypp::PoolQuery> > const&) () at /lib64/libzypp.so.1722
#17 0x00007f2c73a2f531 in zypp::target::TargetImpl::load(bool) () at
/lib64/libzypp.so.1722
#18 0x000055aa51db9707 in load_target_resolvables(Zypper&) ()
#19 0x000055aa51db9998 in load_resolvables(Zypper&) ()
#20 0x000055aa51dd11e8 in ZypperBaseCommand::defaultSystemSetup(Zypper&,
zypp::base::Flags<SetupSystemBits>) ()
#21 0x000055aa51dd16af in ZypperBaseCommand::run(Zypper&) ()
#22 0x000055aa51d92903 in Zypper::doCommand(int, char**, int) ()
#23 0x000055aa51d67dfa in Zypper::main(int, char**) ()
#24 0x000055aa51d66a21 in main ()


You are receiving this mail because: