-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/43950/
-----------------------------------------------------------

Review request for Ambari, Alejandro Fernandez and Sumit Mohanty.


Bugs: AMBARI-15162
    https://issues.apache.org/jira/browse/AMBARI-15162


Repository: ambari


Description
-------

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';`
 
```
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)
```


Diffs
-----

  ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java 
8142661 
  ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java 
329fea8 
  
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/RoleAuthorizationDAO.java
 e549416 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog230.java
 eb5feb7 
  
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java
 f2055a6 
  
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog230Test.java
 417cf66 

Diff: https://reviews.apache.org/r/43950/diff/


Testing
-------

Manually tested

# Local test results: 

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:01:54.942s
[INFO] Finished at: Tue Feb 23 17:37:32 EST 2016
[INFO] Final Memory: 70M/604M
[INFO] ------------------------------------------------------------------------

# Jenkins test results: PENDING


Thanks,

Robert Levas

Reply via email to