[ https://issues.apache.org/jira/browse/AMBARI-24513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Olivér Szabó resolved AMBARI-24513. ----------------------------------- Resolution: Fixed > NPE when migrating users table during upgrade to Ambari 2.7.0 with Oracle DB > ---------------------------------------------------------------------------- > > Key: AMBARI-24513 > URL: https://issues.apache.org/jira/browse/AMBARI-24513 > Project: Ambari > Issue Type: Bug > Components: ambari-server > Affects Versions: 2.7.0 > Reporter: Sandor Molnar > Assignee: Sandor Molnar > Priority: Blocker > Labels: pull-request-available > Fix For: 2.7.1 > > Time Spent: 2h 10m > Remaining Estimate: 0h > > NPE when migrating users table during upgrade to Ambari 2.7.0 with Oracle DB: > {noformat} > 2018-08-20 11:36:46,395 ERROR [main] SchemaUpgradeHelper:207 - Upgrade > failed. > java.lang.NullPointerException > at > org.apache.ambari.server.upgrade.UpgradeCatalog270.convertUserCreationTimeToLong(UpgradeCatalog270.java:595) > at > org.apache.ambari.server.upgrade.UpgradeCatalog270.upgradeUserTables(UpgradeCatalog270.java:342) > at > org.apache.ambari.server.upgrade.UpgradeCatalog270.executeDDLUpdates(UpgradeCatalog270.java:318) > at > org.apache.ambari.server.upgrade.AbstractUpgradeCatalog.upgradeSchema(AbstractUpgradeCatalog.java:970) > at > org.apache.ambari.server.upgrade.SchemaUpgradeHelper.executeUpgrade(SchemaUpgradeHelper.java:205) > at > org.apache.ambari.server.upgrade.SchemaUpgradeHelper.main(SchemaUpgradeHelper.java:448) > 2018-08-20 11:36:46,395 ERROR [main] SchemaUpgradeHelper:473 - Exception > occurred during upgrade, failed > org.apache.ambari.server.AmbariException > at > org.apache.ambari.server.upgrade.SchemaUpgradeHelper.executeUpgrade(SchemaUpgradeHelper.java:208) > at > org.apache.ambari.server.upgrade.SchemaUpgradeHelper.main(SchemaUpgradeHelper.java:448) > Caused by: java.lang.NullPointerException > at > org.apache.ambari.server.upgrade.UpgradeCatalog270.convertUserCreationTimeToLong(UpgradeCatalog270.java:595) > at > org.apache.ambari.server.upgrade.UpgradeCatalog270.upgradeUserTables(UpgradeCatalog270.java:342) > at > org.apache.ambari.server.upgrade.UpgradeCatalog270.executeDDLUpdates(UpgradeCatalog270.java:318) > at > org.apache.ambari.server.upgrade.AbstractUpgradeCatalog.upgradeSchema(AbstractUpgradeCatalog.java:970) > at > org.apache.ambari.server.upgrade.SchemaUpgradeHelper.executeUpgrade(SchemaUpgradeHelper.java:205) > ... 1 more > {noformat} > *Cause* > This is caused by one or more records with a {{NULL}} value in the > {{create_time}} field. > For example: > ||user_id||user_name||user_type||create_time|| > |1|admin|LOCAL|NULL| > *Workaround* > Update the relevant records to not have a {{NULL}} in the {{create_time}} > column. > For example: > {noformat} > UPDATE users SET create_time=systimestamp WHERE create_time IS NULL; > {noformat} > *Solution* > During upgrade, protect against a {{null}} value for > {{currentUserCreateTime.getValue()}} at: > {code:java|title=org/apache/ambari/server/upgrade/UpgradeCatalog270.java:595} > dbAccessor.updateTable(USERS_TABLE, temporaryColumnName, > currentUserCreateTime.getValue().getTime(), > "WHERE " + USERS_USER_ID_COLUMN + "=" + > currentUserCreateTime.getKey()); > {code} > If {{currentUserCreateTime.getValue()}} is null, the current timestamp should > be used. > *Note:* This may be a reoccurring issue since there is no provision to ensure > that {{create_time}} is not {{NULL}} when initializing the Ambari database: > {code:java} > insert into users(user_id, principal_id, user_name, user_password) > select > 1,1,'admin','538916f8943ec225d97a9a86a2c6ec0818c1cd400e09e03b660fdaaec4af29ddbb6f2b1033b81b00' > from dual;{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)