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


Fix it, then Ship it!





ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java
 (line 1160)
<https://reviews.apache.org/r/46449/#comment193297>

    This seems like it needs to be done within a transaction.



ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java
 (lines 1174 - 1184)
<https://reviews.apache.org/r/46449/#comment193295>

    This better return 1 hit (and 1 hit only). If it doesn't I think that we 
need to raise an error here since that means that the database is in a bad 
state.


- Jonathan Hurley


On April 20, 2016, 1:20 p.m., Dmitro Lisnichenko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46449/
> -----------------------------------------------------------
> 
> (Updated April 20, 2016, 1:20 p.m.)
> 
> 
> Review request for Ambari, Jonathan Hurley and Vitalyi Brodetskyi.
> 
> 
> Bugs: AMBARI-15995
>     https://issues.apache.org/jira/browse/AMBARI-15995
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Ambari packages upgrade to 2.4.0.0.160. It fails at stage of upgrading ambari 
> database.
> 
> Step of failure
> ambari-server upgrade.
> 
> 1. It complains about following
> [root@host]# ambari-server upgrade
> Using python  /usr/bin/python
> Upgrading ambari-server
> Updating properties in ambari.properties ...
> WARNING: Can not find ambari.properties.rpmsave file from previous version, 
> skipping import of settings
> WARNING: Can not find ambari-env.sh.rpmsave file from previous version, 
> skipping restore of environment settings
> Fixing database objects owner
> Ambari Server configured for Embedded Postgres. Confirm you have made a 
> backup of the Ambari Server database [y/n] (y)? y
> Upgrading database schema
> WARNING: Multiple versions of javax.servlet.jsp.jstl.jar found in java class 
> path (/usr/lib/ambari-server/javax.servlet.jsp.jstl-1.2.2.jar and 
> /usr/lib/ambari-server/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar).
> Make sure that you include only one javax.servlet.jsp.jstl.jar in the java 
> class path 
> '/etc/ambari-server/conf:/usr/lib/ambari-server/*:/usr/share/java/postgresql-jdbc.jar'.
> 
> So I rename 
> /usr/lib/ambari-server/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar to 
> something else and kept only 
> /usr/lib/ambari-server/javax.servlet.jsp.jstl-1.2.2.jar
> 
> 2. After above changes ambari-server upgrade does finishes but throws 
> following error when trying to start ambari-server.
> 
> 06 Apr 2016 15:29:17,518 ERROR [main] AmbariServer:930 - Failed to run the 
> Ambari Server
> javax.persistence.PersistenceException: Exception [EclipseLink-116] (Eclipse 
> Persistence Services - 2.6.2.v20151217-774c696): 
> org.eclipse.persistence.exceptions.DescriptorException
> Exception Description: No conversion value provided for the value [UPGRADED] 
> in field [host_version.state].
> Mapping: 
> org.eclipse.persistence.mappings.DirectToFieldMapping[state-->host_version.state]
> Descriptor: 
> RelationalDescriptor(org.apache.ambari.server.orm.entities.HostVersionEntity 
> --> [DatabaseTable(host_version)])
> at 
> org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:484)
> at org.apache.ambari.server.orm.dao.DaoUtils.selectList(DaoUtils.java:62)
> at org.apache.ambari.server.orm.dao.CrudDAO.findAll(CrudDAO.java:72)
> at 
> org.apache.ambari.server.orm.AmbariLocalSessionInterceptor.invoke(AmbariLocalSessionInterceptor.java:43)
> at 
> org.apache.ambari.server.StateRecoveryManager.checkHostAndClusterVersions(StateRecoveryManager.java:53)
> at 
> org.apache.ambari.server.StateRecoveryManager.doWork(StateRecoveryManager.java:48)
> at org.apache.ambari.server.controller.AmbariServer.run(AmbariServer.java:595)
> at 
> org.apache.ambari.server.controller.AmbariServer.main(AmbariServer.java:928)
> Caused by: Exception [EclipseLink-116] (Eclipse Persistence Services - 
> 2.6.2.v20151217-774c696): 
> org.eclipse.persistence.exceptions.DescriptorException
> Exception Description: No conversion value provided for the value [UPGRADED] 
> in field [host_version.state].
> Mapping: 
> org.eclipse.persistence.mappings.DirectToFieldMapping[state-->host_version.state]
> Descriptor: 
> RelationalDescriptor(org.apache.ambari.server.orm.entities.HostVersionEntity 
> --> [DatabaseTable(host_version)])
> at 
> org.eclipse.persistence.exceptions.DescriptorException.noFieldValueConversionToAttributeValueProvided(DescriptorException.java:1066)
> at 
> org.eclipse.persistence.mappings.converters.ObjectTypeConverter.convertDataValueToObjectValue(ObjectTypeConverter.java:226)
> at 
> org.eclipse.persistence.mappings.converters.EnumTypeConverter.convertDataValueToObjectValue(EnumTypeConverter.java:141)
> at 
> org.eclipse.persistence.mappings.foundation.AbstractDirectMapping.getObjectValue(AbstractDirectMapping.java:616)
> at 
> org.eclipse.persistence.mappings.foundation.AbstractDirectMapping.valueFromRow(AbstractDirectMapping.java:1220)
> at 
> org.eclipse.persistence.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1539)
> at 
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:462)
> at 
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:1005)
> at 
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:899)
> at 
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:852)
> at 
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:735)
> at 
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:689)
> at 
> org.eclipse.persistence.queries.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:805)
> at 
> org.eclipse.persistence.queries.ReadAllQuery.registerResultInUnitOfWork(ReadAllQuery.java:962)
> at 
> org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:573)
> at 
> org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1175)
> at 
> org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:904)
> at 
> org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1134)
> at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:460)
> at 
> org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1222)
> at 
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
> at 
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1857)
> at 
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1839)
> at 
> org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
> at 
> org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
> at 
> org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:473)
> 
> Please find ambari-server.log attached with this JIRA. Let me know and I have 
> the env available to reproduce bug. I am right now in a limbo to upgrade my 
> cluster to
> 1. Upgrade to Ambari 2.4.0.0-169
> 2. Later upgrade to hdp2.5.*
> 
> 
> Diffs
> -----
> 
>   
> ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java
>  b66ad66 
>   
> ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java
>  cfb57ab 
> 
> Diff: https://reviews.apache.org/r/46449/diff/
> 
> 
> Testing
> -------
> 
> mvn clean test
> 
> 
> Thanks,
> 
> Dmitro Lisnichenko
> 
>

Reply via email to