On Mon, Aug 26, 2019 at 9:25 PM thoralf schulze <t.schu...@tu-berlin.de> 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@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to