Actions
Bug #8097
closedmsgr: mon stuck in set_crc()
Status:
Resolved
Priority:
Urgent
Assignee:
-
Category:
-
Target version:
-
% Done:
0%
Source:
Q/A
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
Thread 10 (Thread 23372): #0 std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_get_insert_unique_pos (this=this@entry=0xcdbf148, __k=...) at /usr/include/c++/4.8/bits/stl_tree.h:1319 #1 0x000000000078453b in std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_get_insert_hint_unique_pos (this=this@entry=0xcdbf148, __position=..., __k=...) at /usr/include/c++/4.8/bits/stl_tree.h:1425 #2 0x00000000007845a7 in std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_insert_unique_ (this=this@entry=0xcdbf148, __position=..., __v=...) at /usr/include/c++/4.8/bits/stl_tree.h:1478 #3 0x000000000078248d in insert (__x=..., __position=..., this=0xcdbf148) at /usr/include/c++/4.8/bits/stl_map.h:648 #4 operator[] (__k=<synthetic pointer>, this=0xcdbf148) at /usr/include/c++/4.8/bits/stl_map.h:469 #5 set_crc (crc=..., fromto=<synthetic pointer>, this=0xcdbf120) at common/buffer.cc:173 #6 ceph::buffer::list::crc32c (this=this@entry=0xd4b19e0, crc=2746538695, crc@entry=0) at common/buffer.cc:1684 #7 0x00000000006dc70d in calc_front_crc (this=0xd4b1980) at msg/Message.h:469 #8 Message::encode (this=this@entry=0xd4b1980, features=features@entry=8796093022207, datacrc=<optimized out>) at msg/Message.cc:182 #9 0x00000000008569d0 in Pipe::writer (this=0x4106a00) at msg/Pipe.cc:1676 #10 0x000000000086158d in Pipe::Writer::entry (this=<optimized out>) at msg/Pipe.h:61 #11 0x00000000050a8182 in start_thread (arg=0xba63700) at pthread_create.c:312 #12 0x0000000006d4512d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111ubuntu@teuthology:/var/lib/teuthworker/archive/teuthology-2014-04-13_23:00:17-rgw-master-testing-basic-plana/189787
I wonder if we are abusing spinlock here since we're working with an STL map that does allocations. I assumed there weren't any rules about spinlocks in userspace (performance aside) but perhaps we should be using a mutex here instead to protect the crc state.
Updated by Greg Farnum about 5 years ago
- Project changed from Ceph to Messengers
- Category deleted (
msgr)
Actions