lease_cr memory release

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

 



Hi cephers,
I have a question。
in class RGWMetaSyncShardCR
boost::intrusive_ptr<RGWContinuousLeaseCR> lease_cr;
lease_cr Reference count added 2 times
the one is  lease_cr.reset(new RGWContinuousLeaseCR(....));the other
is  lease_stack.reset(spawn(lease_cr.get(), false));
but lease_cr Reference count subtracted  1 times    That is op->put()
when op done .So I want to know where the other op - > put is?
I add assert() in  RGWContinuousLeaseCR Deconstruction find
stack:
 1: (()+0x5c9562) [0x53f4562]
 2: (()+0xf370) [0xf182370]
 3: (gsignal()+0x37) [0xfae71d7]
 4: (abort()+0x148) [0xfae88c8]
 5: (()+0x2e146) [0xfae0146]
 6: (()+0x2e1f2) [0xfae01f2]
 7: (RGWContinuousLeaseCR::~RGWContinuousLeaseCR()+0x7e) [0x513b69e]
 8: (RGWContinuousLeaseCR::~RGWContinuousLeaseCR()+0x9) [0x513b739]
 9: (RefCountedObject::put()+0xe5) [0x5139185]
 10: (RGWMetaSyncShardCR::~RGWMetaSyncShardCR()+0x95) [0x51e1775]
 11: (RGWMetaSyncShardCR::~RGWMetaSyncShardCR()+0x9) [0x51e18d9]
 12: (RefCountedObject::put()+0xe5) [0x5139185]
 13: (RGWBackoffControlCR::operate()+0x115) [0x51cc715]
 14: (RGWCoroutinesStack::operate(RGWCoroutinesEnv*)+0x73) [0x5134943]
 15: (RGWCoroutinesManager::run(std::list<RGWCoroutinesStack*,
std::allocator<RGWCoroutinesStack*> >&)+0x3bc) [0x513788c]
 16: (RGWCoroutinesManager::run(RGWCoroutine*)+0x5d) [0x513840d]
 17: (RGWRemoteMetaLog::run_sync()+0x108a) [0x51d3f2a]
 18: (RGWMetaSyncProcessorThread::process()+0xd) [0x52d662d]
 19: (RGWRadosThread::Worker::entry()+0x11b) [0x52787bb]
 20: (()+0x7dc5) [0xf17adc5]
 21: (clone()+0x6d) [0xfba973d]
I don't understand it ,because ~RGWMetaSyncShardCR() doesn't call
RGWContinuousLeaseCR->put().
code:
~RGWMetaSyncShardCR() override {
delete marker_tracker;
if (lease_cr) {
lease_cr->abort();
}
}

can you help me!
Thanks.




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

  Powered by Linux