fssync-debug: close test connection
authorMark Vitale <mvitale@sinenomine.net>
Wed, 20 Nov 2013 20:05:21 +0000 (15:05 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Mon, 5 Jan 2015 02:47:35 +0000 (21:47 -0500)
A valid fssync-debug query <volid> command issued against
a DAFS fileserver will produce the following error messages in FileLog:

SYNC_getCom:  error receiving command
FSYNC_com:  read failed; dropping connection (cnt=1)

Routine dafs_prolog() issues a tentative FSYNC_VOL_LISTVOLUMES operation
to test for the presence of a DAFS fileserver.  If DAFS is detected,
we then call dafssync-debug for the original requested operation.
However, the FSYNC connection for the tentative LISTVOLUMES operation
is never closed. This results in the errors when the command completes.

Close the test connection.

Change-Id: I3c987289408407ba38cd184b7518e72ee1ae9cfc
Reviewed-on: http://gerrit.openafs.org/10476
Reviewed-by: Daria Brashear <shadow@your-file-system.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/vol/fssync-debug.c

index 27380fc..ddc83fc 100644 (file)
@@ -274,6 +274,7 @@ dafs_prolog(void)
     /* LISTVOLUMES is a no-op; we just want to get the response header flags
      * to see if the server reports itself as DAFS or not */
     code = FSYNC_VolOp(0, NULL, FSYNC_VOL_LISTVOLUMES, FSYNC_WHATEVER, &res);
+    VDisconnectFS();   /* disconnect before continuing */
     if (code) {
        /* probably failed to contact the fileserver; later code will provide
         * some warning/error indication */