Opened 16 years ago

Closed 16 years ago

#382 closed defect (fixed)

Test Suite failure on OpenBSD

Reported by: Daniel Dickman Owned by: Olly Betts
Priority: normal Milestone: 1.0.14
Component: Test Suite Version: 1.0.13
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Operating System: OpenBSD

Description (last modified by Olly Betts)

I'm trying to package Xapian for OpenBSD and am seeing failures in the test suite. Here's my system info

[~] uname -mprsv 
OpenBSD 4.5 GENERIC.MP#0 i386 Intel(R) Core(TM)2 Duo CPU T7100 @ 1.80GHz ("GenuineIntel" 686-class)

[~] g++ --version 
g++ (GCC) 3.3.5 (propolice)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

And here are the results of "make check":

make  check-recursive
Making check in .
Making check in docs
Making check in tests
make  check-am
make  btreetest  quartztest apitest  internaltest stemtest  queryparsertest termgentest runtest
`btreetest' is up to date.
`quartztest' is up to date.
`apitest' is up to date.
`internaltest' is up to date.
`stemtest' is up to date.
`queryparsertest' is up to date.
`termgentest' is up to date.
`runtest' is up to date.
make  check-TESTS check-local
PASS: btreetest                                                                
PASS: quartztest                                                               
./apitest backend none: All 33 tests passed.                                   
Running test: collapsekey2... SKIPPED                                          
Running test: metadata5... SKIPPED                                             
Running test: adddoc5... SKIPPED                                               
Running test: adddoc6... SKIPPED
Running test: crashrecovery1... SKIPPED                                        
Running test: nomoredocids1... SKIPPED
Running test: synonymitor1... SKIPPED
Running test: termtoolong1... SKIPPED
./apitest backend inmemory: All 153 tests passed, 8 skipped.                   
Running test: collapsekey2... SKIPPED                                          
./apitest backend flint: All 183 tests passed, 1 skipped.                      
Running test: eliteset1... SKIPPED                                             
Running test: eliteset2... SKIPPED
Running test: eliteset4... SKIPPED                                             
Running test: eliteset5... SKIPPED
Running test: collapsekey2... SKIPPED                                          
./apitest backend multi: All 105 tests passed, 5 skipped.                      
Running test: collapsekey2... SKIPPED                                          
Running test: positfromtermit1... SKIPPED                                      
Running test: metadata1... SKIPPED                                             
Running test: metadata5... SKIPPED
Running test: synonymitor1... SKIPPED                                          
Running test: termtoolong1... SKIPPED
./apitest backend quartz: All 159 tests passed, 6 skipped.                     
Running test: collapsekey2... SKIPPED                                          
Running test: positfromtermit1... SKIPPED                                      
Running test: metadata1... SKIPPED                                             
Running test: metadata5... SKIPPED
Running test: crashrecovery1... SKIPPED                                        
Running test: synonymitor1... SKIPPED                                          
./apitest backend remoteprog: All 152 tests passed, 6 skipped.                 
Running test: collapsekey2... SKIPPED                                          
Running test: multidb4... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: multidb5... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: rsetmultidb1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: rsetmultidb3... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: rsetmultidb2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: multiexpand1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: valuerange2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: alldocspl1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: alldocspl2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: near1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: near2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: phrase1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: phrase2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: poslist1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: positfromtermit1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: poslist2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: poslist3... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: keepalive1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: netstats1... DatabaseOpeningError
Running test: badtransaction1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: committransaction1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: canceltransaction1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: canceltransaction2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: totaldoclen1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: metadata1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: metadata5... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: bigoaddvalue1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: adddoc1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: adddoc2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: adddoc3... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: adddoc4... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: adddoc5... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: adddoc6... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: implicitendsession1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: databaseassign1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: deldoc1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: deldoc2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: deldoc3... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: deldoc4... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: deldoc5... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: deldoc6... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: replacedoc1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: replacedoc2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: replacedoc3... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: replacedoc4... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: replacedoc5... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: replacedoc6... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: uniqueterm1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: allpostlist2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: emptyterm2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: phraseorneartoand1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: longpositionlist1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: consistency2... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: crashrecovery1... SKIPPED
Running test: nomoredocids1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: synonymitor1... SKIPPED
Running test: termtoolong1... EXCEPTION: Failed to get 'Listening...' from comman...
Running test: postlist7... EXCEPTION: Failed to get 'Listening...' from comman...
./apitest backend remotetcp: 99 tests passed, 56 failed, 3 skipped.
./apitest total: 884 tests passed, 56 failed, 29 skipped.
FAIL: apitest
PASS: internaltest                                                             
The random seed is 42
Please report the seed when reporting a test failure.
Running tests with danish stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with dutch stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with english stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with finnish stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with french stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with german stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with german2 stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with hungarian stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with italian stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with kraaij_pohlmann stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with lovins stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with norwegian stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with porter stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with portuguese stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with romanian stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with russian stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with spanish stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with swedish stemmer...
Running test: stemdict... SKIPPED                                              
Running tests with turkish stemmer...
Running test: stemdict... SKIPPED                                              
PASS: stemtest
Running test: qp_flag_wildcard1... SKIPPED                                     
Running test: qp_flag_wildcard2... SKIPPED
Running test: qp_flag_partial1... SKIPPED
Running test: qp_value_range3... SKIPPED                                       
PASS: queryparsertest                                                          
PASS: termgentest                                                              
=======================================
1 of 7 tests failed
Please report to http://xapian.org/bugs
=======================================
*** Error code 1

