Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHBA-2016-1805.html
Description of problem: common: thread_pool worker queue crash in void *item = wq->_void_dequeue(); Version-Release number of selected component (if applicable): Red Hat Ceph Storage 1.3.2 ceph-common-0.94.5-14.el7cp.x86_64 librbd1-0.94.5-14.el7cp.x86_64 python-rbd-0.94.5-14.el7cp.x86_64 librados2-0.94.5-14.el7cp.x86_64 python-rados-0.94.5-14.el7cp.x86_64 Core was generated by `/usr/bin/python2 /usr/bin/nova-compute --config-file /etc/nova/nova.conf --conf'. Program terminated with signal 11, Segmentation fault. #0 ThreadPool::worker (this=0x726e5a0, wt=0x2d9a4f0) at common/WorkQueue.cc:120 120 void *item = wq->_void_dequeue(); (gdb) bt #0 ThreadPool::worker (this=0x726e5a0, wt=0x2d9a4f0) at common/WorkQueue.cc:120 #1 0x00007f1e59b614d0 in ThreadPool::WorkThread::entry (this=<optimized out>) at common/WorkQueue.h:318 #2 0x00007f1ef0abedc5 in start_thread (arg=0x7f1e599fa700) at pthread_create.c:308 #3 0x00007f1ef00e31cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 (gdb) l 115 while (tries--) { 116 last_work_queue++; 117 last_work_queue %= work_queues.size(); 118 wq = work_queues[last_work_queue]; 119 120 void *item = wq->_void_dequeue(); 121 if (item) { 122 processing++; 123 ldout(cct,12) << "worker wq " << wq->name << " start processing " << item 124 << " (" << processing << " active)" << dendl; (gdb) p wq $2 = (ThreadPool::WorkQueue_ *) 0x0 It looks like 'wq' was NULL and when it was dereferenced (dereferencing a NULL pointer) in line number 120 it got segfault. 120 void *item = wq->_void_dequeue();