Brussels / 30 & 31 January 2016


Bug hunting with Apache Lucene

When Oracle released Java 7 GA, it contained a serious loop optimization bug, affecting Apache projects like Lucene, Solr, or Elasticsearch. Since that time, the Apache Lucene team works together with the Oracle and OpenJDK developers to test early-access releases with Apache Lucene's codebase. Due to Apache Lucene's heavy, low level code with many tight loops and unusual code patterns, it is an ideal testing environment for the Hotspot optimizer. Loops, iterators, and bitset operations are executed millions of times per full text query to execute finite state automata, collect and filter results, and sort them. Bugs caused by mis-compilation of code that are hard to reproduce in isolation can be easily reproduced with Lucene. In addition, Lucene uses a pseudo-randomized testing infrastructure triggering different Hotspot optimizations on each test execution. In this talk, Uwe will show the current state of Java 9 EA testing. He will also present the problems caused by hard to reproduce issues, e.g. occurred after the changes to arraycopy or AVX optimizations in Hotspot.


Photo of Uwe Schindler Uwe Schindler