promote/copy-from and flush vs scrub

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I hit an assert in some of my manual fiddling with the tiering agent where 
a promote, copy-from, or flush operation would hit

  -546> 2014-01-20 14:44:55.506594 7f0a467fc700 -1 osd/ReplicatedPG.cc: In 
function 'void ReplicatedPG::finish_ctx(ReplicatedPG::OpContext*, int)' 
thread 7f0a467fc700 time 2014-01-20 14:44:55.466752
osd/ReplicatedPG.cc: 4737: FAILED assert(soid < scrubber.start || soid >= 
scrubber.end)

The problem is that we normally block ops that hit the current scrub chunk 
in do_op at the very top level, but all of these ops are initiating writes 
at lower levels after doing some other slow/blocking work.

They are smart enough to take and block on the rwlock stuff, but I'm 
worried that the waiting_for_active queue is too coarse for this.  My 
thought is to add a std::map of obc's blocked on scrub and wake them up 
when the scrub chunk completes.  Any better ideas?

Incidentally, we need to make the thrashosds task smart enough to pause 
thrashing long enough for scrubs to happen so that these issues are 
covered in the normal test suite...

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux