codespecs / daikon

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

Daikon Failed to Execute when Using runcluster.pl with kmeans Option #537

Open yuan-xia opened 5 months ago

yuan-xia commented 5 months ago

Thanks for submitting an issue. As noted in the instructions for submitting an issue at https://plse.cs.washington.edu/daikon/download/doc/daikon.html#Reporting-problems, please include at least the following with your report:

The output of java -version: java version "17.0.2" 2022-01-18 LTS Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86) Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

the operating system version: macOS 10.15.7

I attempt to use Daikon on csv file and generate all invariants it had. So the input is samples.csv file and I convert it into samples.dtrace and samples.decls. It runs successfully if I just apply Daikon on these two files. Commands are following:


(base) MacBook-Pro-4:scripts yuanxia$ ./convertcsv.pl samples.csv 
Died at ./runcluster.pl line 261.
(base) MacBook-Pro-4:scripts yuanxia$ java -cp $DAIKONDIR/daikon.jar daikon.Daikon --nohierarchy samples.decls samples.dtrace
Daikon version 5.8.16, released November 9, 2022; http://plse.cs.washington.edu/daikon.
(read 1 decls file)                                                            
Processing trace data; reading 1 dtrace file:                                  
[2024-03-26T19:21:07.391345]: Finished reading samples.dtrace                  
===========================================================================    
aprogram.point:::POINT
list_length >= 0.0
gateAdd1 one of { 0.0, 1.0 }
gateAdd2 one of { 0.0, 1.0 }
Exiting Daikon.
(base) MacBook-Pro-4:scripts yuanxia$ 

HOWEVER, Daikon kmeans does not work for samples.csv. Commands are following:

(base) MacBook-Pro-4:kmeans yuanxia$ make
make: Nothing to be done for `all'.
(base) MacBook-Pro-4:kmeans yuanxia$ nano ~/.bash_profile
Add three lines to the bash_profile:
export PATH="/Users/yuanxia/Documents/Github/daikonparent/daikon-5.8.16/tools/kmeans/kmeans:$PATH"
export CLASSPATH=$DAIKONDIR/daikon.jar:$CLASSPATH
alias kmeans='/Users/yuanxia/Documents/Github/daikonparent/daikon-5.8.16/tools/kmeans/kmeans'
(base) MacBook-Pro-4:kmeans yuanxia$ source ~/.bash_profile
(base) MacBook-Pro-4:scripts yuanxia$ ./convertcsv.pl samples.csv 
(base) MacBook-Pro-4:scripts yuanxia$ ./runcluster.pl -a km -k 2 samples.decls samples.dtrace
logging to file dtrace-add-cluster.log
filename=aprogram.point.POINT.ru_temp.cluster
Reading from samples.dtrace

No samples found for any of 1 program point
Failed executing java -Xmx3600m daikon.Daikon -o runcluster_temp_km-2.inv --config_option daikon.PptTopLevel.pairwise_implications=true --var-omit-pattern="class" --no_text_output --no_show_progress runcluster_temp.spinfo  _runcluster_temp.decls  samples_runcluster_temp.dtrace 2>&1 > runcluster_temp_Daikon_output.txt at ./runcluster.pl line 206.

I have run makefile in kmeans folder before and make kmeans as a command to execute. I inspected into the files and found _samples_runcluster_temp.dtrace, runcluster_temp.spinfo and _runclustertemp.decls are all empty files. samples.decls and samples.dtrace are files generated by convertcsv.pl. Could you give me some suggestions or answers why Daikon fails to find invariants? I have attached samples.csv and its corresponding files for your convenience. samples.csv samples.inv.gz