Bug #23151 MySQL 5.0.27 Failed make test on mysqlbinlog
Submitted: 10 Oct 2006 19:43 Modified: 19 Jan 2007 10:43
Reporter: imacat . (Basic Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Tests Severity:S7 (Test Cases)
Version:5.0.27 OS:Linux (Linux 2.6.16.29)
Assigned to: Magnus Blåudd CPU Architecture:Any

[10 Oct 2006 19:43] imacat .
Description:
    Hi.  This is imacat from Taiwan, again.  I have downloaded and tried to compile the newly-released MySQL 5.0.26.  make test failed at mysqlbinlog.

    I have tried it on 2 environments, and both failed at the same place with
the same output.  The first one is: Debian GNU/Linux 3.1r3 Sarge, Linux kernel
2.6.16.29, gcc 3.4.4, glibc 2.3.2.  The other is: Debian GNU/Linux 3.1r2 Sarge,
Linux kernel 2.6.16.14, gcc 4.0.2, glibc 2.3.5.

    My configuration is:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mysql --infodir=/usr/share/info --mandir=/usr/share/man --enable-thread-safe-client --enable-assembler --with-charset=utf8 --with-extra-charsets=all --with-unix-socket-path=/var/run/mysql/mysql.sock --with-mysqld-user=mysql --without-bench --without-readline --with-csv-storage-engine

    The failed output is:

imacat@gaya src/mysql-5.0.26 % make test
Logging: ./mysql-test-run
Installing Test Databases
Removing Stale Files
Installing Master Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/master-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Installing Slave Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/slave-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Manager disabled, skipping manager start.
Loading Standard Test Databases
Starting Tests

TEST                            RESULT
-------------------------------------------------------
alias                          [ pass ]
...
mysql_protocols                [ pass ]
mysqlbinlog                    [ fail ]

Errors are (from /usr/local/src/mysql-5.0.26/mysql-test/var/log/mysqltest-time) :
/usr/local/src/mysql-5.0.26/client/.libs/mysqlbinlog: relocation error: /usr/local/src/mysql-5.0.26/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed
(the last lines may be the most important ones)

Aborting: mysqlbinlog failed in default mode. To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
make: *** [test] Error 1
imacat@gaya src/mysql-5.0.26 %

    Hope this helps.  Please tell us if there is any problem, or if you need any more information.

How to repeat:
Always.
[11 Oct 2006 11:43] Valeriy Kravchuk
Thank you for a problem report. Please, run just this one test, and inform about the results. Like these:

openxs@suse:~/dbs/5.0/mysql-test> ./mysql-test-run mysqlbinlog
Logging: ./mysql-test-run mysqlbinlog
rm: cannot remove `/home/openxs/dbs/5.0/mysql-test/var/tmp/snapshot_9306': Is a
directory
Installing Test Databases
Removing Stale Files
Installing Master Databases
running  ../libexec/mysqld --no-defaults --bootstrap --skip-grant-tables     --b
asedir=.. --datadir=mysql-test/var/master-data --skip-innodb --skip-ndbcluster -
-skip-bdb
Installing Master Databases 1
running  ../libexec/mysqld --no-defaults --bootstrap --skip-grant-tables     --b
asedir=.. --datadir=mysql-test/var/master-data1 --skip-innodb --skip-ndbcluster
--skip-bdb
Installing Slave Databases
running  ../libexec/mysqld --no-defaults --bootstrap --skip-grant-tables     --b
asedir=.. --datadir=mysql-test/var/slave-data --skip-innodb --skip-ndbcluster --
skip-bdb
Manager disabled, skipping manager start.
Loading Standard Test Databases
Starting Tests

TEST                            RESULT
-------------------------------------------------------
mysqlbinlog                    [ pass ]
-------------------------------------------------------

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
All 1 tests were successful.

For me it works, as you can see.
[11 Oct 2006 16:45] imacat .
Dear Valeriy Kravchuk,

    Hi.  This is imacat.  Here is the result.  Please tell me if you need more information.

imacat@atlas mysql-5.0.26/mysql-test % ./mysql-test-run mysqlbinlog
Logging: ./mysql-test-run mysqlbinlog
Installing Test Databases
Removing Stale Files
Installing Master Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/master-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Installing Slave Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/slave-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Manager disabled, skipping manager start.
Loading Standard Test Databases
Starting Tests

TEST                            RESULT
-------------------------------------------------------
mysqlbinlog                    [ fail ]

Errors are (from /usr/local/src/mysql-5.0.26/mysql-test/var/log/mysqltest-time) :
/usr/local/src/mysql-5.0.26/client/.libs/mysqlbinlog: relocation error: /usr/local/src/mysql-5.0.26/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed
(the last lines may be the most important ones)

Aborting: mysqlbinlog failed in default mode. To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
imacat@atlas mysql-5.0.26/mysql-test %
[17 Oct 2006 9:52] Spunk Meyer
Hello,

Like the last time I experience the exact same problem as imacat!
Exact same output for ./mysql-test-run mysqlbinlog :

Errors are (from /home/krusty/src/mysql-5.0.26/mysql-test/var/log/mysqltest-time) :
/home/krusty/src/mysql-5.0.26/client/.libs/mysqlbinlog: relocation error: /home/krusty/src/mysql-5.0.26/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed

My configure line :
CFLAGS="-O3 -mcpu=athlon-xp" CXX=gcc CXXFLAGS="-O3 -mcpu=athlon-xp -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler

My software : Slackware 10.0, gcc 3.3.4,  glibc 2.3.2

I have another server with the same software environnement but a Pentium III instead of an Athlon-XP and all tests pass on this one.
My configure line on the working server :
CFLAGS="-O3 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler
(the same only -mpcu changes).
[30 Oct 2006 5:42] imacat .
Hi.  This is imacat from Taiwan.  I have downloaded and tested the newly-released MySQL 5.0.27, and the problem still the same.  My two platforms are: Debian GNU/Linux 3.1r3, Linux kernel 2.6.16.29 i686, GCC 3.4.4, glibc 2.3.2, and Debian GNU/Linux 3.1r3, Linux kernel 2.6.16.29 i686, GCC 4.0.2, glibc 2.3.5.  My configuration is:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mysql --infodir=/usr/share/info --mandir=/usr/share/man --enable-thread-safe-client --enable-assembler --with-charset=utf8 --with-extra-charsets=all --with-unix-socket-path=/var/run/mysql/mysql.sock --with-mysqld-user=mysql --without-bench --without-readline --with-csv-storage-engine

    The result is:

imacat@gaya src/mysql-5.0.27 % make test
Logging: ./mysql-test-run
Installing Test Databases
Removing Stale Files
Installing Master Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/master-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Installing Slave Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/slave-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Manager disabled, skipping manager start.
Loading Standard Test Databases
Starting Tests

TEST                            RESULT
-------------------------------------------------------
alias                          [ pass ]
......
mysql_protocols                [ pass ]
mysqlbinlog                    [ fail ]

Errors are (from /usr/local/src/mysql-5.0.27/mysql-test/var/log/mysqltest-time) :
/usr/local/src/mysql-5.0.27/client/.libs/mysqlbinlog: relocation error: /usr/local/src/mysql-5.0.27/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed
(the last lines may be the most important ones)

Aborting: mysqlbinlog failed in default mode. To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
make: *** [test] Error 1
imacat@gaya src/mysql-5.0.27 %

    Please tell me if you need any more information.
[17 Nov 2006 17:32] Magnus Blåudd
Try to do a "make clean" and then recompile. The "cli_safe_read" function has been removed from include/mysql.h and is thus not defined in the libmysqlclient.so library anymore.
[18 Nov 2006 10:06] imacat .
I tried.  It still failed.  Here is the result.  Please tell me if you need any more information or if I could be of any help.

imacat@gaya src/mysql-5.0.27 % make clean
Making clean in server-tools
...
Making clean in include
Making clean in .
imacat@gaya src/mysql-5.0.27 % make
++ echo strmov.lo strxmov.lo strxnmov.lo strnmov.lo strmake.lo strend.lo strtod.lo strnlen.lo strfill.lo is_prefix.lo int2str.lo str2int.lo strinstr.lo strcont.lo strcend.lo bcmp.lo ctype-latin1.lo bchange.lo bmove.lo bmove_upp.lo longlong2str.lo strtoull.lo strtoll.lo llstr.lo my_vsnprintf.lo ctype.lo ctype-simple.lo ctype-bin.lo ctype-mb.lo ctype-big5.lo ctype-czech.lo ctype-cp932.lo ctype-eucjpms.lo ctype-euc_kr.lo ctype-win1250ch.lo ctype-utf8.lo ctype-extra.lo ctype-ucs2.lo ctype-gb2312.lo ctype-gbk.lo ctype-sjis.lo ctype-tis620.lo ctype-ujis.lo ctype-uca.lo xml.lo my_strtoll10.lo str_alloc.lo
++ sed 's;\.lo;.c;g'
...
(cd .libs && rm -f liboptions.la && ln -s ../liboptions.la liboptions.la)
g++ -O3 -DDBUG_OFF -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o mysqlmanager command.o mysqlmanager.o manager.o log.o thread_registry.o listener.o protocol.o mysql_connection.o user_map.o messages.o commands.o instance.o instance_map.o instance_options.o buffer.o parse.o guardian.o parse_output.o  ./.libs/liboptions.a -lpthread -lpthread -lpthread -lpthread libnet.a ../../vio/libvio.a ../../mysys/libmysys.a ../../strings/libmystrings.a ../../dbug/libdbug.a -lz -lpthread -lcrypt -lnsl -lm -lpthread
imacat@gaya src/mysql-5.0.27 % make test
Logging: ./mysql-test-run
Installing Test Databases
Removing Stale Files
Installing Master Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/master-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Installing Slave Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/slave-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Manager disabled, skipping manager start.
Loading Standard Test Databases
Starting Tests

TEST                            RESULT
-------------------------------------------------------
alias                          [ pass ]
...
mysqlbinlog                    [ fail ]

Errors are (from /usr/local/src/mysql-5.0.27/mysql-test/var/log/mysqltest-time) :
/usr/local/src/mysql-5.0.27/client/.libs/mysqlbinlog: relocation error: /usr/local/src/mysql-5.0.27/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed
(the last lines may be the most important ones)

Aborting: mysqlbinlog failed in default mode. To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
make: *** [test] Error 1
imacat@gaya src/mysql-5.0.27 %
[20 Dec 2006 21:52] Joshua Kugler
Linux 2.6.8-3-686 (Debian 3.0/Sarge)

Trying to upgrade from 5.0.21.  Getting this same error on compile.  The reason I'm compiling instead of using Debian or MySQL binaries is because I am using 5.0 along side an existing 4.0 installation.

Here is the error:

mysqlbinlog                    [ fail ]

Errors are (from /home/jkugler/tmp/mysql-5.0.27/mysql-test/var/log/mysqltest-time) :
/home/jkugler/tmp/mysql-5.0.27/client/.libs/mysqlbinlog: relocation error: /home/jkugler/tmp/mysql-5.0.27/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed
(the last lines may be the most important ones)

Aborting: mysqlbinlog failed in default mode. To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
make: *** [test] Error 1

I've done make distclean and tried again.  No go.  Here is my configure:

CFLAGS="-O3 -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing" CXXFLAGS="-O3 -fno-strict-aliasing -felide-constructors -fno-exceptions -fno-rtti -fPIC -DPIC -DUNDEF_HAVE_INITGROUPS"
./configure --prefix=/usr/local/ --enable-thread-safe-client --enable-assember --with-server-suffix=eei --with-unix-socket-path=/usr/local/tmp/mysql5.sock --with-tcp-port=3307 --with-mysqld-user=mysql5 --without-bench --without-debug --with-example-storage-engine --with-archive-storage-engine --with-csv-storage-engine --with-blackhole-storage-engine --with-federated-storage-engine --with-extra-charsets=all

This bug is over a month old.  I hope it's fixed soon.
[20 Dec 2006 22:38] Joshua Kugler
According to the note from Magnus Svensson, "The "cli_safe_read" function has
been removed from include/mysql.h and is thus not defined in the
libmysqlclient.so library anymore."

That may be, but it is still called from line 1081 (in 5.0.27 sources) of mysqlbinlog.cc

I see a declaration for cli_safe_read in include/sql_common.h, and it is defined on line 587 in sql-common/client.c

mysqlbinlog.cc includes sql_common.h, so expects cli_safe_read to be available.  This would appear to be a linking error, but as I am not a C expert, I could be waaaaaay off.

It sure seems to be defined in libmysqlclient:

$ strings libmysql/.libs/libmysqlclient.so.15.0.0|grep cli_safe_read
cli_safe_read
$ strings libmysql_r/.libs/libmysqlclient_r.so.15.0.0|grep cli_safe_read
cli_safe_read

Hope that helps!
[15 Jan 2007 9:38] Magnus Blåudd
This is a tricky one. mysqlbinlog is a client application that is linked with server code. Look at the end of mysqlbinlog.cc and you will see how it pulls in code symlinked from sql/ directory. Could be worth to rewrite that in the future to avoid using the symlinks.

Could you try with "nm" to see how cli_safe_read is defined in libmysqlclient? Below you see how it looks on my machine.

[msvensson@neptunus mysql-5.0-maint]$ nm libmysql/.libs/libmysqlclient.so  | grep cli_safe_read
000852e8 T cli_safe_read

Also look at any warnings produced when compiling mysqlbinlog if it says something about cli_safe_read not being defined - some compilers would then add a refernce to "void cli_safe_read(void)". 

There could also be a conflict with your other installation of MySQL?
[16 Jan 2007 14:07] imacat .
Dear Magnus,

    Hi.  This is imacat from Taiwan.

> Could you try with "nm" to see how cli_safe_read is defined in libmysqlclient?

imacat@gaya src/mysql-5.0.27 % nm libmysql/.libs/libmysqlclient.so | grep cli_safe_read
0003fa70 T cli_safe_read
imacat@gaya src/mysql-5.0.27 %

> Also look at any warnings produced when compiling mysqlbinlog if it says
> something about cli_safe_read not being defined - some compilers would then add
> a refernce to "void cli_safe_read(void)".

    No.  Not a single word.

...
g++ -O3 -DDBUG_OFF -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o .libs/mysqlbinlog mysqlbinlog.o mf_tempdir.o my_new.o  ../libmysql/.libs/libmysqlclient.so -lcrypt -lnsl -lm -lz -Wl,--rpath -Wl,/usr/lib/mysql
creating mysqlbinlog
g++ -O3 -DDBUG_OFF -fno-implicit-templates -fno-exceptions -fno-rtti -rdynamic -o .libs/mysql_upgrade mysql_upgrade.o  ../libmysql/.libs/libmysqlclient.so -lcrypt -lnsl -lm -lz -Wl,--rpath -Wl,/usr/lib/mysql
...

> There could also be a conflict with your other installation of MySQL?

    My current MySQL installation on that machine is 5.0.24a.  Will that conflict?

    In case of conflict, I suppose "make test" should dynamically link to the newly-built libmysqlclient.so, for ex., with LD_LIBRARY_PATH.

    Please tell me if you need any more information.
[16 Jan 2007 14:16] Magnus Blåudd
> In case of conflict, I suppose "make test" should dynamically link to the
> newly-built libmysqlclient.so, for ex., with LD_LIBRARY_PATH.

Yes, the mysql-test-run.pl script is supposed to do that.
[16 Jan 2007 15:19] Magnus Blåudd
Try manual execution of mysqlbinlog

First start servers:
$ ./mysql-test-run.pl mysqlbinlog --start-and-exit

Then: 
$../client/mysqlbinlog --version

$ ../client/mysqlbinlog -S var/tmp/master.sock --short-form --host=127.0.0.1 --port=10170 --read-from-remote-server -u root master-bin.000001
[17 Jan 2007 6:19] imacat .
Dear Magnus Svensson,

    Hi.  This is imacat from Taiwan.  There is the result.

imacat@gaya mysql-5.0.27/mysql-test % ./mysql-test-run.pl mysqlbinlog --start-and-exit
Logging: ./mysql-test-run.pl mysqlbinlog --start-and-exit
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT    = 9306
Using MASTER_MYPORT1   = 9307
Using SLAVE_MYPORT     = 9308
Using SLAVE_MYPORT1    = 9309
Using SLAVE_MYPORT2    = 9310
Using NDBCLUSTER_PORT  = 9350
Using IM_PORT          = 9311
Using IM_MYSQLD1_PORT  = 9312
Using IM_MYSQLD2_PORT  = 9314
Killing Possible Leftover Processes
Removing Stale Files
Installing Master Database
Installing Master Database
=======================================================
Finding  Tests in the 'main' suite
Starting Tests in the 'main' suite

TEST                           RESULT
-------------------------------------------------------

mysqlbinlog
Servers started, exiting
imacat@gaya mysql-5.0.27/mysql-test % ../client/mysqlbinlog --version
/usr/local/src/mysql-5.0.27/client/.libs/lt-mysqlbinlog Ver 3.1 for pc-linux-gnu at i686
imacat@gaya mysql-5.0.27/mysql-test % ../client/mysqlbinlog -S var/tmp/master.sock --short-form --host=127.0.0.1 --port=10170 --read-from-remote-server -u root master-bin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ERROR: failed on connect: Can't connect to MySQL server on '127.0.0.1' (111)
imacat@gaya mysql-5.0.27/mysql-test %

    I found that the started mysql test server is not at port 10170, but at port 9306.  So I did the following additionally.

imacat@gaya mysql-5.0.27/mysql-test % netstat -apn | grep mysql
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:9306            0.0.0.0:*               LISTEN     10200/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     4838     -                   /var/run/mysql/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     15473399 10200/mysqld        /usr/local/src/mysql-5.0.27/mysql-test/var/tmp/master.sock
unix  3      [ ]         STREAM     CONNECTED     15458436 -                   /var/run/mysql/mysql.sock
imacat@gaya mysql-5.0.27/mysql-test % ../client/mysqlbinlog -S var/tmp/master.sock --short-form --host=127.0.0.1 --port=9306 --read-from-remote-server -u root master-bin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
imacat@gaya mysql-5.0.27/mysql-test %

    Hope that this helps.  Please tell me if you need any more information.
[17 Jan 2007 8:05] Magnus Blåudd
Good, that shows mysqlbinlog is working when you run it manually against the started server. :) You mysqld is on another port is ok.

With the above test you basically did what was executed on line 77 in mysqlbinlog.test and that worked - which is good.

Could you try to run 
/mysql-test> ./mysql-test-run.pl mysqlbinlog

There are a number of switches you can use with mysql-test-run.pl for debugging. If you recompile with --with-debug it will be possible to use --debug switch to ./mysql-test-run.pl. Check the .log and .trace files in mysql-test/var/log directory.
[18 Jan 2007 20:12] imacat .
Hi.  This is imacat.  Here is the result of ./mysql-test-run.pl mysqlbinlog, after recompilation with --with-debug.  It's strange that it is OK with ./mysql-test-run.pl, since it still fails at "make test".  Is this normal?  Or is it something in the Makefile environment that's only utilized at "make test", but not ./mysql-test-run.pl?

    Hope this helps.  Please tell me if you need any more information.

imacat@gaya mysql-5.0.27/mysql-test % ./mysql-test-run.pl mysqlbinlog
Logging: ./mysql-test-run.pl mysqlbinlog
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT    = 9306
Using MASTER_MYPORT1   = 9307
Using SLAVE_MYPORT     = 9308
Using SLAVE_MYPORT1    = 9309
Using SLAVE_MYPORT2    = 9310
Using NDBCLUSTER_PORT  = 9350
Using IM_PORT          = 9311
Using IM_MYSQLD1_PORT  = 9312
Using IM_MYSQLD2_PORT  = 9314
Killing Possible Leftover Processes
Removing Stale Files
Installing Master Database
Installing Master Database
=======================================================
Finding  Tests in the 'main' suite
Starting Tests in the 'main' suite

TEST                           RESULT
-------------------------------------------------------

mysqlbinlog                    [ pass ]
-------------------------------------------------------
Ending Tests
Shutting-down Instance Manager
Shutting-down MySQL daemon

Master(s) shutdown finished
Slave(s) shutdown finished
All 1 tests were successful.

imacat@gaya mysql-5.0.27/mysql-test % ./mysql-test-run.pl --debug mysqlbinlog
Logging: ./mysql-test-run.pl --debug mysqlbinlog
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT    = 9306
Using MASTER_MYPORT1   = 9307
Using SLAVE_MYPORT     = 9308
Using SLAVE_MYPORT1    = 9309
Using SLAVE_MYPORT2    = 9310
Using NDBCLUSTER_PORT  = 9350
Using IM_PORT          = 9311
Using IM_MYSQLD1_PORT  = 9312
Using IM_MYSQLD2_PORT  = 9314
Killing Possible Leftover Processes
Removing Stale Files
Installing Master Database
Installing Master Database
=======================================================
Finding  Tests in the 'main' suite
Starting Tests in the 'main' suite

TEST                           RESULT
-------------------------------------------------------

mysqlbinlog                    [ pass ]
-------------------------------------------------------
Ending Tests
Shutting-down Instance Manager
Shutting-down MySQL daemon

Master(s) shutdown finished
Slave(s) shutdown finished
All 1 tests were successful.

imacat@gaya mysql-5.0.27/mysql-test % ./mysql-test-run.pl
Logging: ./mysql-test-run.pl
Skipping ndbcluster, mysqld not compiled with ndbcluster
Skipping SSL, mysqld not compiled with SSL
Using MTR_BUILD_THREAD = 0
Using MASTER_MYPORT    = 9306
Using MASTER_MYPORT1   = 9307
Using SLAVE_MYPORT     = 9308
Using SLAVE_MYPORT1    = 9309
Using SLAVE_MYPORT2    = 9310
Using NDBCLUSTER_PORT  = 9350
Using IM_PORT          = 9311
Using IM_MYSQLD1_PORT  = 9312
Using IM_MYSQLD2_PORT  = 9314
Killing Possible Leftover Processes
Removing Stale Files
Installing Master Database
Installing Master Database
Installing Slave Database
Installing Slave Database
Installing Slave Database
Creating IM password file (/usr/local/src/mysql-5.0.27/mysql-test/var/im.passwd)
Installing Im_mysqld_1 Database
Installing Im_mysqld_2 Database
=======================================================
Finding  Tests in the 'main' suite
Starting Tests in the 'main' suite

TEST                           RESULT
-------------------------------------------------------

alias                          [ pass ]
...
mysqlbinlog                    [ pass ]
...

imacat@gaya src/mysql-5.0.27 % make test
Logging: ./mysql-test-run
Installing Test Databases
Removing Stale Files
Installing Master Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/master-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Installing Slave Databases
running  ../sql/mysqld --no-defaults --bootstrap --skip-grant-tables     --basedir=. --datadir=./var/slave-data --skip-innodb --skip-ndbcluster --skip-bdb     --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
Manager disabled, skipping manager start.
Loading Standard Test Databases
Starting Tests

TEST                            RESULT
-------------------------------------------------------
alias                          [ pass ]
...
mysql_protocols                [ pass ]
mysqlbinlog                    [ fail ]

Errors are (from /usr/local/src/mysql-5.0.27/mysql-test/var/log/mysqltest-time) :
/usr/local/src/mysql-5.0.27/client/.libs/mysqlbinlog: relocation error: /usr/local/src/mysql-5.0.27/client/.libs/mysqlbinlog: symbol cli_safe_read, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
mysqltest: At line 77: command "$MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001" failed
(the last lines may be the most important ones)

Aborting: mysqlbinlog failed in default mode. To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
make: *** [test] Error 1
imacat@gaya src/mysql-5.0.27 %
Message from syslogd@rinse at Fri Jan 19 04:10:13 2007 ...
rinse kernel: CPU1: Temperature above threshold, cpu clock throttled
[19 Jan 2007 10:43] Magnus Blåudd
Imacat, hank you very much for your efforts!

Yes, there might be a slight difference between "make test" in 5.0.27 as it uses the shell script version of mysql-test-run - which we now have phased out and replaced with mysql-test-run.pl. The new script have been used for a quite a while  for our internal testing and I assume something hasn't been added to the .sh script(maybe the LD_LIBRARY_PATH?). The "make test" target in later version of MySQL has already been updated to use mysql-test-run.pl

Once again, thanks for your time analyzing this. I think it's taken some extra time since you are one the other side of the world from me. ;)