On Mon, Aug 26, 2019 at 9:25 PM thoralf schulze <[email protected]> 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
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com