[ 
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)

Reply via email to