On Mon, Aug 26, 2019 at 9:25 PM thoralf schulze <t.schulze@xxxxxxxxxxxx> wrote: > > hi Zheng - > > On 8/26/19 2:55 PM, Yan, Zheng wrote: > > I tracked down the bug > > https://tracker.ceph.com/issues/41434 > > wow, that was quick - thank you for investigating. we are looking > forward for the fix :-) > > in the meantime, is there anything we can do to prevent q == > p->second.end() from happening? something along the lines of > > --- a/src/mds/Locker.cc > +++ b/src/mds/Locker.cc > @@ -1867,6 +1867,8 @@ void Locker::file_update_finish(CInode *in, > MutationRef& mut, unsigned flags, > auto p = in->client_snap_caps.begin(); > while (p != in->client_snap_caps.end()) { > auto q = p->second.find(client); > + // horrible hack for zecm > + std::this_thread::sleep_for(std::chrono::milliseconds(1)); > if (q != p->second.end()) { > SimpleLock *lock = in->get_lock(p->first); > ceph_assert(lock); > > thank you very much & with kind regards, > t. > change code to : if (q != p->second.end()) { .... } else { ++p; } _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com