viced: Print a warning when using a deleted client
authorAndrew Deason <adeason@sinenomine.net>
Sat, 23 Apr 2011 21:44:41 +0000 (16:44 -0500)
committerDerrick Brashear <shadow@dementia.org>
Mon, 25 Apr 2011 20:38:54 +0000 (13:38 -0700)
We should never get a deleted client back from GetClient. Log a
message if we do, to explain why access may suddenly appear to fail,
and assist in determining why.

Note that we still try to service the request, since the accessing
user may still have enough access to do whatever was requested.

Change-Id: Ie1d0c2d8a33a68a760704bfff9f268c6c507118f
Reviewed-on: http://gerrit.openafs.org/4529
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/viced/host.c

index f74de56..6249ec5 100644 (file)
@@ -2646,6 +2646,14 @@ GetClient(struct rx_connection *tcon, struct client **cp)
        H_UNLOCK;
        return VICETOKENDEAD;
     }
+    if (client->deleted) {
+       ViceLog(0, ("GetClient: got deleted client, this should not happen! "
+                   "Connection will appear to have no rights; "
+                   "tcon %p sid %d epoch %d client %p host %s:%d viceid %d\n",
+                   tcon, (int)rxr_CidOf(tcon), (int)rxr_GetEpoch(tcon), client,
+                   afs_inet_ntoa_r(client->host->host, hoststr),
+                   (int)ntohs(client->host->port), (int)client->ViceId));
+    }
 
     client->refCount++;
     *cp = client;