[Bucardo-general] Problem with Bucardo tests

Giulio Harding giulio.harding at mnetcorporation.com
Thu Feb 21 13:20:02 UTC 2008


Hi all, I've just come across Bucardo, and its tantalizing promise of  
(relatively) easy-to-use multi master replication for postgres, so  
I've decided to take it out for a spin :)

However, I'm having some trouble running the Bucardo tests. This is  
on a Centos 4.6 x86-64 server with PostgreSQL 8.3 (PGDG rpms) and  
Bucardo 3.0.8 fresh from the website. Each time I run the tests I get  
a failure at a different location. For example, using 'time make test  
TEST_VERBOSE=1 BUCARDO_KEEP_OLD_DEBUG=1 BUCARDO_TESTBAIL=1':

First run:
----------

...
ok 374 - (fullcopy) Table droptest is empty on remote database   
[line: 2588]
ok 375 - (fullcopy) Second table bucardo_test1 still empty before  
kick  [line: 2594]
ok 376 - (fullcopy) Second table bucardo_test1 got the fullcopy row  
[line: 2600]
ok 377 - (fullcopy) Triggers and rules did NOT fire on remote table   
[line: 2604]
ok 378 - (fullcopy) After insert, trigger and rule both populate  
droptest table  [line: 2624]
ok 379 - (fullcopy) Table droptest is empty on remote database   
[line: 2628]
not ok 380 - (fullcopy) Second table bucardo_test1 got the fullcopy  
row [line: 2634]
Bailout called.  Further testing stopped:  Stopping on a failed  
'is_deeply' test from line 1265. Time: 1203597611
Stopping on a failed 'is_deeply' test from line 1265. Time: 1203597611

#   Failed test '(fullcopy) Second table bucardo_test1 got the  
fullcopy row [line: 2634]'
#   at t/01bc.t line 1188.
#     Structures begin differing at:
#          $got->[1] = Does not exist
#     $expected->[1] = ARRAY(0x18cb750)
# GOT: [['1']]
# EXPECTED: [[1],[2]]
#
# Leaving, shutting down any running processes
make: *** [test_dynamic] Error 1

Second run:
-----------

...
ok 360 - (fullcopy) After insert, trigger and rule both populate  
droptest table  [line: 2584]
ok 361 - (fullcopy) Table droptest is empty on remote database   
[line: 2588]
ok 362 - (fullcopy) Second table bucardo_test0 still empty before  
kick  [line: 2594]
ok 363 - (fullcopy) Second table bucardo_test0 got the fullcopy row  
[line: 2600]
ok 364 - (fullcopy) Triggers and rules did NOT fire on remote table   
[line: 2604]
ok 365 - (fullcopy) After insert, trigger and rule both populate  
droptest table  [line: 2624]
ok 366 - (fullcopy) Table droptest is empty on remote database   
[line: 2628]
Bailout called.  Further testing stopped:  bucardo_ctl was not  
invoked: is the bucardo.test.helper file running? (command=kick  
copytest 0)
bucardo_ctl was not invoked: is the bucardo.test.helper file running?  
(command=kick copytest 0)
#
# Leaving, shutting down any running processes
make: *** [test_dynamic] Error 1

- This time there's some bucardo perl processes left over:

[11:54 PM] nyx /tmp/Bucardo/Bucardo-3.0.8 -$ ps -ef | grep bucardo
1056      3675     1  0 23:42 pts/0    00:00:00 /usr/bin/perl t/ 
bucardo.test.helper
1056      4010  3675  0 23:47 pts/0    00:00:00 /usr/local/bin/perl  
-- -*-cperl-*- ./bucardo_ctl kick copytest 0 --dbname=bucardo_test -- 
dbuser=bucardo_test --dbpass=pie --ctlquiet --debugstderr=0 -- 
debugstdout=0 --debugfile=1 --verbose=1 --sendmail=0 --cleandebugs=0  
--debugdir=. --extraname=bctest_giulio.harding --dbport=5432
postgres  4011  9232  0 23:47 ?        00:00:00 postgres:  
bucardo_test bucardo_test [local] idle
1056      4132 20894  0 23:54 pts/0    00:00:00 grep bucardo

