[
https://issues.apache.org/jira/browse/AMBARI-15162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Levas updated AMBARI-15162:
----------------------------------
Attachment: AMBARI-15162_trunk_01.patch
> UpgradeCatalog230 is not idempotent
> -----------------------------------
>
> Key: AMBARI-15162
> URL: https://issues.apache.org/jira/browse/AMBARI-15162
> Project: Ambari
> Issue Type: Bug
> Components: ambari-server
> Affects Versions: 2.3.0
> Reporter: Robert Levas
> Assignee: Robert Levas
> Priority: Critical
> Labels: upgrade
> Fix For: 2.4.0
>
> Attachments: AMBARI-15162_trunk_01.patch
>
>
> If ambari-server upgrade is run again, the following error is encountered.
> One easy way to test it is to set the version in the DB to an older version
> and then call ambari-server upgrade.
> e.g. {{update metainfo set metainfo_value = '2.2.0' where neatinfo_key =
> 'version';}}
>
> {code}
> Error output from schema upgrade command:
> Exception in thread "main" org.apache.ambari.server.AmbariException:
> Exception [EclipseLink-4002] (Eclipse Persistence Services -
> 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
> Internal Exception: org.postgresql.util.PSQLException: ERROR: duplicate key
> value violates unique constraint "adminpermission_pkey"
> Error Code: 0
> Call: INSERT INTO adminpermission (permission_id, permission_label,
> permission_name, sort_order, resource_type_id) VALUES (?, ?, ?, ?, ?)
> bind => [5 parameters bound]
> at
> org.apache.ambari.server.upgrade.SchemaUpgradeHelper.executeDMLUpdates(SchemaUpgradeHelper.java:233)
> at
> org.apache.ambari.server.upgrade.SchemaUpgradeHelper.main(SchemaUpgradeHelper.java:307)
> Caused by: javax.persistence.RollbackException: Exception [EclipseLink-4002]
> (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):
> org.eclipse.persistence.exceptions.DatabaseException
> Internal Exception: org.postgresql.util.PSQLException: ERROR: duplicate key
> value violates unique constraint "adminpermission_pkey"
> Error Code: 0
> Call: INSERT INTO adminpermission (permission_id, permission_label,
> permission_name, sort_order, resource_type_id) VALUES (?, ?, ?, ?, ?)
> bind => [5 parameters bound]
> at
> org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:157)
> at
> org.apache.ambari.server.orm.AmbariJpaLocalTxnInterceptor.invoke(AmbariJpaLocalTxnInterceptor.java:91)
> at
> org.apache.ambari.server.upgrade.UpgradeCatalog230.addNewPermissions(UpgradeCatalog230.java:144)
> at
> org.apache.ambari.server.upgrade.UpgradeCatalog230.executeDMLUpdates(UpgradeCatalog230.java:127)
> at
> org.apache.ambari.server.upgrade.AbstractUpgradeCatalog.upgradeData(AbstractUpgradeCatalog.java:659)
> at
> org.apache.ambari.server.upgrade.SchemaUpgradeHelper.executeDMLUpdates(SchemaUpgradeHelper.java:230)
> ... 1 more
> Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services -
> 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
> Internal Exception: org.postgresql.util.PSQLException: ERROR: duplicate key
> value violates unique constraint "adminpermission_pkey"
> Error Code: 0
> Call: INSERT INTO adminpermission (permission_id, permission_label,
> permission_name, sort_order, resource_type_id) VALUES (?, ?, ?, ?, ?)
> bind => [5 parameters bound]
> at
> org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1611)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:898)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:962)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:631)
> at
> org.eclipse.persistence.internal.databaseaccess.ParameterizedSQLBatchWritingMechanism.executeBatch(ParameterizedSQLBatchWritingMechanism.java:149)
> at
> org.eclipse.persistence.internal.databaseaccess.ParameterizedSQLBatchWritingMechanism.executeBatchedStatements(ParameterizedSQLBatchWritingMechanism.java:134)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.writesCompleted(DatabaseAccessor.java:1836)
> at
> org.eclipse.persistence.internal.sessions.AbstractSession.writesCompleted(AbstractSession.java:4244)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)