You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here are instructions for reproducing the synchronization issues mentioned in the recently merged #1078. The issues were mitigated by adding 'synchronized' to LambdaMetaFactory.makeLambdaHelper(). I suspect that several data structures in Scene need to be synchronized, at which point makeLambdaHelper probably does not need to be synchronized itself.
To reproduce, start by removing 'synchronized' from makeLambdaHelper.
Then, convert the class files in the attached Eclipse project to Jimple text. The source code is included for reference. In order to increase the time in the critical section I had to make copies of two classes. It still does not throw exceptions every time, but if you run it ten times you should see both kinds of stack traces (also attached).
I included the Eclipse launch profile, which has the following arguments:
Originally posted by @mbenz89 in #1078 (comment)
Here are instructions for reproducing the synchronization issues mentioned in the recently merged #1078. The issues were mitigated by adding 'synchronized' to LambdaMetaFactory.makeLambdaHelper(). I suspect that several data structures in Scene need to be synchronized, at which point makeLambdaHelper probably does not need to be synchronized itself.
To reproduce, start by removing 'synchronized' from makeLambdaHelper.
Then, convert the class files in the attached Eclipse project to Jimple text. The source code is included for reference. In order to increase the time in the critical section I had to make copies of two classes. It still does not throw exceptions every time, but if you run it ten times you should see both kinds of stack traces (also attached).
I included the Eclipse launch profile, which has the following arguments:
--java-version 1.8 --f J --p jb stabilize-local-names:true --d ${project_loc:lmf-concurrency}/j1 --cp ${project_loc:lmf-concurrency}/bin:${soot_jdk8_classpath} --process-dir ${project_loc:lmf-concurrency}/bin
Note that ${soot_jdk8_classpath} is the list of jdk8 jars for your machine. You can either replace the variable or define it.
lmf-concurrency.zip
stack1.txt
stack2.txt
The text was updated successfully, but these errors were encountered: