[Xapian-discuss] Re: Search::Xapian::WritableDatabase SIGABRT?
Eric Parusel
eparusel at creativens.com
Wed Dec 8 08:48:58 GMT 2004
Olly Betts wrote:
> Or you could use quartzcompact to copy them. That's much faster than
> copydatabase (it copies at the Btree level rather than document by
> document), but you end up with a database with full compaction which
> means that updates will be slower for a while as every updated block
> will need to be split.
Hmm, I tried quartzcompact twice, and both times it seemingly is paused
or stopped at the same point? (destination db at 612M of content)
# du -sh t-2004*
4.5G t-2004
612M t-2004-compact2
612M t-2004-compact
root 25128 75.4 0.2 4436 2080 pts/2 RN 00:00 23:48
quartzcompact t-2004 t-compact2
It's been running for 20 minutes so far (99% cpu) without a change in
destination db size... is this normal? I have killed it, but would
it have continued writing if I had left it for longer? (Xeon 2.8Ghz)
Uh oh...
------snip------
#dmesg
...
megaraid: aborting-1770320103 cmd=2a <c=0 t=0 l=0>
megaraid: abort sequence successfully completed.
megaraid: aborting-1770320104 cmd=2a <c=0 t=0 l=0>
megaraid: abort sequence successfully completed.
megaraid: aborting-1770320105 cmd=2a <c=0 t=0 l=0>
megaraid: abort sequence successfully completed.
megaraid: reset-1770320061 cmd=28 <c=0 t=0 l=0>
megaraid: reservation reset failed.
megaraid: reset sequence successfully completed.
------snip------
Not sure on the timing of these messages. (
Judging by the fact that my array is now set as degraded doesn't sit
well with me in terms of data corruption.
I forced the failed disk to Online and am now performing a consistency
check (and a fsck after that)...
This may be a source of corruption potentially.
Fortunately if required I can rebuild all xapian db's from the original
data source.
>>As for the Perl bindings not returning the exception, what can I do to
>>get Perl to not kick the bucket in these cases?
>
> I've had a quick look. I added a new testcase which tries to open
> the same database for writing twice, and checks it got an exception
> the second time. And this works for me!
>
> So I don't know why you're getting SIGABRT. I've attached the testcase
> - just stick it in Search-Xapian-0.8.3.1/t with the other ".t" files and
> run "make test" in Search-Xapian-0.8.3.1 to run all the tests.
Output:
# make test
PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib
-I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -e 'use Test::Harness
qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/create.......ok
t/document.....ok
t/exception....dubious
Test returned status 0 (wstat 6, 0x6)
DIED. FAILED test 4
Failed 1/4 tests, 75.00% okay
t/index........dubious
Test returned status 0 (wstat 6, 0x6)
DIED. FAILED tests 21-40
Failed 20/40 tests, 50.00% okay
t/parser.......ok
t/search.......ok 24/72# Failed test (t/search.t at line 62)
t/search.......NOK 47# got: '0'
# expected: '2'
t/search.......dubious
Test returned status 0 (wstat 11, 0xb)
DIED. FAILED tests 47, 52-72
Failed 22/72 tests, 69.44% okay
t/tied.........Can't call method "get_docid" on an undefined value at
t/tied.t line 31.
t/tied.........dubious
Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-6
Failed 6/6 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/exception.t 0 6 4 2 50.00% 4
t/index.t 0 6 40 40 100.00% 21-40
t/search.t 0 11 72 43 59.72% 47 52-72
t/tied.t 2 512 6 10 166.67% 1-6
Failed 4/7 test scripts, 42.86% okay. 49/147 subtests failed, 66.67% okay.
make: *** [test_dynamic] Error 11
#
Hmm. not good.
Without exception.t in /t all tests succeed.
Thanks,
Eric
More information about the Xapian-discuss
mailing list