Bug #50474 rpl_slave_load_remove_tmpfile failed on windows debug enabled binary
Submitted: 20 Jan 2010 13:12 Modified: 4 Aug 2010 10:58
Reporter: Luis Soares Email Updates:
Status: Closed Impact on me:
None 
Category:Tests: Replication Severity:S3 (Non-critical)
Version:Betony (M2) OS:Windows
Assigned to: Luis Soares CPU Architecture:Any
Tags: developer, experimental, pb2, test failure

[20 Jan 2010 13:12] Luis Soares
Description:
rpl_slave_load_remove_tmpfile failed on windows debug enabled binary with the following symptom:

rpl.rpl_slave_load_remove_tmpfile [ fail ]
        Test ended at 2010-01-20 04:06:51

CURRENT_TEST: rpl.rpl_slave_load_remove_tmpfile
mysqltest: In included file ".\include\wait_for_slave_param.inc": At line 70: Error running query 'SHOW SLAVE STATUS': 2013 Lost connection to MySQL server during query

The result from queries just before the failure was:
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create table t1(a int not null auto_increment, b int, primary key(a)) engine=innodb;
start transaction;
insert into t1(b) values (1);
insert into t1(b) values (2);
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
commit;

Server [mysqld.2 - pid: 9184, winpid: 9184, exit: 768] failed during test run
Server log from this test:
100120  6:06:50 [Note] Buffered information: Performance schema enabled.

100120  6:06:50 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use Windows interlocked functions
InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
100120  4:06:50  InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
100120  4:06:50  InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
100120  4:06:50  InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
100120  4:06:50 InnoDB Plugin 1.0.6 started; log sequence number 0
100120  6:06:50 [Note] Event Scheduler: Loaded 0 events
100120  6:06:50 [Note] H:/pb2/test/sb_2-1197833-1263954695.27/mysql-5.5.99-m3-win-x86_64-test/sql/debug/mysqld.exe: ready for connections.
Version: '5.5.99-m3-debug-log'  socket: ''  port: 15081  Source distribution
100120  6:06:50 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log '.\slave-relay-bin.000001' position: 4
100120  6:06:50 [Note] Slave I/O thread: connected to master 'root@127.0.0.1:15080',replication started in log 'FIRST' at position 4
Assertion failed: fd >= 2048 && fd < (int)my_file_limit, file .\my_winfile.c, line 101

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
100120  6:06:50 - mysqld got exception 0x80000003 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=1048576
read_buffer_size=131072
max_used_connections=2
max_threads=151
thread_count=2
connection_count=2
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 60370 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd: 0x6663250
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
000000013F958895    mysqld.exe!my_sigabrt_handler()[my_thr_init.c:518]
000000013F36AE62    mysqld.exe!raise()[winsig.c:597]
000000013F372B33    mysqld.exe!abort()[abort.c:78]
000000013F92C025    mysqld.exe!_wassert()[assert.c:346]
000000013F99193E    mysqld.exe!my_get_open_flags()[my_winfile.c:101]
000000013F9917F4    mysqld.exe!my_win_write()[my_winfile.c:430]
000000013F9765D0    mysqld.exe!my_write()[my_write.c:39]
000000013F5867C9    mysqld.exe!inline_mysql_file_write()[mysql_file.h:1108]
000000013F587054    mysqld.exe!Append_block_log_event::do_apply_event()[log_event.cc:6457]
000000013F40417D    mysqld.exe!Log_event::apply_event()[log_event.h:1121]
000000013F3FA587    mysqld.exe!apply_event_and_update_pos()[slave.cc:2307]
000000013F3FF4C2    mysqld.exe!exec_relay_log_event()[slave.cc:2467]
000000013F3FE564    mysqld.exe!handle_slave_sql()[slave.cc:3248]
000000013F91970D    mysqld.exe!pfs_spawn_thread()[pfs.cc:1013]
000000013F9577DB    mysqld.exe!pthread_start()[my_winthread.c:62]
000000013FA54C35    mysqld.exe!_callthreadstartex()[threadex.c:348]
000000013FA54C08    mysqld.exe!_threadstartex()[threadex.c:331]
000000007737BE3D    kernel32.dll!BaseThreadInitThunk()
00000000774B6A51    ntdll.dll!RtlUserThreadStart()
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0000000000000000=(null)
thd->thread_id=5
thd->killed=NOT_KILLED
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
Writing a core file
Minidump written to H:\pb2\test\sb_2-1197833-1263954695.27\mysql-5.5.99-m3-win-x86_64-test\mysql-test\var-n_mix\mysqld.2\data\mysqld.dmp

How to repeat:
It happend (at least) on this push:
http://pb2.norway.sun.com/web.py?template=push_details&push=841103

and the output can be seen by inspecting the log:
http://pb2.norway.sun.com/web.py?action=archive_download&archive_id=1208690&pretty=please

