codespecs / daikon

Dynamic detection of likely invariants
http://plse.cs.washington.edu/daikon/
Other
214 stars 54 forks source link

Add compare decls to DtraceDiff #528

Closed markro49 closed 7 months ago

markro49 commented 9 months ago

add compare decls to DtraceDiff and corresponding goal file changes

markro49 commented 8 months ago

I spent a lot of time investigating the nondeterminism problem with daikon-tests/Graph. The symptom is that two classes are loaded in a different order. You can run the test case multiple times in a row and the results will vary back and forth. I tried numerous Java loader options, adding lots of debugging code to Instrument.java and using additional features of the Java Instrumentation interface. All to no avail. I have spent too much time on this issue so I will just leave in the testing Makefile changes that skip the verification of the Graph.txt-chicory.dtrace file

mernst commented 7 months ago

@markro49 Are the contents of Graph.txt-chicory.dtrace the same, just in a different order? Or does the difference in loading order cause behavioral differences? Also, what are the classes that are loaded in a nondeterministic order?

markro49 commented 7 months ago

The results are the same, just in a different order. The two classes that get loaded in different order are the public class Exceptions ones at the end of the file. I think it was NoNodeException and DuplicateNodeException; but I don't remember for sure. It was always the same two whose order differed.

mernst commented 7 months ago

@markro49 There is some missing documentation:

/__w/1/s/java/daikon/tools/DtraceDiff.java:63: warning: no comment
/__w/1/s/java/daikon/tools/DtraceDiff.java:65: warning: no comment
/__w/1/s/java/daikon/tools/DtraceDiff.java:466: warning: no comment