SENTRY-1718: TestSentryStore often fails in setup() (Na Li, reviewed by: Alex Kolbasov)
Change-Id: Ied7c0cccbe9a9dccc5467820f10e757687b06f0b Reviewed-on: http://gerrit.sjc.cloudera.com:8080/22195 Tested-by: Jenkins User Reviewed-by: Alexander Kolbasov <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/sentry/repo Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/d419afed Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/d419afed Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/d419afed Branch: refs/for/cdh5-1.5.1_ha Commit: d419afed08df3ed740fad1824d3f4666e280cf39 Parents: 0dbe38a Author: Alexander Kolbasov <[email protected]> Authored: Fri Apr 28 16:15:14 2017 -0700 Committer: Alexander Kolbasov <[email protected]> Committed: Fri Apr 28 17:15:53 2017 -0700 ---------------------------------------------------------------------- .../db/service/persistent/TestSentryStore.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sentry/blob/d419afed/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java ---------------------------------------------------------------------- diff --git a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java index 4d8a091..610380c 100644 --- a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java +++ b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java @@ -100,10 +100,18 @@ public class TestSentryStore { conf = new Configuration(false); final String ourUrl = UserProvider.SCHEME_NAME + ":///"; conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, ourUrl); + + // THis should be a UserGroupInformation provider CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0); - provider.createCredentialEntry(ServerConfig. - SENTRY_STORE_JDBC_PASS, passwd); - provider.flush(); + + + // The user credentials are stored as a static variable by UserGrouoInformation provider. + // We need to only set the password the first time, an attempt to set it for the second + // time fails with an exception. + if(provider.getCredentialEntry(ServerConfig.SENTRY_STORE_JDBC_PASS) == null) { + provider.createCredentialEntry(ServerConfig.SENTRY_STORE_JDBC_PASS, passwd); + provider.flush(); + } dataDir = new File(Files.createTempDir(), "sentry_policy_db"); conf.set(ServerConfig.SENTRY_VERIFY_SCHEM_VERSION, "false");
