Michael loves building software; he's been building search engines for more than a decade, and has been working on Lucene as a committer, PMC member and Apache member, for the past few years. He's co-author of the recently published Lucene in Action, 2nd edition. In his spare time Michael enjoys building his own computers, writing software to control his house (mostly in Python), encoding videos and tinkering with all sorts of other things. Michael is a DZone MVB and is not an employee of DZone and has posted 49 posts at DZone. You can read more from them at their website. View Full User Profile

The Invisible Lucene bug fixed point

  • submit to reddit
It turns out, the Jira issue tracking system, which we make heavy use of here at Apache, uses Lucene under the hood for searching and browsing issues. This is wonderful since it means Lucene developers are eating their own dog food whenever they use Jira.

Atlassian has opened up some doozy bugs over time, including one of the earliest bug numbers I've ever worked on, LUCENE-140. They sent me a t-shirt for fixing that one (thank you!).

Now, imagine this: what if there were a sneaky bug in Lucene, say a certain text fragment that causes an exception during indexing. A user opens an issue to report this, including the problematic text fragment, yet, because Jira uses Lucene, it hits an exception while indexing that fragment and causes this one bug to be un-searchable and un-viewable when browsing! An invisible bug fixed point.

It's somewhat mind bending to think about, Lucene recursing on itself through Jira, yet it's theoretically possible! Maybe we have a few of invisible bug fixed points lurking already and nobody knows...
Published at DZone with permission of Michael Mccandless, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Danny Lee replied on Tue, 2011/06/21 - 10:11am

This one is brilliant! :)

Matt Doar replied on Tue, 2011/06/21 - 7:44pm

Yup, that's possible. But what would I do in practice if this happened? I'd add the fragment as an attachment, which aren't indexed by JIRA. One more level of indirection fixes many things.

Sirikant Noori replied on Sun, 2012/01/15 - 12:45pm

While we haven't seen one with Lucene in particular, the overall pattern has definitely been seen a few times. There was one very recently where we specifically had a reported case on our production server and somehow the bug regressed, bringing down our production server! Someone who didn't write a unit-test got found out that time…

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.