Transaction Exception

56 views
Skip to first unread message

Kevin Burns

unread,
Nov 30, 2012, 2:56:16 PM11/30/12
to deuce-stm-...@googlegroups.com
Hello,

Very recently, I have been receving this after execution:

Exeption in thread "Thread-1" org.deuce.transaction.TransactionException: Failed to commit the transaction in the defined retries.

I have attached a simple case where one thread tries to increment a counter 10 times. There is no contention and yet, I receive this error. As my build.sh file indicates, I am using the online instrumentation... could this be the reason why I didn't used to get this error?

I have also tried the offline implementation but when I enter this command:

java -jar deuceAgent.jar Test.jar out.jar //where Test.jar was created from the code in the attached zip.

I get this:

Nov 30, 2012 9:47:28 AM org.deuce.transform.asm.Agent transformJar
INFO: Start translating source:Test.jar target:out.jar
Nov 30, 2012 9:47:28 AM org.deuce.transform.asm.Agent transformJa
rSEVERE: Failed to translate test/Local_Counter.classjava.lang.ArrayIndexOutOfBoundsException: 37476
 at org.deuce.objectweb.asm.ClassReader.<init>(ClassReader.java:174)  
 at org.deuce.objectweb.asm.ClassReader.<init>(ClassReader.java:153)   
 at org.deuce.transform.asm.FramesCodeVisitor.visit(FramesCodeVisitor.java:39)   
 at org.deuce.transform.asm.Agent.addFrames(Agent.java:114)   
 at org.deuce.transform.asm.Agent.transform(Agent.java:70)   
 at org.deuce.transform.asm.Agent.transformJar(Agent.java:179)   
 at org.deuce.transform.asm.Agent.main(Agent.java:139)
Nov 30, 2012 9:47:28 AM org.deuce.transform.asm.Agent transformJarINFO: Closing source:Test.jar target:out.jar

I do not understand why the retries error would come about recently (it used to work perfectly fine). I have swapped out the compiled dueceAgent.jar (feshly pulled from github) with the .jar found on the Downloads page and it worked flawlessly.

Thank you for your time,
-Kevin

test.zip

Guy Korland

unread,
Nov 30, 2012, 4:39:23 PM11/30/12
to deuce-stm-...@googlegroups.com
I'm not sure I follow, do you say that the code on GitHub doesn't have this bug?

Kevin Burns

unread,
Nov 30, 2012, 5:13:17 PM11/30/12
to deuce-stm-...@googlegroups.com
I cloned the git repo and compiled the deuceAgent.jar. This results in the bug. If I download the deuceAgent-1.3.0.jar from the download page, it do not receive the bug.

Kevin Burns

unread,
Dec 1, 2012, 5:51:24 PM12/1/12
to deuce-stm-...@googlegroups.com
There seems to be a difference in the way I compile the deuceAgent.jar and the deuceAgent-1.3.0.jar (from the downloads page) is compiled. I decompress the jars and open the contents in diff. Diff shows numerous of file differences and a lot of files that exist in one jar doesn't exist in the other and vis versa.

Are there any settings or arguments I am supposed to set before running ant. Is there some documentation on the build process.

Thanks,
-Kevn

--
You received this message because you are subscribed to the Google Groups "Deuce-STM developers" group.
To view this discussion on the web visit https://groups.google.com/d/msg/deuce-stm-developers/-/QB18BQlzHCoJ.

To post to this group, send email to deuce-stm-...@googlegroups.com.
To unsubscribe from this group, send email to deuce-stm-develo...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/deuce-stm-developers?hl=en.

Guy Korland

unread,
Dec 2, 2012, 12:35:15 AM12/2/12
to deuce-stm-...@googlegroups.com
The default target on the Ant should do the job.
--
Regards,
Guy Korland

Kevin Burns

unread,
Dec 2, 2012, 3:01:45 PM12/2/12
to deuce-stm-...@googlegroups.com
Is there any documentation on how to write my own instrumented code? without using the @Atomic annotation.

Guy Korland

unread,
Dec 2, 2012, 4:16:17 PM12/2/12
to deuce-stm-...@googlegroups.com
Check the code, the inline doc explains the different steps.

Kevin Burns

unread,
Dec 4, 2012, 4:31:13 PM12/4/12
to deuce-stm-...@googlegroups.com
I have narrowed down the scope of the problem a little bit. When I use the downloaded dueceAgent-1.3.0.jar build from the website, everything works fine. However, when I build  the sources of the lastest version on github, I get:

Exception in thread "Thread-1" org.deuce.transaction.TransactionException: Failed to commit the transaction in the defined retries.

This was generated while using my simple counter test posted in the first message. However, I have now tried a linked list implementation and it works perfectly on both versions of the jars (from source and downloaded jar). I suspected that this indicated a difference in implementation... I have scanned the bytecode outputs for both tests and found no differences. Hunting through the two different jar's byte code is like hunting a needle in a hay stack, so any suggestions to narrowing this search would be greatly appreciated.

My questions are,

Which commit version in the git repository matches up with the deuceAgent-1.3.0.jar from the download page?

Are there any environmental dependencies (other than jdk version >= 1.6)?

Thanks!
-Kevin

Guy Korland

unread,
Dec 7, 2012, 1:25:12 PM12/7/12
to deuce-stm-...@googlegroups.com
I'm not sure which commit matches to 1.3 since it was while ago and I moved the code from SVN to Git.
But it seems like it should be around this commit July 2nd 2010.

There're no other dependencies that I know of, the only dependency is on ASM but it's part of the source code.

Guy

Kevin Burns

unread,
Dec 9, 2012, 10:26:03 AM12/9/12
to deuce-stm-...@googlegroups.com
Thanks! That worked! If I had to guess, the problem lies somewhere in the new commit() function. I will debug this later and will try to inform you which git commit breaks my simple counter.

Guy Korland

unread,
Dec 9, 2012, 11:36:37 AM12/9/12
to deuce-stm-...@googlegroups.com
Thanks!
--
Regards,
Guy Korland
Reply all
Reply to author
Forward
0 new messages