KUDU-2395 (part 1): cache logged-in user

The name of the current logged-in user is not expected to change over
time once the process is running. If it did change this could cause
strange effects with ACL enforcement, for one, or result in outbound RPC
connections switching credentials during the process lifetime.

Additionally, as pointed at in KUDU-2395, the lookup of the user name
from the UID sometimes needs to go to external services which may be
slow and incur lock contention.

This patch switches to computing the local username only once and
reusing the result on all subsequent lookups.

Change-Id: Ib4500d89dd91e8eed6e4ae0661b886ab3c105130
Reviewed-on: http://gerrit.cloudera.org:8080/9895
Tested-by: Kudu Jenkins
Reviewed-by: Todd Lipcon <todd@apache.org>
(cherry picked from commit 52b50b7a91c61925a7bc42992fe1001e74425d4d)
Reviewed-on: http://gerrit.cloudera.org:8080/13250
Reviewed-by: Alexey Serbin <aserbin@cloudera.com>
Tested-by: Will Berkeley <wdberkeley@gmail.com>
1 file changed