[Xapian-discuss] Search::Xapian::WritableDatabase SIGABRT?

Eric Parusel eparusel at creativens.com
Mon Dec 6 21:49:53 GMT 2004


Hello,

	On certain xapian dbs (my two largest ones, hrm) I cannot
write data to them anymore, without my import perl script aborting...

Searches on both these dbs seemingly work fine.


Size of files in each of those db's: (z-2004, and t-2004 fails, the rest 
work fine)
844M    i-2004
877M    g-2004
890M    a-2004
1.3G    z-2004
4.5G    t-2004

t-2004 file listing:
          0 Dec  6 13:13 db_lock
         10 Oct 27 14:40 meta
          0 Oct 27 14:40 position_DB
         17 Nov 29 23:13 position_baseA
         17 Nov 29 22:58 position_baseB
2465808384 Nov 29 23:29 postlist_DB
      37643 Nov 29 23:13 postlist_baseA
   15122432 Nov 29 23:28 record_DB
        223 Nov 29 23:13 record_baseA
2304335872 Nov 29 23:28 termlist_DB
      35186 Nov 29 23:13 termlist_baseA
          0 Oct 27 14:40 value_DB
         17 Nov 29 23:13 value_baseA
         17 Nov 29 22:58 value_baseB


Here is the perl script snippet where it crashes (notice that it's in an 
eval{} block, to no avail)
The first print() is printed, the 2nd print() is not, it crashes before 
it exits the eval block it seems.

==========================================================
# Open Xapian DB
print "\nTRY #" . $count . "\n";
eval {
    $dbobject = Search::Xapian::WritableDatabase->new(
                   $xapian_db_path,
                   Search::Xapian::DB_CREATE_OR_OPEN);
};
print "Connected\n";
==========================================================

Once it "crashes" it leaves a db_lock file.

I can email the straces I took for both dbs, without db_lock and with 
db_lock already present, if requested...

both states result in an abort.


Also, here is perl debugging output, it might be obvious, but it crashes 
  while on the $database = new1( @_ ); line, could it be an issue with 
Search::Xapian?
I am currently using version 0.8.3.1 (confirmed by print 
$Search::Xapian::VERSION).

==========================================================
main::open_xapian_db(ak.pl:450):              print "\nTRY #" . $count . 
"\n";
   DB<1>

TRY #1
main::open_xapian_db(ak.pl:451):              eval {
   DB<1>
main::open_xapian_db(ak.pl:452):                 $dbobject = 
Search::Xapian::WritableDatabase->new(
main::open_xapian_db(ak.pl:453): 
              $xapian_db_path,
main::open_xapian_db(ak.pl:454): 
              Search::Xapian::DB_CREATE_OR_OPEN);
   DB<1>
Search::Xapian::DB_CREATE_OR_OPEN(/usr/local/lib/perl/5.6.1/Search/Xapian.pm:65535):
65535:
   DB<1>
Search::Xapian::WritableDatabase::new(/usr/local/lib/perl/5.6.1/Search/Xapian/WritableDatabase.pm:37):
37:       my $class = shift;
   DB<1>
Search::Xapian::WritableDatabase::new(/usr/local/lib/perl/5.6.1/Search/Xapian/WritableDatabase.pm:38):
38:       my $database;
   DB<1>
Search::Xapian::WritableDatabase::new(/usr/local/lib/perl/5.6.1/Search/Xapian/WritableDatabase.pm:39):
39:       my $invalid_args;
   DB<1>
Search::Xapian::WritableDatabase::new(/usr/local/lib/perl/5.6.1/Search/Xapian/WritableDatabase.pm:40):
40:       if( scalar(@_) == 1 ) {
   DB<1>
Search::Xapian::WritableDatabase::new(/usr/local/lib/perl/5.6.1/Search/Xapian/WritableDatabase.pm:49):
49:         $database = new1( @_ );
   DB<1>
Aborted
==========================================================

Thanks for any help that can be offered,
Eric





More information about the Xapian-discuss mailing list