Project

General

Profile

Bug #1903

osd/ReplicatedPG.cc: 3189: FAILED assert(obc->unconnected_watchers.size() == 0)

Added by Sage Weil almost 12 years ago. Updated almost 12 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
OSD
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

osd/ReplicatedPG.cc: In function 'void ReplicatedPG::populate_obc_watchers(ReplicatedPG::ObjectContext*)', in thread '7fd4c5caa700'
osd/ReplicatedPG.cc: 3189: FAILED assert(obc->unconnected_watchers.size() == 0)
 ceph version 0.39-378-ga774d50 (commit:a774d5002132cffb7b408e7de3d75ee841301fbf)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x76) [0x8cf732]
 2: (ReplicatedPG::populate_obc_watchers(ReplicatedPG::ObjectContext*)+0x102) [0x77f46a]
 3: (ReplicatedPG::finish_degraded_object(hobject_t const&)+0x1e0) [0x78ab28]
 4: (ReplicatedPG::sub_op_push_reply(MOSDSubOpReply*)+0xb8e) [0x78a770]
 5: (ReplicatedPG::do_sub_op_reply(MOSDSubOpReply*)+0x79) [0x76783b]
 6: (OSD::dequeue_op(PG*)+0x3a6) [0x853660]
 7: (OSD::OpWQ::_process(PG*)+0x27) [0x85b9f7]
 8: (ThreadPool::WorkQueue<PG>::_void_process(void*)+0x2e) [0x8a0edc]
 9: (ThreadPool::worker()+0x4af) [0x8cc547]
 10: (ThreadPool::WorkThread::entry()+0x1c) [0x85a2ea]
 11: (Thread::_entry_func(void*)+0x23) [0x8a9311]
 12: (()+0x7971) [0x7fd4d533c971]
 13: (clone()+0x6d) [0x7fd4d39c792d]

job
kernel:
  branch: master
interactive-on-error: true
roles:
- - mon.0
  - mds.0
  - osd.0
- - mon.1
  - osd.1
- - mon.2
  - client.0
tasks:
- ceph:
    path: /home/sage/src/ceph
    conf:
      osd:
        debug osd: 20
        debug ms: 1
- rgw:
  - client.0
- s3tests:
    client.0:
      rgw_server: client.0

after 8 iterations

full osd log is at metropolis:/home/sage/osd.1.unconnected.log

Associated revisions

Revision b17736a1 (diff)
Added by Sage Weil almost 12 years ago

osd: populate_obc_watchers when object pulled to primary

We don't care about degraded state, only whether the object is on the
primary so that we can load the object_info_t.

In particular, this avoids problems with backfill, where an object is
not degraded and populated, is then degraded while we backfill to the
target, and then not degraded again, and populate_obc_watchers() is called
a second time.

Fixes: #1903
Signed-off-by: Sage Weil <>

History

#1 Updated by Sage Weil almost 12 years ago

  • translation missing: en.field_position set to 1

#2 Updated by Sage Weil almost 12 years ago

  • Status changed from New to Resolved
  • translation missing: en.field_position deleted (2)
  • translation missing: en.field_position set to 2

#3 Updated by Sage Weil almost 12 years ago

  • Target version deleted (v0.41)
  • translation missing: en.field_position deleted (2)
  • translation missing: en.field_position set to 142

Also available in: Atom PDF