[Xapian-discuss] Perl threads and Xapian - incompatibility?

Ron Kass ron at pidgintech.com
Fri Oct 19 01:15:52 BST 2007

Try the following code:

    #!/usr/bin/perl -W

    use strict;
    use threads;
    use Search::Xapian;
    my $Xapian_DB =

    my $Thr1 = threads->create(sub{print "1\n"});
    my $Thr2 = threads->create(sub{print "2\n"});
    my $Thr3 = threads->create(sub{print "3\n"});
    print "joins #1\n";
    print "joins #2\n";
    print "joins #3\n";

here is what we get: # perl tst.pl

    joins #1
    joins #2
    Segmentation fault  

Setting: Xapian 1.0.3 (flint backend), perl 5.8.8, threads 1.67

Notice that ALL it takes is an open Xapian DB. It doesn't have to be a 
writable one btw.
You can replace the line with a [my $Xapian_DB = 
Search::Xapian::Database->new("test");] if you already have a test 
database in place. Same error.
Notice that the bug happens on the SECOND call to a thread instance. It 
can be a call to the detach method [->detach();].. same error.
Anyone saw this bug? Any patches for that one?

Best regards,

More information about the Xapian-discuss mailing list