- I tried stracing the remaining perl process, which appears to be  
stuck waiting for something (waiting for data on a socket?)

[11:55 PM] nyx /tmp/Bucardo/Bucardo-3.0.8 -$ strace -p 4010
Process 4010 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>) = 0
nanosleep({0, 0}, NULL)                 = 0
gettimeofday({1203598558, 423429}, NULL) = 0
time(NULL)                              = 1203598558
time(NULL)                              = 1203598558
recvfrom(4, 0xa9ad60, 16384, 0, 0, 0)   = -1 EAGAIN (Resource  
temporarily unavailable)
gettimeofday({1203598558, 423673}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
nanosleep({0, 0}, NULL)                 = 0
gettimeofday({1203598559, 426683}, NULL) = 0
time(NULL)                              = 1203598559
time(NULL)                              = 1203598559
recvfrom(4, 0xa9ad60, 16384, 0, 0, 0)   = -1 EAGAIN (Resource  
temporarily unavailable)
gettimeofday({1203598559, 426916}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
nanosleep({0, 0}, NULL)                 = 0
gettimeofday({1203598560, 432884}, NULL) = 0
time(NULL)                              = 1203598560
time(NULL)                              = 1203598560
recvfrom(4, 0xa9ad60, 16384, 0, 0, 0)   = -1 EAGAIN (Resource  
temporarily unavailable)
gettimeofday({1203598560, 433125}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
nanosleep({0, 0}, NULL)                 = 0
gettimeofday({1203598561, 440248}, NULL) = 0
time(NULL)                              = 1203598561
time(NULL)                              = 1203598561
recvfrom(4, 0xa9ad60, 16384, 0, 0, 0)   = -1 EAGAIN (Resource  
temporarily unavailable)
gettimeofday({1203598561, 440492}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0},  <unfinished ...>
Process 4010 detached

Third run:
----------

...
ok 386 - (fullcopy) After insert, trigger and rule both populate  
droptest table  [line: 2584]
ok 387 - (fullcopy) Table droptest is empty on remote database   
[line: 2588]
ok 388 - (fullcopy) Second table bucardo_test2 still empty before  
kick  [line: 2594]
ok 389 - (fullcopy) Second table bucardo_test2 got the fullcopy row  
[line: 2600]
ok 390 - (fullcopy) Triggers and rules did NOT fire on remote table   
[line: 2604]
ok 391 - (fullcopy) After insert, trigger and rule both populate  
droptest table  [line: 2624]
ok 392 - (fullcopy) Table droptest is empty on remote database   
[line: 2628]
Bailout called.  Further testing stopped:  bucardo_ctl was not  
invoked: is the bucardo.test.helper file running? (command=kick  
copytest 0)
bucardo_ctl was not invoked: is the bucardo.test.helper file running?  
(command=kick copytest 0)
#
# Leaving, shutting down any running processes
make: *** [test_dynamic] Error 1

So communications between the test processes and the test helper  
seems to die at some point, but beyond that I'm not sure what's going  
on :(

Any ideas? Let me know if any additional details are required...

Cheers,

--
Giulio Harding
Systems Administrator

m.Net Corporation
Level 2, 8 Leigh Street
Adelaide SA 5000, Australia

Tel: +61 8 8210 2041
Fax: +61 8 8211 9620
Mobile: 0432 876 733
Yahoo: giulio.harding
MSN: giulio.harding at mnetcorporation.com

http://www.mnetcorporation.com


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2451 bytes
Desc: not available
Url : https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20080221/123690ed/attachment.bin 


More information about the Bucardo-general mailing list