Bug #34986 Test 'mysqlbinlog' fails on FreeBSD 6.0 x86 32-bit, non PS mode
Submitted: 2 Mar 2008 14:44 Modified: 15 Jul 2008 0:31
Reporter: Kent Boortz Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:4.1.24 pre OS:Other (FreeBSD & HP-UX 11.11 IA64)
Assigned to: Andrei Elkin CPU Architecture:Any

[2 Mar 2008 14:44] Kent Boortz
Description:
The test 'mysqlbinlog' in normal mode, but *not* in
PS mode running the test suite

  *** r/mysqlbinlog.result        Sat Mar  1 20:46:23 2008
  --- r/mysqlbinlog.reject        Sun Mar  2 00:51:41 2008
  ***************
  *** 105,109 ****
    select * from t5  /* must be (1),(1) */;
    a
    1
  - 1
    drop table t1, t2, t03, t04, t3, t4, t5;

This is the test for Bug#14157, but it is not clear
to me if related to that one or not (my guess is not).

How to repeat:
Configure and build like

  CC="gcc -static-libgcc" \
  CXX="gcc -static-libgcc" \
  ./configure \
  --prefix=/usr/local/mysql \
  --localstatedir=/usr/local/mysql/data \
  --libexecdir=/usr/local/mysql/bin \
  --enable-thread-safe-client \
  --enable-local-infile \
  --enable-assembler \
  --with-pic \
  --disable-shared \
  --with-zlib-dir=bundled \
  --with-raid \
  --with-readline \
  --with-embedded-server \
  --with-archive-storage-engine \
  --without-falcon \
  --with-innodb \
  --with-extra-charsets=complex

Run the test suite like

  mkdir /tmp/foo
  perl ./mysql-test-run.pl \
  --tmpdir=/tmp/foo --timer --force --skip-ndbcluster
[4 Mar 2008 12:56] Kent Boortz
It actually occurs in test runs both 32 and 64 bits,
and one occurrence in PS mode.

With more test runs done, also notes it does not
fail every run so it "random", even if quite frequent
for FreeBSD 6.0 32 bit in the runs I have seen.
[17 Mar 2008 13:48] Andrei Elkin
The case does not seem to belong to replication.
Indeed, the following patch to the test masks out the failure.
The must stays if the prior mysql client invocation selects from that temp table.
The "fixed" test was run in about 100 times w/o showing the problem back
(the problem is successfully regressed about each other invocation of the orig mysqlbinlog test).

--- mysqlbinlog.test    Mon Mar 17 11:13:26 2008
+++ mybug_mbinlog.test  Mon Mar 17 14:31:49 2008
@@ -125,7 +125,7 @@
 # must be digestable for both client and server. In 4.1 the client 
 # should use default-character-set same as the server.
 --exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000006 > $MYSQL_TEST_DIR/var/tmp/bug14157.sql
---exec $MYSQL < $MYSQL_TEST_DIR/var/tmp/bug14157.sql
+--exec $MYSQL -e 'source $MYSQL_TEST_DIR/var/tmp/bug14157.sql; select * from `������`'
 select * from t5  /* must be (1),(1) */;
 
It's difficult to link the problem with not flushed stdin - that is changed in favor of `source' - because if `source' stays and `select is removed the must
(1),(1) stops to hold like with the orig test:

*** r/mybug_mbinlog.result      Mon Mar 17 16:44:27 2008
--- r/mybug_mbinlog.reject      Mon Mar 17 16:47:33 2008
***************
*** 105,109 ****
  select * from t5  /* must be (1),(1) */;
  a
  1
- 1
  drop table t1, t2, t03, t04, t3, t4, t5;
--- 105,108 ----
[17 Mar 2008 14:07] Andrei Elkin
Bug #21179  	Test "mysqlbinlog" shows incomplete log contents

is a duplicate for this one.
[17 Mar 2008 14:33] Joerg Bruehe
So I had prophetic qualities, when I reported bug#21179 on 20-Jul-2006 as a duplicate of this bug#34986 which dates of 2-Mar-2008 ?
[15 Jul 2008 0:31] Trudy Pelzer
Won't be fixed in extended maintenance version.