Re: Not timing out watcher

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

 



The OSDs will optionally take a "timeout" parameter on the watch
request [1][2]. However, the kernel doesn't have this timeout field in
its watch op [3] so perhaps it's defaulting to a random value.

Ilya?

[1] https://github.com/ceph/ceph/blob/v12.2.2/src/osd/PrimaryLogPG.cc#L6034
[2] https://github.com/ceph/ceph/blob/v12.2.2/src/include/rados.h#L577
[3] https://github.com/torvalds/linux/blob/v4.14/include/linux/ceph/rados.h#L487


On Wed, Dec 20, 2017 at 12:20 PM, Serguei Bezverkhi (sbezverk)
<sbezverk@xxxxxxxxx> wrote:
> It took 30 minutes for the Watcher to time out after ungraceful restart. Is there a way limit it to something a bit more reasonable? Like 1-3 minutes?
>
> On 2017-12-20, 12:01 PM, "Serguei Bezverkhi (sbezverk)" <sbezverk@xxxxxxxxx> wrote:
>
>     Ok, here is what I found out. If I gracefully kill a pod then watcher gets properly cleared, but if it is done ungracefully, without “rbd unmap” then even after a node reboot Watcher stays up for a long time,  it has been more than 20 minutes and it is still active (no any kubernetes services are running).
>
>     I was wondering if you would accept the following solution. If in rbdStatus instead of checking just for watcher, we check for existence of /dev/rbd/{pool}/{image}. If it is not there, it would mean stale Watcher and it is safe to map this image. Appreciate your thoughts here.
>
>     Thank you
>     Serguei
>
>     On 2017-12-20, 11:32 AM, "Serguei Bezverkhi (sbezverk)" <sbezverk@xxxxxxxxx> wrote:
>
>
>
>         On 2017-12-20, 11:17 AM, "Jason Dillaman" <jdillama@xxxxxxxxxx> wrote:
>
>             On Wed, Dec 20, 2017 at 11:01 AM, Serguei Bezverkhi (sbezverk)
>             <sbezverk@xxxxxxxxx> wrote:
>             > Hello Jason, thank you for your prompt reply.
>             >
>             > My setup is very simple, I have 1 Centos 7.4 VM which is a storage node which is running latest 12.2.2 Luminous and 2nd VM is Ubuntu 16.04.3 192.168.80.235 where I run local kubernetes cluster based on the master.
>             >
>             > On client side I have ceph-common installed and I copied to /etc/ceph config and key rings from the storage.
>             >
>             > While running my PR I noticed that rmd map was failing on a just rebooted VM because rbdStatus was finding active Watcher. Even adding 30 seconds did not help as it was not timing out at all even with no any image mapping.
>
>             OK -- but how did you get two different watchers listed? That implies
>             the first one timed out at some point in time. Does the watcher
>             eventually go away if you shut down all k8s processes on
>
>         I cannot answer why there are two different watchers, I was just capturing info and until you pointed as I was not aware of that. I just checked VM and finally Watcher timed out. I cannot say how long it took, but I will run another set of tests to find out.
>
>             192.168.80.235?  Are you overriding the "osd_client_watch_timeout"
>             configuration setting somewhere on the OSD host?
>
>         No, no changes to default values were done.
>
>         > As per your format 1 comment, I tried using format v2 and it was failing to map due to differences in capabilities as per rootfs suggestion I switched back to v1. Once Watcher issue is resolved I can switch back to v2 to show the exact issue I hit.
>             >
>             > Please let me know if you need any additional info.
>             >
>             > Thank you
>             > Serguei
>             >
>             > On 2017-12-20, 10:39 AM, "Jason Dillaman" <jdillama@xxxxxxxxxx> wrote:
>             >
>             >     Can you please provide steps to repeat this scenario? What is/was the
>             >     client running on the host at 192.168.80.235 and how did you shut down
>             >     that client? In your PR [1], it showed a different client as a watcher
>             >     ("192.168.80.235:0/34739158 client.64354 cookie=1"), so how did the
>             >     previous entry get cleaned up?
>             >
>             >     BTW -- unrelated, but k8s should be creating RBD image format 2 images
>             >     [2]. Was that image created using an older version of k8s or did you
>             >     override your settings to pick the deprecated v1 format?
>             >
>             >     [1] https://github.com/kubernetes/kubernetes/pull/56651#issuecomment-352850884
>             >     [2] https://github.com/kubernetes/kubernetes/pull/51574
>             >
>             >     On Wed, Dec 20, 2017 at 10:24 AM, Serguei Bezverkhi (sbezverk)
>             >     <sbezverk@xxxxxxxxx> wrote:
>             >     > Hello,
>             >     >
>             >     > I hit an issue with latest Luminous when a Watcher is not timing out when the image is not mapped. It seems something similar was reported in 2016, here is the link:
>             >     > http://lists.ceph.com/pipermail/ceph-users-ceph.com/2016-August/012140.html
>             >     > Has it been fixed? Appreciate some help here.
>             >     > Thank you
>             >     > Serguei
>             >     >
>             >     > date; sudo rbd status raw-volume --pool kubernetes
>             >     > Wed Dec 20 10:04:19 EST 2017
>             >     > Watchers:
>             >     >         watcher=192.168.80.235:0/3789045165 client.64439 cookie=1
>             >     > date; sudo rbd status raw-volume --pool kubernetes
>             >     > Wed Dec 20 10:04:51 EST 2017
>             >     > Watchers:
>             >     >         watcher=192.168.80.235:0/3789045165 client.64439 cookie=1
>             >     > date; sudo rbd status raw-volume --pool kubernetes
>             >     > Wed Dec 20 10:05:14 EST 2017
>             >     > Watchers:
>             >     >         watcher=192.168.80.235:0/3789045165 client.64439 cookie=1
>             >     >
>             >     > date; sudo rbd status raw-volume --pool kubernetes
>             >     > Wed Dec 20 10:07:24 EST 2017
>             >     > Watchers:
>             >     >         watcher=192.168.80.235:0/3789045165 client.64439 cookie=1
>             >     >
>             >     > sudo ls /dev/rbd*
>             >     > ls: cannot access '/dev/rbd*': No such file or directory
>             >     >
>             >     > sudo rbd info raw-volume --pool kubernetes
>             >     > rbd image 'raw-volume':
>             >     >         size 10240 MB in 2560 objects
>             >     >         order 22 (4096 kB objects)
>             >     >         block_name_prefix: rb.0.fafa.625558ec
>             >     >         format: 1
>             >     >
>             >     >
>             >     >
>             >     > _______________________________________________
>             >     > ceph-users mailing list
>             >     > ceph-users@xxxxxxxxxxxxxx
>             >     > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>             >
>             >
>             >
>             >     --
>             >     Jason
>             >
>             >
>
>
>
>             --
>             Jason
>
>
>
>
>
>



-- 
Jason
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




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


  Powered by Linux