[libvirt] [PATCH 3/3] sanlock: Properly init io_timeout
Michal Privoznik
mprivozn at redhat.com
Thu Sep 29 14:04:48 UTC 2016
On 28.09.2016 23:59, John Ferlan wrote:
>
>
> On 09/15/2016 10:35 AM, Michal Privoznik wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1292984
>>
>> Hold on to your hats, because this is gonna be wild.
>>
>> In bd3e16a3 I've tried to expose sanlock io_timeout. What I had
>> not realized (because there is like no documentation for sanlock
>> at all) was very unusual way their APIs work. Basically, what we
>> do currently is:
>>
>> sanlock_add_lockspace_timeout(&ls, io_timeout);
>>
>> which adds a lockspace to sanlock daemon. One would expect that
>> io_timeout sets the io_timeout for it. Nah! That's where you are
>> completely off the tracks. It sets timeout for next lockspace you
>> will probably add later. Therefore:
>>
>> sanlock_add_lockspace_timeout(&ls, io_timeout = 10);
>> /* adds new lockspace with default io_timeout */
>>
>> sanlock_add_lockspace_timeout(&ls, io_timeout = 20);
>> /* adds new lockspace with io_timeout = 10 */
>>
>> sanlock_add_lockspace_timeout(&ls, io_timeout = 40);
>> /* adds new lockspace with io_timeout = 20 */
>>
>> And so on. You get the picture.
>> Fortunately, we don't allow setting io_timeout per domain or per
>> domain disk. So we just need to set the default used in the very
>> first step and hope for the best (as all the io_timeout-s used
>> later will have the same value).
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>> src/locking/lock_driver_sanlock.c | 25 ++++++++++++++++++++++++-
>> 1 file changed, 24 insertions(+), 1 deletion(-)
>>
>
> Any thoughts about modifying src/locking/sanlock.conf in order add some
> text there that indicates support for 'io_timeout' requires at least
> sanlock 2.7 (or something similar).
Huh, well, versions are tricky a bit. Somebody might just backport stuff
and all of a sudden this might work with sanlock-2.6 too.
I think we just avoid giving these kind of advice.
Michal
More information about the libvir-list
mailing list