On Thu, 10 Oct 2013, Wido den Hollander wrote: > Hi, > > Currently librados blocks all calls when something is not working inside the > Ceph cluster. > > This is common practice for fopen(), fread() and fwrite(), but I'm running > into a use-case where I think the rados_connect() should not block > indefinitely. > > The use-case here is the RBD storage pool in libvirt. When for whatever reason > libvirt is not able to connect to the Ceph cluster libvirt will simply block > and wait on rados_connect() to complete. > > This causes libvirt not being able to report new statistics about the RBD > storage pool, which causes issues again for the applications using it. > > Would it be an idea that you can configure librados not to block indefinitely > and return for example ETIMEDOUT? > > By default librados could stay blocking like it's now so nothing changes for > existing users. Yeah I think this is definitely doable. The simplest would be to have a configurable (or configurables) that are set via rados_conf_set() (or put in the config). There are several timeouts there already, but I think they don't capture the entire connect sequence. Want to open a feature ticket? sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html