[jboss-jira] [JBoss JIRA] (WFLY-2605) TCCL leak in infinispan transaction reaper thread

Brent Douglas (JIRA) jira-events at lists.jboss.org
Sun Dec 8 16:43:05 EST 2013


    [ https://issues.jboss.org/browse/WFLY-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12929362#comment-12929362 ] 

Brent Douglas commented on WFLY-2605:
-------------------------------------

Hi Paul,

I saw your comment before but I have been in transit all weekend and unable to reply. I should be using wildfly's default region factory. I just remembered however that I did add change the inifinispan config in that I added eager starting and a jndi name though I don't think I actually use them any more, they were for some issues back when I was using hibernate-3-bundled. I have included both the hibernate config and the relevant part of the ispn config.

{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">

    <persistence-unit name="SomePU">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>${some.datasource:java:jboss/datasources/SomeMainDS}</jta-data-source>
        <jar-file>zeus-model-${version.other.model.jar}.jar</jar-file>
        <properties>
            <property name="hibernate.show_sql" value="${deploy.development}"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.generate_statistics" value="false"/>
            <property name="hibernate.hbm2ddl.auto" value="validate"/>
            <property name="hibernate.cache.use_query_cache" value="true"/>
            <property name="hibernate.cache.use_second_level_cache" value="true"/>
            <property name="hibernate.cache.use_minimal_puts" value="true"/>
            <property name="hibernate.cache.use_structured_entries" value="true"/>
            <property name="hibernate.jdbc.use_streams_for_binary" value="true"/>
            <property name="hibernate.max_fetch_depth" value="3"/>
            <property name="hibernate.default_batch_fetch_size" value="8"/>
            <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>

            <property name="hibernate.c3p0.min_size" value="5"/>
            <property name="hibernate.c3p0.max_size" value="20"/>
            <property name="hibernate.c3p0.timeout" value="300"/>
            <property name="hibernate.c3p0.max_statements" value="50"/>
            <property name="hibernate.c3p0.idle_test_period" value="3000"/>

            <property name="jboss.entity.manager.jndi.name" value="java:/SomeEntityManager"/>
            <property name="jboss.entity.manager.factory.jndi.name" value="java:/SomeEntityManagerFactory"/>

            <property name="hibernate.cache.infinispan.entity.eviction.strategy" value="LRU"/>
            <property name="hibernate.cache.infinispan.entity.eviction.max_entries" value="15000"/>
            <property name="hibernate.cache.infinispan.entity.expiration.wake_up_interval" value="20000"/>
            <property name="hibernate.cache.infinispan.entity.expiration.lifespan" value="120000"/>
            <property name="hibernate.cache.infinispan.entity.expiration.max_idle" value="30000"/>

            <property name="hibernate.ejb.event.post-load" value="data.listener.DomainSecurityListener"/>
        </properties>
    </persistence-unit>
</persistence>


        <subsystem xmlns="urn:jboss:domain:infinispan:2.0">
...
            <cache-container name="hibernate" default-cache="local-query" jndi-name="java:jboss/infinispan/container/hibernate" start="EAGER" module="org.hibernate">
                <transport lock-timeout="60000"/>
                <local-cache name="local-query">
                    <transaction mode="NONE"/>
                    <eviction strategy="LRU" max-entries="10000"/>
                    <expiration max-idle="100000"/>
                </local-cache>
                <invalidation-cache name="entity" mode="SYNC">
                    <transaction mode="NON_XA"/>
                    <eviction strategy="LRU" max-entries="10000"/>
                    <expiration max-idle="100000"/>
                </invalidation-cache>
                <replicated-cache name="timestamps" mode="ASYNC">
                    <transaction mode="NONE"/>
                    <eviction strategy="NONE"/>
                </replicated-cache>
            </cache-container>
        </subsystem>
{code}
                
> TCCL leak in infinispan transaction reaper thread
> -------------------------------------------------
>
>                 Key: WFLY-2605
>                 URL: https://issues.jboss.org/browse/WFLY-2605
>             Project: WildFly
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Clustering, JPA / Hibernate
>    Affects Versions: 8.0.0.Beta1
>         Environment: Fedora 19, Oracle 7u45, Wildfly 7952aa65e67e1d
>            Reporter: Brent Douglas
>            Assignee: Paul Ferraro
>
> The reaper thread created in TransactionTable is leaking a deployment module classloader. I have observed by deploying and undeploying the same artifact a couple of times over that only the first deployment is held.
> Looking at where the thread is created in [TransactionTable|https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/transaction/TransactionTable.java?source=cc#L133] it looks to me like it will get the TCCL of the caller so either that should be changed in Infinispan or the caller TCCL should be set appropriately.
> !http://i.imgur.com/M37pHSe.png!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list