Stop in /usr/ports/textproc/xapian-core/w-xapian-core-1.0.13/xapian-core-1.0.13/tests (line 786 of Makefile).
*** Error code 1

Stop in /usr/ports/textproc/xapian-core/w-xapian-core-1.0.13/xapian-core-1.0.13/tests (line 815 of Makefile).
*** Error code 1

Stop in /usr/ports/textproc/xapian-core/w-xapian-core-1.0.13/xapian-core-1.0.13/tests (line 818 of Makefile).
*** Error code 1

Stop in /usr/ports/textproc/xapian-core/w-xapian-core-1.0.13/xapian-core-1.0.13 (line 2397 of Makefile).
*** Error code 1

Stop in /usr/ports/textproc/xapian-core/w-xapian-core-1.0.13/xapian-core-1.0.13 (line 2648 of Makefile).

Attachments (3)

results.txt (17.0 KB ) - added by Daniel Dickman 16 years ago.
requested results
backendmanager-remotetcp-clean-up-child-pids.patch (2.5 KB ) - added by Olly Betts 16 years ago.
Patch which should fix this
results2.txt (5.2 KB ) - added by Daniel Dickman 16 years ago.
new results

Download all attachments as: .zip

Change History (11)

comment:1 by Olly Betts, 16 years ago

Description: modified (diff)

Tweaking format of log.

comment:2 by Olly Betts, 16 years ago

Milestone: 1.1.2
Status: newassigned

It's probably a bug in the testsuite handling for launching xapian-tcpsrv, but it would certainly be good to resolve it (I've seen occasional failures on Debian build daemons too, but this sounds much easier to reproduce).

What's the privileged port range on OpenBSD?

What's the output from:

cd tests
./runtest ./apitest -v -bremotetcp

If it's big, it might be better to attach the log rather than to paste it in.

by Daniel Dickman, 16 years ago

Attachment: results.txt added

requested results

comment:3 by Daniel Dickman, 16 years ago

Hi, I've added a log of the output. I'm not sure how to get the port range you're after. Any thoughts about what command I could use to find out? Thanks!

comment:4 by Olly Betts, 16 years ago

Not sure how to find out, but given the log it isn't actually relevant - this seems to just be a file descriptor leak. Now I know that, it shouldn't be too hard to find.

by Olly Betts, 16 years ago

Patch which should fix this

comment:5 by Olly Betts, 16 years ago

It seems the mechanism which is supposed to clean up filedescriptors used to communicate with child processes has been broken ever since I added it (just under 2 years ago)!

The attached patch fixes this, and I think should fix the testsuite for you - can you please try it and report back?

If it does, the bug is definitely only in the test harness, so you can safely package 1.0.13 with or without this patch.

by Daniel Dickman, 16 years ago

Attachment: results2.txt added

new results

comment:6 by Daniel Dickman, 16 years ago

New results attached after applying the patch. It seems like this fixes the test suite for me. Thanks!

comment:7 by Olly Betts, 16 years ago

Milestone: 1.1.21.0.14

Thanks for confirming (and for packaging for OpenBSD!)

Fixed in trunk r12895, marking for backport for 1.0.14.

comment:8 by Olly Betts, 16 years ago

Resolution: fixed
Status: assignedclosed

Backported to 1.0 branch in r12896.

Note: See TracTickets for help on using tickets.