On 2012年09月25日 00:42, Eric Blake wrote:
On 09/24/2012 02:44 AM, Osier Yang wrote:
It might need some time till the LUN's stable path shows up on
initiator host, and although the time window is not foreseeable,
as a better than nothing fix, this patch adds timeout for the
stable path discovery process.
---
  src/storage/storage_backend.c |   14 ++++++++++++--
  1 files changed, 12 insertions(+), 2 deletions(-)


@@ -1384,8 +1385,12 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool,
      /* The pool is pointing somewhere like /dev/disk/by-path
       * or /dev/disk/by-id, so we need to check all symlinks in
       * the target directory and figure out which one points
-     * to this device node
+     * to this device node.
+     *
+     * And it might need some time till the stabe path shows

s/stabe/stable/

+     * up, so add timeout to retry here.
       */
+ retry:
      while ((dent = readdir(dh)) != NULL) {
          if (dent->d_name[0] == '.')
              continue;
@@ -1406,6 +1411,11 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool,
          VIR_FREE(stablepath);
      }

+    if (++retry<  100) {

Why a magic number of 100?  Not even a comment mentioning the maximum
time we are waiting?

+        usleep(100 * 1000);

This says up to 100ms * 100, or 10 seconds.  I guess that seems
reasonable enough.

ACK if you fix those issues.



Thanks, pushed with nits fixed.

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to