multipath-tools: libdmmp: Improve timeout mechanism
authorGris Ge <fge@redhat.com>
Wed, 16 Aug 2017 12:34:08 +0000 (20:34 +0800)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Wed, 20 Sep 2017 13:26:25 +0000 (15:26 +0200)
commite83292383bbc38e09d4c32aa4e6d4acb8dc3f27a
tree83d6fb98fbb2afcb244692652e80791aee60092c
parent22b0e49e5707a61e2a0c312621a959e37273ee8b
multipath-tools: libdmmp: Improve timeout mechanism

Issue:
    libdmmp return error of timeout before user requested timeout was
    met.
    This happens when multipathd daemon is starting with a lot(1k+) mpaths.

Root cause:
    The multipath has two timeout settings:
        1. 'uxsock_timeout' in multipath.conf
        2. libmpathcmd timeout argument.
    And the first is not controllable in current libdmmp code.

Fix:
    * Only keep 1 timeout setting in libdmmp:
        dmmp_context_timeout_set()/dmmp_context_timeout_get().
    * libdmmp will keep reply until meet user requested timeout.
    * Allow user to set timeout as 0 which mean infinite, only return
      when error or pass.
    * Updated libdmmp.h document to to indicate timeout 0 as infinite.
    * Increase timeout setting in libdmmp test case to test this
      mechanism.

Signed-off-by: Gris Ge <fge@redhat.com>
libdmmp/libdmmp.c
libdmmp/libdmmp/libdmmp.h
libdmmp/test/libdmmp_test.c