Project

General

Profile

Actions

Bug #8097

closed

msgr: mon stuck in set_crc()

Added by Sage Weil about 10 years ago. Updated about 5 years ago.

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:111

ubuntu@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.

Actions #1

Updated by Samuel Just about 10 years ago

  • Status changed from 12 to Resolved
Actions #2

Updated by Greg Farnum about 5 years ago

  • Project changed from Ceph to Messengers
  • Category deleted (msgr)
Actions

Also available in: Atom PDF