Sandor Molnar created AMBARI-24513:
--------------------------------------
Summary: 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
Fix For: 2.7.1
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)