ambari-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nate Cole (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMBARI-22110) ResourceProviders Are Not Transactional
Date Mon, 02 Oct 2017 14:51:00 GMT

     [ https://issues.apache.org/jira/browse/AMBARI-22110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Nate Cole updated AMBARI-22110:
-------------------------------
    Description: 
While investigating an issue with VDFs which don't contain any OS's which match the cluster,
it was observed that, even after throwing an Exception inside of a Transaction, the entities
created inside that transaction were being committed. 

Eventual investigation led to a problem between Guice/AOP and our ResourceProviders. The Guice
documentations says that {{@Transactional}} methods can only be intercepted on objects created
by Guice:

https://github.com/google/guice/wiki/AOP:
{quote}
Instances must be created by Guice by an @Inject-annotated or no-argument constructor It is
not possible to use method interception on instances that aren't constructed by Guice.
{quote}

However, some of the ResourceProviders which use {{@Transactional}} are not constructed by
Guice.

  was:A handful of {{ResourceProvider}}s have transactional methods that are not loaded by
Guice, and are therefore not transactional at all.


> ResourceProviders Are Not Transactional
> ---------------------------------------
>
>                 Key: AMBARI-22110
>                 URL: https://issues.apache.org/jira/browse/AMBARI-22110
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>            Reporter: Nate Cole
>            Assignee: Nate Cole
>            Priority: Critical
>             Fix For: 2.6.0
>
>
> While investigating an issue with VDFs which don't contain any OS's which match the cluster,
it was observed that, even after throwing an Exception inside of a Transaction, the entities
created inside that transaction were being committed. 
> Eventual investigation led to a problem between Guice/AOP and our ResourceProviders.
The Guice documentations says that {{@Transactional}} methods can only be intercepted on objects
created by Guice:
> https://github.com/google/guice/wiki/AOP:
> {quote}
> Instances must be created by Guice by an @Inject-annotated or no-argument constructor
It is not possible to use method interception on instances that aren't constructed by Guice.
> {quote}
> However, some of the ResourceProviders which use {{@Transactional}} are not constructed
by Guice.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message