at /export/home/satskyse/ns/bld/include/util/bitset/bm.h:2397
2 0x00000000007c6640 in ncbi::CJobStatusTracker::GetOutdatedReadVacantJobs (this=0x3047998, timeout=..., read_jobs=..., gc_registry=...) at /export/home/satskyse/ns/bld/src/app/netschedule/job_status.cpp:423
3 0x00000000007fa466 in ncbi::CQueue::NotifyListenersPeriodically (this=0x3047970, current_time=...) at /export/home/satskyse/ns/bld/src/app/netschedule/ns_queue.cpp:3103
4 0x0000000000887b8f in ncbi::CQueueDataBase::NotifyListeners (this=0x3045c10) at /export/home/satskyse/ns/bld/src/app/netschedule/queue_database.cpp:1439
5 0x00000000008bf1ca in ncbi::CGetJobNotificationThread::x_DoJob (this=0x30510e0) at /export/home/satskyse/ns/bld/src/app/netschedule/ns_notifications.cpp:1006
6 0x00000000008bec39 in ncbi::CGetJobNotificationThread::Main (this=0x30510e0) at /export/home/satskyse/ns/bld/src/app/netschedule/ns_notifications.cpp:941
7 0x0000000000c08767 in ncbi::CThread::Wrapper (arg=0x30510e0) at /export/home/satskyse/ns/bld/src/corelib/ncbithr.cpp:572
8 0x0000000000c0b1fe in ncbi::ThreadWrapperCaller (arg=0x30510e0) at /export/home/satskyse/ns/bld/src/corelib/ncbithr.cpp:668
9 0x0000000000c09074 in ncbi::ThreadWrapperCallerImpl (arg=0x30510e0) at /export/home/satskyse/ns/bld/src/corelib/ncbithr.cpp:676
10 0x00007ff9d46f2dd5 in start_thread () from /lib64/libpthread.so.0
11 0x00007ff9d3b8102d in clone () from /lib64/libc.so.6
Here is the corresponding source code:
421 TNSBitVector candidates;
422
423 candidates = m_StatusStor[(int) CNetScheduleAPI::eDone] |
424 m_StatusStor[(int) CNetScheduleAPI::eFailed] |
425 *m_StatusStor[(int) CNetScheduleAPI::eCanceled];
Excerpt of a stack:
0 0x00000000007d192f in bm::bvector<bm::mem_alloc<bm::block_allocator, bm::ptr_allocator, bm::alloc_pool<bm::block_allocator, bm::ptr_allocator> > >::bit_or (this=0x7ff9d302e060, bv1=..., bv2=...,
1 0x00000000007cdb71 in bm::operator|<bm::mem_alloc<bm::block_allocator, bm::ptr_allocator, bm::alloc_pool<bm::block_allocator, bm::ptr_allocator> > > (bv1=..., bv2=...)
2 0x00000000007c6640 in ncbi::CJobStatusTracker::GetOutdatedReadVacantJobs (this=0x3047998, timeout=..., read_jobs=..., gc_registry=...) at /export/home/satskyse/ns/bld/src/app/netschedule/job_status.cpp:423
3 0x00000000007fa466 in ncbi::CQueue::NotifyListenersPeriodically (this=0x3047970, current_time=...) at /export/home/satskyse/ns/bld/src/app/netschedule/ns_queue.cpp:3103
4 0x0000000000887b8f in ncbi::CQueueDataBase::NotifyListeners (this=0x3045c10) at /export/home/satskyse/ns/bld/src/app/netschedule/queue_database.cpp:1439
5 0x00000000008bf1ca in ncbi::CGetJobNotificationThread::x_DoJob (this=0x30510e0) at /export/home/satskyse/ns/bld/src/app/netschedule/ns_notifications.cpp:1006
6 0x00000000008bec39 in ncbi::CGetJobNotificationThread::Main (this=0x30510e0) at /export/home/satskyse/ns/bld/src/app/netschedule/ns_notifications.cpp:941
7 0x0000000000c08767 in ncbi::CThread::Wrapper (arg=0x30510e0) at /export/home/satskyse/ns/bld/src/corelib/ncbithr.cpp:572
8 0x0000000000c0b1fe in ncbi::ThreadWrapperCaller (arg=0x30510e0) at /export/home/satskyse/ns/bld/src/corelib/ncbithr.cpp:668
9 0x0000000000c09074 in ncbi::ThreadWrapperCallerImpl (arg=0x30510e0) at /export/home/satskyse/ns/bld/src/corelib/ncbithr.cpp:676
10 0x00007ff9d46f2dd5 in start_thread () from /lib64/libpthread.so.0
11 0x00007ff9d3b8102d in clone () from /lib64/libc.so.6
Here is the corresponding source code: 421 TNSBitVector candidates; 422 423 candidates = m_StatusStor[(int) CNetScheduleAPI::eDone] | 424 m_StatusStor[(int) CNetScheduleAPI::eFailed] | 425 *m_StatusStor[(int) CNetScheduleAPI::eCanceled];
gdb session: (gdb) l 2392 template
2393 inline bvector operator| (const bvector& bv1,
2394 const bvector& bv2)
2395 {
2396 bvector ret;
2397 ret.bit_or(bv1, bv2, bvector::opt_none);
2398 return ret;
2399 }
2400
2401 //---------------------------------------------------------------------
(gdb) f 0
0 0x00000000007d192f in bm::bvector<bm::mem_alloc<bm::block_allocator, bm::ptr_allocator, bm::alloc_pool<bm::block_allocator, bm::ptr_allocator> > >::bit_or (this=0x7ff9d302e060, bv1=..., bv2=...,
4783 bm::word_t blk_blk_arg1 = (i < top_blocks1) ? blk_root_arg1[i] : 0; (gdb) l 4778 bm::word_t** blk_rootarg1 = bv1.blockman.top_blocks_root(); 4779 bm::word_t blk_rootarg2 = bv2.blockman.top_blocks_root(); 4780 4781 for (unsigned i = 0; i < top_blocks; ++i) 4782 { 4783 bm::word_t blk_blk_arg1 = (i < top_blocks1) ? blk_root_arg1[i] : 0; 4784 bm::word_t blk_blk_arg2 = (i < top_blocks2) ? blk_root_arg2[i] : 0; 4785 4786 if (blk_blk_arg1 == blk_blk_arg2) 4787 { (gdb) p blk_root_arg1 $1 = (bm::word_t ) 0x0 (gdb) p top_blocks $2 = 1 (gdb) p i $3 = 0 (gdb) p top_blocks1 $4 = 1 (gdb) p top_blocks2 $5 = 1 (gdb) (gdb) p blk_root_arg1 $10 = (bm::word_t ) 0x0 (gdb) p blk_root_arg2 $11 = (bm::word_t ***) 0x0
Note: GCC 7.3.0 was used