Chord is a state-of-the-art static race detection tool for Java that we have used to find tens to hundreds of serious and previously unknown concurrency bugs in several large, widely used, open source programs.

Chord, a static analysis framework for Java, is now available. The static race detector will be integrated into the framework in the near future.

Case Studies

The following table provides links to the output of Chord on 12 Java programs, along with our analysis of the output, developers' responses, and the resolution of bugs we reported.

The number of bugs in column 4 denotes the number of distinct fixes to the source code.

The discussions in column 5 are the most accurate description of the bugs. (Bug reports in column 6 were filed for some projects but not for others because developers of some projects chose to fix the bugs discussed in column 5 without filing bug reports.)

Programs with "N.A." in columns 5 and 6 have been analyzed in previous work on race detection.

More details may be found in a technical paper.

Chord output Program description LOC # Bugs Discussions with developers Bugs filed
vect 1.1 JDK 1.1 java.util.Vector 2632 1 N.A. N.A.
htbl 1.1 JDK 1.1 java.util.Hashtable 2688 0 N.A. N.A.
htbl 1.4 JDK 1.4 java.util.Hashtable 75342 0 N.A. N.A.
vect 1.4 JDK 1.4 java.util.Vector 75675 0 N.A. N.A.
tsp Traveling Salesman Problem implementation from ETH 76026 1 N.A. N.A.
hedc web crawler from ETH 82992 1 N.A. N.A.
ftp Apache FTP Server, an FTP server 103183 12 1, 2, 3 1
jdbm JDBM, a lightweight transactional persistence engine 115364 2 1 none
jdbf JdbF, an object-relational mapping system 121569 18 1, 2 1, 2, 3, 4, 5
pool Apache Commons Pool, a generic object-pooling library 123878 17 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 1, 2, 3, 4, 5
jtds jTDS, a JDBC driver 164820 16 1 none
derby Apache Derby, an RDBMS 646447 319 1, 2, 3, 4 1


Papers


Talks


People


Acknowledgments

The Chord project is supported by grants from the National Science Foundation, an equipment grant from Intel, and a Microsoft graduate student fellowship.

Contact

Please send questions and comments about the Chord project to <chord@cs.stanford.edu>.