Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to reproduce synchronization issues mentioned in #1078 #1083

Closed
jonmathews-ensoft opened this issue Dec 21, 2018 · 1 comment
Closed
Labels

Comments

@jonmathews-ensoft
Copy link

jonmathews-ensoft commented Dec 21, 2018

Would be great if you tell me how to reproduce the stated exceptions still.

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

@mbenz89
Copy link
Contributor

mbenz89 commented Sep 3, 2019

fixed by #1191

@mbenz89 mbenz89 closed this as completed Sep 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants