[JBoss JIRA] (JBTM-1298) Build timeout on SimpleIsolatedServers test
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1298?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-1298:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Build timeout on SimpleIsolatedServers test
> -------------------------------------------
>
> Key: JBTM-1298
> URL: https://issues.jboss.org/browse/JBTM-1298
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Testing
> Reporter: Paul Robinson
> Assignee: Tom Jenkinson
> Priority: Minor
> Fix For: 4.17.4, 5.0.0.M3
>
>
> {noformat}
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.5-b02 mixed mode):
> "Transaction Reaper Worker 0" daemon prio=10 tid=0x000000001da1b800 nid=0x6ff1 in Object.wait() [0x0000000040141000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3cb850> (a java.util.LinkedList)
> at java.lang.Object.wait(Object.java:503)
> at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:321)
> - locked <0x00000000fa3cb850> (a java.util.LinkedList)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
> "Transaction Reaper" daemon prio=10 tid=0x000000002334f800 nid=0x6ff0 in Object.wait() [0x0000000042766000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3cb5e8> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:90)
> - locked <0x00000000fa3cb5e8> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> "Transaction Expired Entry Monitor" daemon prio=10 tid=0x000000001f05a000 nid=0x6fef in Object.wait() [0x00000000414db000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3cedc0> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:190)
> - locked <0x00000000fa3cedc0> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> "Transaction Reaper Worker 0" daemon prio=10 tid=0x000000001ecd4000 nid=0x6fee in Object.wait() [0x0000000042867000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3a0ce0> (a java.util.LinkedList)
> at java.lang.Object.wait(Object.java:503)
> at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:321)
> - locked <0x00000000fa3a0ce0> (a java.util.LinkedList)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
> "Transaction Reaper" daemon prio=10 tid=0x000000001e1c5000 nid=0x6fed in Object.wait() [0x0000000042665000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3a0a78> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:90)
> - locked <0x00000000fa3a0a78> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> "Transaction Expired Entry Monitor" daemon prio=10 tid=0x000000001eefa800 nid=0x6fec in Object.wait() [0x0000000042463000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3a4250> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:190)
> - locked <0x00000000fa3a4250> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> "Transaction Reaper Worker 0" daemon prio=10 tid=0x000000001f49f000 nid=0x6feb in Object.wait() [0x0000000042362000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3ee7d0> (a java.util.LinkedList)
> at java.lang.Object.wait(Object.java:503)
> at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:321)
> - locked <0x00000000fa3ee7d0> (a java.util.LinkedList)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
> "Transaction Reaper" daemon prio=10 tid=0x000000001ee43000 nid=0x6fea in Object.wait() [0x0000000042564000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3ee568> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:90)
> - locked <0x00000000fa3ee568> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> "Transaction Expired Entry Monitor" daemon prio=10 tid=0x000000001deee800 nid=0x6fe9 in Object.wait() [0x000000004049d000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000fa3f1d40> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:190)
> - locked <0x00000000fa3f1d40> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> "Attach Listener" daemon prio=10 tid=0x000000001e7ae800 nid=0x6f69 runnable [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "Service Thread" daemon prio=10 tid=0x000000001d7a3000 nid=0x6f24 runnable [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "C2 CompilerThread1" daemon prio=10 tid=0x000000001d7a0800 nid=0x6f23 waiting on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "C2 CompilerThread0" daemon prio=10 tid=0x000000001d795000 nid=0x6f22 waiting on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "Signal Dispatcher" daemon prio=10 tid=0x000000001d793000 nid=0x6f21 waiting on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "Finalizer" daemon prio=10 tid=0x000000001d740000 nid=0x6f20 in Object.wait() [0x0000000042160000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000f9c7add8> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
> - locked <0x00000000f9c7add8> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
> "Reference Handler" daemon prio=10 tid=0x000000001d73e000 nid=0x6f1f in Object.wait() [0x000000004205f000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000f9c7aa50> (a java.lang.ref.Reference$Lock)
> at java.lang.Object.wait(Object.java:503)
> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
> - locked <0x00000000f9c7aa50> (a java.lang.ref.Reference$Lock)
> "main" prio=10 tid=0x000000001d6b1800 nid=0x6f1b runnable [0x0000000041245000]
> java.lang.Thread.State: RUNNABLE
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:150)
> at java.net.SocketInputStream.read(SocketInputStream.java:121)
> at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
> at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
> at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
> - locked <0x00000000fa41fbc0> (a java.io.InputStreamReader)
> at java.io.InputStreamReader.read(InputStreamReader.java:184)
> at java.io.BufferedReader.fill(BufferedReader.java:154)
> at java.io.BufferedReader.readLine(BufferedReader.java:317)
> - locked <0x00000000fa41fbc0> (a java.io.InputStreamReader)
> at java.io.BufferedReader.readLine(BufferedReader.java:382)
> at org.jboss.byteman.agent.submit.Submit$Comm.readResponse(Submit.java:931)
> at org.jboss.byteman.agent.submit.Submit.submitRequest(Submit.java:780)
> at org.jboss.byteman.agent.submit.Submit.addScripts(Submit.java:595)
> at org.jboss.byteman.agent.submit.Submit.addRulesFromFiles(Submit.java:547)
> at org.jboss.byteman.contrib.bmunit.BMUnit.loadScriptFile(BMUnit.java:305)
> at org.jboss.byteman.contrib.bmunit.BMUnitRunner$5.evaluate(BMUnitRunner.java:248)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
> at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
> at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
> at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:78)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
> "VM Thread" prio=10 tid=0x000000001d736000 nid=0x6f1e runnable
> "GC task thread#0 (ParallelGC)" prio=10 tid=0x000000001d6bf800 nid=0x6f1c runnable
> "GC task thread#1 (ParallelGC)" prio=10 tid=0x000000001d6c1000 nid=0x6f1d runnable
> "VM Periodic Task Thread" prio=10 tid=0x000000001d7ad800 nid=0x6f25 waiting on condition
> JNI global references: 3087
> Heap
> PSYoungGen total 29376K, used 854K [0x00000000fdeb0000, 0x0000000100000000, 0x0000000100000000)
> eden space 24576K, 3% used [0x00000000fdeb0000,0x00000000fdf85bc0,0x00000000ff6b0000)
> from space 4800K, 0% used [0x00000000ffb50000,0x00000000ffb50000,0x0000000100000000)
> to space 4736K, 0% used [0x00000000ff6b0000,0x00000000ff6b0000,0x00000000ffb50000)
> ParOldGen total 68288K, used 8371K [0x00000000f9c00000, 0x00000000fdeb0000, 0x00000000fdeb0000)
> object space 68288K, 12% used [0x00000000f9c00000,0x00000000fa42cea8,0x00000000fdeb0000)
> PSPermGen total 83968K, used 78621K [0x00000000f4a00000, 0x00000000f9c00000, 0x00000000f9c00000)
> object space 83968K, 93% used [0x00000000f4a00000,0x00000000f96c7478,0x00000000f9c00000)
> {noformat}
--
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
11 years, 8 months
[JBoss JIRA] (JBTM-1598) version tags missed for all the sub-components
by Gytis Trikleris (JIRA)
[ https://issues.jboss.org/browse/JBTM-1598?focusedWorklogId=12428940&page=... ]
Gytis Trikleris logged work on JBTM-1598:
-----------------------------------------
Author: Gytis Trikleris
Created on: 04/Apr/13 9:31 AM
Start Date: 04/Apr/13 9:31 AM
Worklog Time Spent: 1 hour, 30 minutes
Issue Time Tracking
-------------------
Time Spent: 1 hour, 30 minutes
Worklog Id: (was: 12428940)
> version tags missed for all the sub-components
> ----------------------------------------------
>
> Key: JBTM-1598
> URL: https://issues.jboss.org/browse/JBTM-1598
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Build System
> Reporter: Weinan Li
> Assignee: Gytis Trikleris
> Priority: Critical
> Fix For: 4.17.4, 5.0.0.M3
>
> Original Estimate: 1 hour
> Time Spent: 1 hour, 30 minutes
> Remaining Estimate: 1 hour
>
> Hi Tom, the problem I've found is that all the dependencies of its own components are lack of version section. For example:
> {code}
> <dependencies>
> <dependency>
> <groupId>org.jboss.jbossts</groupId>
> <artifactId>common</artifactId>
> </dependency>
> </dependencies>
> {code}
> Should be:
> {code}
> <dependencies>
> <dependency>
> <groupId>org.jboss.jbossts</groupId>
> <artifactId>common</artifactId>
> <version>${project.version}</version>
> </dependency>
> </dependencies>
> {code}
> Could you please help to add these tags? Thanks!
--
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
11 years, 8 months
[JBoss JIRA] (JBTM-1556) provide way for Synchronization.afterCompletion callee to know if the Reaper thread is calling
by Scott Marlow (JIRA)
[ https://issues.jboss.org/browse/JBTM-1556?page=com.atlassian.jira.plugin.... ]
Scott Marlow commented on JBTM-1556:
------------------------------------
Regarding the question about what I meant by the "remote thread" case:
{quote}
<tomjenkinson> smarlow: AS1:EJB1 enlists JPA(XAR1) then calls AS2:EJB2 over JTS
<tomjenkinson> smarlow: AS2:EJB2 enlists JPA(XAR2) this is done by a jacorb request processor thread at random
<tomjenkinson> smarlow: AS1:EJB1 calls commit on the transaction, JPA(XAR1) afterCompletion is handled in the same thread as before - this is fine - but then the call to AS2 to commit the transaction goes over a different jacorb request processor, now afterCompletion in AS2 is done by a different thread
{quote}
The above doesn't raise any concurrency concerns since there is no (active) application thread on AS2 at the time that AS2 invokes the Synchronization.afterCompletion.
Another case, would be similar to the above but with one difference.
AS1:EJB1 enlists JPA(XAR1) then loops on calling AS2:EJB2 over JTS
AS2:EJB2 enlists JPA(XAR2) and does processing and returns
Looping continues until the transaction times out while current application execution is in AS2:EJB2 or just in AS1:EJB1.
I don't think that only checking the reaper thread name covers when the transaction times out when the application thread of execution, is in AS2:EJB2.
Question 1: Does the root coordinator (AS1) reaper always handle transaction timeout or can the subordinate coordinator (AS2) reaper also handle transaction timeout?
I'm not sure how the subordinate coordinator would handle timeout (maybe by sending an out of band message to its parent coordinator that propagates up to the root coordinator?) Even so, it would be chaotic to have multiple coordinators cancelling the transaction at the same time.
Regarding the idea of having globally searchable "being cancelled" (I assume you mean by the reaper) list, sounds better than my current "reaper thread" name check. The globally searchable list would also cover the second (above) case when the application execution is in AS2:EJB2 while (concurrently) an AS2 background orb thread sees the cancel message from the root coordinator.
> provide way for Synchronization.afterCompletion callee to know if the Reaper thread is calling
> ----------------------------------------------------------------------------------------------
>
> Key: JBTM-1556
> URL: https://issues.jboss.org/browse/JBTM-1556
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Transaction Core
> Affects Versions: 4.17.3
> Reporter: Scott Marlow
> Assignee: Tom Jenkinson
> Fix For: 4.17.4, 5.0.0.M3
>
>
> When the Synchronization.afterCompletion is invoked for EE JPA containers, knowledge of whether the current thread is the Reaper thread (cancelling the transaction from a background thread).
> The fix to this jira will help with handling the [JPA 2.1 container concurrency requirements|http://java.net/projects/jpa-spec/lists/jsr338-experts/archi...].
> Please implement the solution makes the most sense to you, as this will introduce an additional dependency between other systems and JBossTM/JBossTS that depend on the solution, that will likely be around for a long time.
--
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
11 years, 8 months
[JBoss JIRA] (JBTM-1598) version tags missed for all the sub-components
by Gytis Trikleris (JIRA)
[ https://issues.jboss.org/browse/JBTM-1598?page=com.atlassian.jira.plugin.... ]
Work on JBTM-1598 started by Gytis Trikleris.
> version tags missed for all the sub-components
> ----------------------------------------------
>
> Key: JBTM-1598
> URL: https://issues.jboss.org/browse/JBTM-1598
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Build System
> Reporter: Weinan Li
> Assignee: Gytis Trikleris
> Priority: Critical
> Fix For: 4.17.4, 5.0.0.M3
>
> Original Estimate: 1 hour
> Remaining Estimate: 1 hour
>
> Hi Tom, the problem I've found is that all the dependencies of its own components are lack of version section. For example:
> {code}
> <dependencies>
> <dependency>
> <groupId>org.jboss.jbossts</groupId>
> <artifactId>common</artifactId>
> </dependency>
> </dependencies>
> {code}
> Should be:
> {code}
> <dependencies>
> <dependency>
> <groupId>org.jboss.jbossts</groupId>
> <artifactId>common</artifactId>
> <version>${project.version}</version>
> </dependency>
> </dependencies>
> {code}
> Could you please help to add these tags? Thanks!
--
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
11 years, 8 months