Suggested fix:
n/a
[20 Jan 2010 15:17] Alexander Nozdrin
Making the test case experimental staring from Celosia (next-mr).
[21 Jan 2010 0:41] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/97673

2962 Luis Soares	2010-01-21
      BUG#50474: rpl_slave_load_remove_tmpfile failed on windows debug
      enabled binary
      
      The test case injects an error in the server by deleting the
      temporary file that it uses during the load data statement
      execution. The error consisted of closing, deleting and setting
      the file descriptor to -1 right before calling mysql_file_write.
      
      Although, this error injection seems to work OK in Unix like
      environments, in Windows, this would cause the server to hit an
      assertion in 'my_get_open_flags':
      
        DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit)
      
      We fix this by changing the error injection to just call the
      macro my_delete_allow_opened, instead of the close + delete + set
      fd=-1. The macro deletes the file and is platform
      independent. Additionally, this required some changes to how the
      assertion is handled in the test case to make it cope with this
      change.
[21 Jan 2010 0:45] Luis Soares
Test case added while fixing BUG#42861.
[26 Jan 2010 19:34] Omer Barnir
triage: setting tag to SR55TEST(test issue as code is executed for testing purposes only)
[28 Jan 2010 18:45] Alexander Nozdrin
The test is now failing in Betony (M2) too.
Making experimental awaiting the patch to be merged into the main tree.
[28 Jan 2010 18:49] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/98503

2961 Alexander Nozdrin	2010-01-28
      Make the following tests experimental:
        - main.outfile_loaddata @solaris due to Bug#46895
        - main.signal_demo3 @solaris due to Bug#47791
        - main.sp @solaris due to Bug#47791
        - rpl.rpl_slave_load_remove_tmpfile @windows due to Bug#50474
[5 Feb 2010 11:50] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100204063540-9czpdmpixi3iw2yb) (version source revid:alik@sun.com-20100130194152-ngwm93bhpexq32h3) (pib:16)
[5 Feb 2010 11:53] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100205113942-oqovjy0eoqbarn7i) (version source revid:alfranio.correia@sun.com-20100121210527-rbuheu5rnsmcakh1) (merge vers: 5.5.99-m3) (pib:16)
[5 Feb 2010 12:01] Bugs System
Pushed into 5.5.2-m2 (revid:alik@sun.com-20100203172258-1n5dsotny40yufxw) (version source revid:alik@sun.com-20100128184900-6q538ks8ha4swyuc) (merge vers: 5.5.2-m2) (pib:16)
[13 Feb 2010 8:36] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100213083436-9pesg4h55w1mekxc) (version source revid:luis.soares@sun.com-20100126101928-0jbc7dhfaxjib0v5) (merge vers: 6.0.14-alpha) (pib:16)
[13 Feb 2010 8:38] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100213083327-cee4ao3jpg33eggv) (version source revid:luis.soares@sun.com-20100126100856-nrl0jmkc9s2cg8ck) (pib:16)
[13 Feb 2010 10:26] Jon Stephens
Changes in test code only. No end-user changes to document.

Closed.
[15 Feb 2010 12:09] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/100362

3173 Luis Soares	2010-02-15
      Ported BUG#50473 and BUG#50474 to mysql-5.1-rep+2.
      
      revid:luis.soares@sun.com-20100126100856-nrl0jmkc9s2cg8ck
      
      Conflicts
      =========
        Text conflict in sql/log_event.cc
[6 Mar 2010 10:56] Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:vvaintroub@mysql.com-20100213160132-nx1vlocxuta76txh) (merge vers: 5.5.99-m3) (pib:16)
[8 Mar 2010 20:25] Jon Stephens
Changes in test code only. No end-user changes to document.

Closed.
[24 Mar 2010 8:14] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100324081249-yfwol7qtcek6dh7w) (version source revid:alik@sun.com-20100324081113-kc7x1iytnplww91u) (merge vers: 6.0.14-alpha) (pib:16)
[24 Mar 2010 8:17] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100324081159-5b8juv8ldiqwce8v) (version source revid:alik@sun.com-20100324081105-y72rautcea375zxm) (pib:16)
[24 Mar 2010 16:56] Paul DuBois
No changelog entry needed.
[4 Aug 2010 8:05] Bugs System
Pushed into mysql-trunk 5.6.1-m4 (revid:alik@ibmvm-20100804080001-bny5271e65xo34ig) (version source revid:alik@sun.com-20100324081105-y72rautcea375zxm) (merge vers: 5.6.99-m4) (pib:18)
[4 Aug 2010 8:21] Bugs System
Pushed into mysql-trunk 5.6.1-m4 (revid:alik@ibmvm-20100804081533-c1d3rbipo9e8rt1s) (version source revid:alik@sun.com-20100324081105-y72rautcea375zxm) (merge vers: 5.6.99-m4) (pib:18)
[4 Aug 2010 10:59] Jon Stephens
Closed without further action; see previous comments from Paul and me.