[MDEV-4663] crash, race, invalid purge_sys->view in read_view_sees_trx_id Created: 2013-06-14  Updated: 2020-07-17  Resolved: 2014-04-17

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.3
Fix Version/s: 10.0.4

Type: Bug Priority: Critical
Reporter: sbester1 Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Environment:

Win x64, Linux x64


Issue Links:
Relates
relates to MDEV-23198 mysqld crash when running REPLACE update Closed

 Description   

Version: '10.0.3-MariaDB'   mariadb.org binary distribution
[ERROR] mysqld got exception 0xc0000005 ;
mysqld.exe!read_view_sees_trx_id()[read0read.ic:36]
mysqld.exe!trx_undo_prev_version_build()[trx0rec.cc:1604]
mysqld.exe!row_vers_impl_x_locked_low()[row0vers.cc:137]
mysqld.exe!row_vers_impl_x_locked()[row0vers.cc:299]
mysqld.exe!lock_sec_rec_some_has_impl()[lock0lock.cc:1695]
mysqld.exe!lock_rec_convert_impl_to_expl()[lock0lock.cc:5968]
mysqld.exe!lock_sec_rec_read_check_and_lock()[lock0lock.cc:6214]
mysqld.exe!row_ins_set_exclusive_rec_lock()[row0ins.cc:1342]
mysqld.exe!row_ins_scan_sec_index_for_duplicate()[row0ins.cc:1868]
mysqld.exe!row_ins_index_entry_low()[row0ins.cc:2194]
mysqld.exe!row_ins_index_entry()[row0ins.cc:2396]
mysqld.exe!row_ins_index_entry_step()[row0ins.cc:2487]
mysqld.exe!row_ins()[row0ins.cc:2619]
mysqld.exe!row_ins_step()[row0ins.cc:2738]
mysqld.exe!row_insert_for_mysql()[row0mysql.cc:1278]
mysqld.exe!ha_innobase::write_row()[ha_innodb.cc:6444]
mysqld.exe!handler::ha_write_row()[handler.cc:5582]
mysqld.exe!write_record()[sql_insert.cc:1574]
mysqld.exe!mysql_insert()[sql_insert.cc:963]
mysqld.exe!mysql_execute_command()[sql_parse.cc:3329]
mysqld.exe!sp_instr_stmt::exec_core()[sp_head.cc:3191]
mysqld.exe!sp_lex_keeper::reset_lex_and_exec_core()[sp_head.cc:2983]
mysqld.exe!sp_instr_stmt::execute()[sp_head.cc:3123]
mysqld.exe!sp_head::execute()[sp_head.cc:1429]
mysqld.exe!sp_head::execute_procedure()[sp_head.cc:2184]
mysqld.exe!mysql_execute_command()[sql_parse.cc:4484]
mysqld.exe!mysql_parse()[sql_parse.cc:6181]
mysqld.exe!dispatch_command()[sql_parse.cc:1277]
mysqld.exe!do_command()[sql_parse.cc:989]
mysqld.exe!threadpool_process_request()[threadpool_common.cc:224]
mysqld.exe!io_completion_callback()[threadpool_win.cc:568]

set global innodb_flush_log_at_trx_commit=0;
drop procedure if exists p1;
drop table if exists t1;
create table `t1` (`a` int,`b` tinyint, primary key(`b`),unique key(`b`))engine=innodb;
delimiter $
create procedure p1()
begin
 repeat
   replace into `t1` set `a`=1,`b`=1;
   replace into `t1` set `a`=null,`b`=1;
 until 1=2 end repeat;
end $
delimiter ;
call p1();



 Comments   
Comment by Elena Stepanova [ 2013-06-14 ]

Reproducible as described. It might take a while, so leave it work.

Hi Jan,

I'm assigning it to you now, but it might make sense to wait for the InnoDB merge which is currently being done, and fix the bug on the top of it (if it's still reproducible after the merge).

Comment by Jan Lindström (Inactive) [ 2013-08-21 ]

Can't repeat. Tested with both debug and product build.

Comment by sbester1 [ 2013-08-21 ]

I confirm that on 10.0.2 and 10.0.3 it is repeatable in seconds. on 10.0.4 the problem is no longer repeatable.

Generated at Thu Feb 08 06:58:10 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.