[jboss-as7-dev] Better handling of transaction leaks?

Darran Lofthouse darran.lofthouse at jboss.com
Wed Oct 19 11:05:27 EDT 2011


I am also in favour of retaining some checks, in the past before these 
checks were added some of these leaks would be enough to bring down a 
production server.

Doesn't some of this fit into some for of developer mode switch that Max 
has asked for a couple of times?

Regards,
Darran Lofthouse.


On 10/19/2011 02:55 PM, Jaikiran Pai wrote:
> I agree that there should be a way to easily disable this. The only real
> reason why I am in favour of this simple check/cleanup is to ensure that
> some rogue application (which doesn't handle transactions correctly)
> doesn't end up breaking/affecting some other (well-written) application
> deployed on the same instance.
>
> -Jaikiran
> On Wednesday 19 October 2011 07:22 PM, Andrig Miller wrote:
>> I want to make sure that whatever is done with this stuff, is that it
>> is configurable in such a way that it can be removed for our
>> benchmarking purposes, and performance tuning in general.
>>
>> Even a lightweight check will add overhead that we cannot afford if we
>> are to be competitive with IBM and Oracle on SPECjEnterprise2010.
>> Besides, this is a debugging exercise, not something that should ever
>> really be on in a production environment, in my opinion.
>>
>> Andy
>>
>> ------------------------------------------------------------------------
>>
>>      *From: *"Jaikiran Pai"<jpai at redhat.com>
>>      *To: *jboss-as7-dev at lists.jboss.org
>>      *Sent: *Tuesday, October 18, 2011 11:42:30 PM
>>      *Subject: *Re: [jboss-as7-dev] Better handling of transaction leaks?
>>
>>      Just to be clear, I wasn't in favour of introducing that entire
>>      CachedConnectionValve (which definitely is quite heavy). That link
>>      was
>>      more of a reference to show how it was handled in previous versions.
>>
>>      Like you say, it should be easy to check the tx status with a
>>      simple check.
>>
>>      -Jaikiran
>>
>>      On Wednesday 19 October 2011 12:09 AM, Jason T. Greene wrote:
>>      >  On 10/18/11 12:31 PM, Remy Maucherat wrote:
>>      >>  On Tue, 2011-10-18 at 21:28 +0530, Jaikiran Pai wrote:
>>      >>>  While looking into a test failure I noticed that currently user
>>      >>>  applications can end up leaking transactions (associated with the
>>      >>>  invocation thread):
>>      >>>
>>      >>>  Servlet {
>>      >>>
>>      >>>        doGet() {
>>      >>>          UserTransaction.begin();
>>      >>>          doSomeOp();
>>      >>>          fail();
>>      >>>          // no tx rollback/commit
>>      >>>        }
>>      >>>  }
>>      >>>
>>      >>>  Subsequent transactions on that thread can lead to failures
>>      and other
>>      >>>  sorts of issues. Looking back at previous versions of AS, we
>>      had a valve
>>      >>>
>>      http://anonsvn.jboss.org/repos/jbossas/trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/jca/CachedConnectionValve.java
>>      >>>  which used to cleanup (and log an error) about the leaking
>>      transactions.
>>      >>>
>>      >>>  Do we want something similar for AS7? Also, are there other "entry
>>      >>>  points" (like servlets for web requests) where such leaks can
>>      happen and
>>      >>>  needs to be taken care off?
>>      >>
>>      >>  JPA has automatic tracking of this sort of things using a valve
>>      (and
>>      >>  added only when needed).
>>      >>
>>      >>  For the insignificant amount of people that will do manual
>>      transactions
>>      >>  and can't be bothered to code properly, everyone gets to pay
>>      the cost of
>>      >>  transaction tracking for all requests to the web container, so I am
>>      >>  against this feature.
>>      >>
>>      >>  I remember being flamed pretty badly for daring disabling this
>>      "nice"
>>      >>  valve by default in AS 6 :) Hopefully it will go better this time.
>>      >>
>>      >
>>      >  I'll support you (I'd rather have the perf by default). It seems
>>      like it
>>      >  should be possible to come up with a fast solution though,
>>      instead of
>>      >  using the slow CCV. For example its pretty cheap to check the UT
>>      >  threadlocal and see if the status is still active (hence a leak).
>>      >
>>
>>      _______________________________________________
>>      jboss-as7-dev mailing list
>>      jboss-as7-dev at lists.jboss.org
>>      https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev


More information about the jboss-as7-dev mailing list