----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/33663/#review82726 -----------------------------------------------------------
Ship it! Very interesting that the problem is caused because this is executed in separate threads from the normal request workflow which causes the EntityManager to contain stale cache. Could we actually extrapolate this into an annotation so that we can simply decorate methods that need to be inside units of work? Something like @UnitOfWork and then doc why it's needed ... as Ambari becomes more and more asynchronous this will probably be useful. - Jonathan Hurley On May 6, 2015, 2:09 p.m., Dmitro Lisnichenko wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/33663/ > ----------------------------------------------------------- > > (Updated May 6, 2015, 2:09 p.m.) > > > Review request for Ambari, Alejandro Fernandez, Jonathan Hurley, and Nate > Cole. > > > Bugs: AMBARI-10818 > https://issues.apache.org/jira/browse/AMBARI-10818 > > > Repository: ambari > > > Description > ------- > > Problem here is that DistributeRepositoriesActionListener is executed in a > separate thread. So we have to use UnitOfWork just like at > org.apache.ambari.server.actionmanager.ActionScheduler#doWork , otherwise > EntityManager cache is not updated on DB updates. I mean that > RepositoryVersion state at DB is INSTALLING, and API shows INSTALLING, but > RepositoryVersion state in DistributeRepositoriesActionListener is still > INSTALLED, and cluster state transition is not performed. > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/DistributeRepositoriesActionListener.java > 5600ef1 > > ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java > 39192c4 > > Diff: https://reviews.apache.org/r/33663/diff/ > > > Testing > ------- > > Same tests are failing on trunk > > Tests in error: > > test220Cardinality(org.apache.ambari.server.api.services.KerberosServiceMetaInfoTest): > Guice provision errors:(..) > > test220AutoDeploy(org.apache.ambari.server.api.services.KerberosServiceMetaInfoTest): > Guice provision errors:(..) > > test220Dependencies(org.apache.ambari.server.api.services.KerberosServiceMetaInfoTest): > Guice provision errors:(..) > > testCommonOozieServiceDescriptor(org.apache.ambari.server.stack.KerberosDescriptorTest): > > /media/plextor/review_ambari/ambari-server/target/classes/common-services/OOZIE/5.0.0.2.3/kerberos.json > is not a readable file > > Tests run: 2951, Failures: 0, Errors: 4, Skipped: 17 > > [INFO] > ------------------------------------------------------------------------ > [INFO] Reactor Summary: > [INFO] > [INFO] Ambari Views ...................................... SUCCESS [2.900s] > [INFO] Ambari Metrics Common ............................. SUCCESS [1.570s] > [INFO] Ambari Server ..................................... FAILURE > [43:59.418s] > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD FAILURE > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 44:04.603s > [INFO] Finished at: Wed May 06 20:25:17 EEST 2015 > [INFO] Final Memory: 32M/268M > [INFO] ---------------------------------------------------------------------- > > > Thanks, > > Dmitro Lisnichenko > >
