Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
7b474a8e
Commit
7b474a8e
authored
Apr 27, 2010
by
Vasil Dimov
Browse files
Options
Browse Files
Download
Plain Diff
Merge 3417..3421 from mysql-5.1-innodb
parents
6fae8372
50d10e76
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
415 additions
and
3 deletions
+415
-3
mysql-test/suite/innodb/r/innodb_bug52663.result
mysql-test/suite/innodb/r/innodb_bug52663.result
+26
-0
mysql-test/suite/innodb/t/innodb_bug52663-master.opt
mysql-test/suite/innodb/t/innodb_bug52663-master.opt
+1
-0
mysql-test/suite/innodb/t/innodb_bug52663.test
mysql-test/suite/innodb/t/innodb_bug52663.test
+34
-0
mysql-test/suite/innodb_plugin/r/innodb_bug52663.result
mysql-test/suite/innodb_plugin/r/innodb_bug52663.result
+26
-0
mysql-test/suite/innodb_plugin/r/innodb_bug52745.result
mysql-test/suite/innodb_plugin/r/innodb_bug52745.result
+130
-0
mysql-test/suite/innodb_plugin/t/innodb_bug52663.test
mysql-test/suite/innodb_plugin/t/innodb_bug52663.test
+34
-0
mysql-test/suite/innodb_plugin/t/innodb_bug52745.test
mysql-test/suite/innodb_plugin/t/innodb_bug52745.test
+109
-0
storage/innobase/lock/lock0lock.c
storage/innobase/lock/lock0lock.c
+23
-2
storage/innobase/row/row0sel.c
storage/innobase/row/row0sel.c
+1
-0
storage/innodb_plugin/ChangeLog
storage/innodb_plugin/ChangeLog
+6
-0
storage/innodb_plugin/lock/lock0lock.c
storage/innodb_plugin/lock/lock0lock.c
+23
-0
storage/innodb_plugin/log/log0recv.c
storage/innodb_plugin/log/log0recv.c
+1
-1
storage/innodb_plugin/row/row0sel.c
storage/innodb_plugin/row/row0sel.c
+1
-0
No files found.
mysql-test/suite/innodb/r/innodb_bug52663.result
0 → 100644
View file @
7b474a8e
set session transaction isolation level read committed;
create table innodb_bug52663 (what varchar(5), id integer, count integer, primary key
(what, id)) engine=innodb;
insert into innodb_bug52663 values ('total', 0, 0);
begin;
set session transaction isolation level read committed;
begin;
update innodb_bug52663 set count = count + 1 where what = 'total' and id = 0;
select * from innodb_bug52663;
what id count
total 0 1
update innodb_bug52663 set count = count + 1 where what = 'total' and id = 0;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select * from innodb_bug52663;
what id count
total 0 0
commit;
update innodb_bug52663 set count = count + 1 where what = 'total' and id = 0;
commit;
select * from innodb_bug52663;
what id count
total 0 2
select * from innodb_bug52663;
what id count
total 0 2
drop table innodb_bug52663;
mysql-test/suite/innodb/t/innodb_bug52663-master.opt
0 → 100644
View file @
7b474a8e
--innodb_lock_wait_timeout=1
mysql-test/suite/innodb/t/innodb_bug52663.test
0 → 100644
View file @
7b474a8e
--
source
include
/
have_innodb
.
inc
set
session
transaction
isolation
level
read
committed
;
create
table
innodb_bug52663
(
what
varchar
(
5
),
id
integer
,
count
integer
,
primary
key
(
what
,
id
))
engine
=
innodb
;
insert
into
innodb_bug52663
values
(
'total'
,
0
,
0
);
begin
;
connect
(
addconroot
,
localhost
,
root
,,);
connection
addconroot
;
set
session
transaction
isolation
level
read
committed
;
begin
;
connection
default
;
update
innodb_bug52663
set
count
=
count
+
1
where
what
=
'total'
and
id
=
0
;
select
*
from
innodb_bug52663
;
connection
addconroot
;
--
error
ER_LOCK_WAIT_TIMEOUT
update
innodb_bug52663
set
count
=
count
+
1
where
what
=
'total'
and
id
=
0
;
select
*
from
innodb_bug52663
;
connection
default
;
commit
;
connection
addconroot
;
update
innodb_bug52663
set
count
=
count
+
1
where
what
=
'total'
and
id
=
0
;
commit
;
select
*
from
innodb_bug52663
;
connection
default
;
select
*
from
innodb_bug52663
;
drop
table
innodb_bug52663
;
mysql-test/suite/innodb_plugin/r/innodb_bug52663.result
0 → 100644
View file @
7b474a8e
set session transaction isolation level read committed;
create table innodb_bug52663 (what varchar(5), id integer, count integer, primary key
(what, id)) engine=innodb;
insert into innodb_bug52663 values ('total', 0, 0);
begin;
set session transaction isolation level read committed;
begin;
update innodb_bug52663 set count = count + 1 where what = 'total' and id = 0;
select * from innodb_bug52663;
what id count
total 0 1
update innodb_bug52663 set count = count + 1 where what = 'total' and id = 0;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select * from innodb_bug52663;
what id count
total 0 0
commit;
update innodb_bug52663 set count = count + 1 where what = 'total' and id = 0;
commit;
select * from innodb_bug52663;
what id count
total 0 2
select * from innodb_bug52663;
what id count
total 0 2
drop table innodb_bug52663;
mysql-test/suite/innodb_plugin/r/innodb_bug52745.result
0 → 100644
View file @
7b474a8e
SET GLOBAL innodb_file_format='Barracuda';
SET GLOBAL innodb_file_per_table=on;
CREATE TABLE bug52745 (
a2 int(10) unsigned DEFAULT NULL,
col37 time DEFAULT NULL,
col38 char(229) CHARACTER SET utf8 DEFAULT NULL,
col39 text,
col40 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
col41 int(10) unsigned DEFAULT NULL,
col42 varchar(248) CHARACTER SET utf8 DEFAULT NULL,
col43 smallint(5) unsigned zerofill DEFAULT NULL,
col44 varchar(150) CHARACTER SET utf8 DEFAULT NULL,
col45 float unsigned zerofill DEFAULT NULL,
col46 binary(1) DEFAULT NULL,
col47 tinyint(4) DEFAULT NULL,
col48 tinyint(1) DEFAULT NULL,
col49 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
col50 binary(1) DEFAULT NULL,
col51 double unsigned zerofill DEFAULT NULL,
col52 int(10) unsigned DEFAULT NULL,
col53 time DEFAULT NULL,
col54 double unsigned DEFAULT NULL,
col55 time DEFAULT NULL,
col56 mediumtext CHARACTER SET latin2,
col57 blob,
col58 decimal(52,16) unsigned zerofill NOT NULL DEFAULT '000000000000000000000000000000000000.0000000000000000',
col59 binary(1) DEFAULT NULL,
col60 longblob,
col61 time DEFAULT NULL,
col62 longtext CHARACTER SET utf8 COLLATE utf8_persian_ci,
col63 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
col64 int(10) unsigned DEFAULT NULL,
col65 date DEFAULT NULL,
col66 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
col67 binary(1) DEFAULT NULL,
col68 tinyblob,
col69 date DEFAULT NULL,
col70 tinyint(3) unsigned zerofill DEFAULT NULL,
col71 varchar(44) CHARACTER SET utf8 DEFAULT NULL,
col72 datetime DEFAULT NULL,
col73 smallint(5) unsigned zerofill DEFAULT NULL,
col74 longblob,
col75 bit(34) DEFAULT NULL,
col76 float unsigned zerofill DEFAULT NULL,
col77 year(2) DEFAULT NULL,
col78 tinyint(3) unsigned DEFAULT NULL,
col79 set('msfheowh','tbpxbgf','by','wahnrjw','myqfasxz','rsokyumrt') CHARACTER SET latin2 DEFAULT NULL,
col80 datetime DEFAULT NULL,
col81 smallint(6) DEFAULT NULL,
col82 enum('xtaurnqfqz','rifrse','kuzwpbvb','niisabk','zxavro','rbvasv','','uulrfaove','','') DEFAULT NULL,
col83 bigint(20) unsigned zerofill DEFAULT NULL,
col84 float unsigned zerofill DEFAULT NULL,
col85 double DEFAULT NULL,
col86 enum('ylannv','','vlkhycqc','snke','cxifustp','xiaxaswzp','oxl') CHARACTER SET latin1 COLLATE latin1_german2_ci DEFAULT NULL,
col87 varbinary(221) DEFAULT NULL,
col88 double unsigned DEFAULT NULL,
col89 float unsigned zerofill DEFAULT NULL,
col90 tinyblob
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
Warnings:
Note 1291 Column 'col82' has duplicated value '' in ENUM
Note 1291 Column 'col82' has duplicated value '' in ENUM
INSERT INTO bug52745 SET
col40='0000-00-00 00:00:00',
col51=16547,
col53='7711484',
col54=-28604,
col55='7112612',
col56='wakefulness\'',
col57=repeat('absorbefacient\'',106),
col58=11027,
col59='AM09gW7',
col60=repeat('Noelani\'',16),
col61='2520576',
col62='substitutiv',
col63='19950106155112',
col64=-12038,
col65='86238806',
col66='19600719080256',
col68=repeat('Sagittarius\'',54),
col69='38943902',
col70=1232,
col71='Elora\'',
col74=repeat('zipp',11),
col75='0',
col76=23254,
col78=13247,
col79='56219',
col80='20500609035724',
col81=11632,
col82=7,
col84=-23863,
col85=6341,
col87='HZdkf.4 s7t,5Rmq 8so fmr,ruGLUG25TrtI.yQ 2SuHq0ML7rw7.4 b2yf2E5TJxOtBBZImezDnzpj,uPYfznnEUDN1e9aQoO 2DsplB7TFWy oQJ br HLF :F,eQ p4i1oWsr lL3PG,hjCz6hYqN h1QTjLCjrv:QCdSzpYBibJAtZCxLOk3l6Blsh.W',
col88=16894,
col89=6161,
col90=repeat('gale',48);
Warnings:
Warning 1265 Data truncated for column 'col53' at row 1
Warning 1264 Out of range value for column 'col54' at row 1
Warning 1265 Data truncated for column 'col59' at row 1
Warning 1265 Data truncated for column 'col61' at row 1
Warning 1264 Out of range value for column 'col64' at row 1
Warning 1265 Data truncated for column 'col65' at row 1
Warning 1264 Out of range value for column 'col66' at row 1
Warning 1265 Data truncated for column 'col68' at row 1
Warning 1265 Data truncated for column 'col69' at row 1
Warning 1264 Out of range value for column 'col70' at row 1
Warning 1264 Out of range value for column 'col78' at row 1
Warning 1265 Data truncated for column 'col79' at row 1
Warning 1264 Out of range value for column 'col84' at row 1
SHOW WARNINGS;
Level Code Message
Warning 1265 Data truncated for column 'col53' at row 1
Warning 1264 Out of range value for column 'col54' at row 1
Warning 1265 Data truncated for column 'col59' at row 1
Warning 1265 Data truncated for column 'col61' at row 1
Warning 1264 Out of range value for column 'col64' at row 1
Warning 1265 Data truncated for column 'col65' at row 1
Warning 1264 Out of range value for column 'col66' at row 1
Warning 1265 Data truncated for column 'col68' at row 1
Warning 1265 Data truncated for column 'col69' at row 1
Warning 1264 Out of range value for column 'col70' at row 1
Warning 1264 Out of range value for column 'col78' at row 1
Warning 1265 Data truncated for column 'col79' at row 1
Warning 1264 Out of range value for column 'col84' at row 1
DROP TABLE bug52745;
SET GLOBAL innodb_file_format=Antelope;
SET GLOBAL innodb_file_format_check=Antelope;
SET GLOBAL innodb_file_per_table=0;
mysql-test/suite/innodb_plugin/t/innodb_bug52663.test
0 → 100644
View file @
7b474a8e
--
source
include
/
have_innodb_plugin
.
inc
set
session
transaction
isolation
level
read
committed
;
create
table
innodb_bug52663
(
what
varchar
(
5
),
id
integer
,
count
integer
,
primary
key
(
what
,
id
))
engine
=
innodb
;
insert
into
innodb_bug52663
values
(
'total'
,
0
,
0
);
begin
;
connect
(
addconroot
,
localhost
,
root
,,);
connection
addconroot
;
set
session
transaction
isolation
level
read
committed
;
begin
;
connection
default
;
update
innodb_bug52663
set
count
=
count
+
1
where
what
=
'total'
and
id
=
0
;
select
*
from
innodb_bug52663
;
connection
addconroot
;
--
error
ER_LOCK_WAIT_TIMEOUT
update
innodb_bug52663
set
count
=
count
+
1
where
what
=
'total'
and
id
=
0
;
select
*
from
innodb_bug52663
;
connection
default
;
commit
;
connection
addconroot
;
update
innodb_bug52663
set
count
=
count
+
1
where
what
=
'total'
and
id
=
0
;
commit
;
select
*
from
innodb_bug52663
;
connection
default
;
select
*
from
innodb_bug52663
;
drop
table
innodb_bug52663
;
mysql-test/suite/innodb_plugin/t/innodb_bug52745.test
0 → 100644
View file @
7b474a8e
--
source
include
/
have_innodb_plugin
.
inc
let
$file_format
=
`select @@innodb_file_format`
;
let
$file_format_check
=
`select @@innodb_file_format_check`
;
let
$file_per_table
=
`select @@innodb_file_per_table`
;
SET
GLOBAL
innodb_file_format
=
'Barracuda'
;
SET
GLOBAL
innodb_file_per_table
=
on
;
CREATE
TABLE
bug52745
(
a2
int
(
10
)
unsigned
DEFAULT
NULL
,
col37
time
DEFAULT
NULL
,
col38
char
(
229
)
CHARACTER
SET
utf8
DEFAULT
NULL
,
col39
text
,
col40
timestamp
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
,
col41
int
(
10
)
unsigned
DEFAULT
NULL
,
col42
varchar
(
248
)
CHARACTER
SET
utf8
DEFAULT
NULL
,
col43
smallint
(
5
)
unsigned
zerofill
DEFAULT
NULL
,
col44
varchar
(
150
)
CHARACTER
SET
utf8
DEFAULT
NULL
,
col45
float
unsigned
zerofill
DEFAULT
NULL
,
col46
binary
(
1
)
DEFAULT
NULL
,
col47
tinyint
(
4
)
DEFAULT
NULL
,
col48
tinyint
(
1
)
DEFAULT
NULL
,
col49
timestamp
NOT
NULL
DEFAULT
'0000-00-00 00:00:00'
,
col50
binary
(
1
)
DEFAULT
NULL
,
col51
double
unsigned
zerofill
DEFAULT
NULL
,
col52
int
(
10
)
unsigned
DEFAULT
NULL
,
col53
time
DEFAULT
NULL
,
col54
double
unsigned
DEFAULT
NULL
,
col55
time
DEFAULT
NULL
,
col56
mediumtext
CHARACTER
SET
latin2
,
col57
blob
,
col58
decimal
(
52
,
16
)
unsigned
zerofill
NOT
NULL
DEFAULT
'000000000000000000000000000000000000.0000000000000000'
,
col59
binary
(
1
)
DEFAULT
NULL
,
col60
longblob
,
col61
time
DEFAULT
NULL
,
col62
longtext
CHARACTER
SET
utf8
COLLATE
utf8_persian_ci
,
col63
timestamp
NOT
NULL
DEFAULT
'0000-00-00 00:00:00'
,
col64
int
(
10
)
unsigned
DEFAULT
NULL
,
col65
date
DEFAULT
NULL
,
col66
timestamp
NOT
NULL
DEFAULT
'0000-00-00 00:00:00'
,
col67
binary
(
1
)
DEFAULT
NULL
,
col68
tinyblob
,
col69
date
DEFAULT
NULL
,
col70
tinyint
(
3
)
unsigned
zerofill
DEFAULT
NULL
,
col71
varchar
(
44
)
CHARACTER
SET
utf8
DEFAULT
NULL
,
col72
datetime
DEFAULT
NULL
,
col73
smallint
(
5
)
unsigned
zerofill
DEFAULT
NULL
,
col74
longblob
,
col75
bit
(
34
)
DEFAULT
NULL
,
col76
float
unsigned
zerofill
DEFAULT
NULL
,
col77
year
(
2
)
DEFAULT
NULL
,
col78
tinyint
(
3
)
unsigned
DEFAULT
NULL
,
col79
set
(
'msfheowh'
,
'tbpxbgf'
,
'by'
,
'wahnrjw'
,
'myqfasxz'
,
'rsokyumrt'
)
CHARACTER
SET
latin2
DEFAULT
NULL
,
col80
datetime
DEFAULT
NULL
,
col81
smallint
(
6
)
DEFAULT
NULL
,
col82
enum
(
'xtaurnqfqz'
,
'rifrse'
,
'kuzwpbvb'
,
'niisabk'
,
'zxavro'
,
'rbvasv'
,
''
,
'uulrfaove'
,
''
,
''
)
DEFAULT
NULL
,
col83
bigint
(
20
)
unsigned
zerofill
DEFAULT
NULL
,
col84
float
unsigned
zerofill
DEFAULT
NULL
,
col85
double
DEFAULT
NULL
,
col86
enum
(
'ylannv'
,
''
,
'vlkhycqc'
,
'snke'
,
'cxifustp'
,
'xiaxaswzp'
,
'oxl'
)
CHARACTER
SET
latin1
COLLATE
latin1_german2_ci
DEFAULT
NULL
,
col87
varbinary
(
221
)
DEFAULT
NULL
,
col88
double
unsigned
DEFAULT
NULL
,
col89
float
unsigned
zerofill
DEFAULT
NULL
,
col90
tinyblob
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
latin1
ROW_FORMAT
=
COMPRESSED
KEY_BLOCK_SIZE
=
1
;
INSERT
INTO
bug52745
SET
col40
=
'0000-00-00 00:00:00'
,
col51
=
16547
,
col53
=
'7711484'
,
col54
=-
28604
,
col55
=
'7112612'
,
col56
=
'wakefulness\''
,
col57
=
repeat
(
'absorbefacient\''
,
106
),
col58
=
11027
,
col59
=
'AM09gW7'
,
col60
=
repeat
(
'Noelani\''
,
16
),
col61
=
'2520576'
,
col62
=
'substitutiv'
,
col63
=
'19950106155112'
,
col64
=-
12038
,
col65
=
'86238806'
,
col66
=
'19600719080256'
,
col68
=
repeat
(
'Sagittarius\''
,
54
),
col69
=
'38943902'
,
col70
=
1232
,
col71
=
'Elora\''
,
col74
=
repeat
(
'zipp'
,
11
),
col75
=
'0'
,
col76
=
23254
,
col78
=
13247
,
col79
=
'56219'
,
col80
=
'20500609035724'
,
col81
=
11632
,
col82
=
7
,
col84
=-
23863
,
col85
=
6341
,
col87
=
'HZdkf.4 s7t,5Rmq 8so fmr,ruGLUG25TrtI.yQ 2SuHq0ML7rw7.4 b2yf2E5TJxOtBBZImezDnzpj,uPYfznnEUDN1e9aQoO 2DsplB7TFWy oQJ br HLF :F,eQ p4i1oWsr lL3PG,hjCz6hYqN h1QTjLCjrv:QCdSzpYBibJAtZCxLOk3l6Blsh.W'
,
col88
=
16894
,
col89
=
6161
,
col90
=
repeat
(
'gale'
,
48
);
SHOW
WARNINGS
;
DROP
TABLE
bug52745
;
EVAL
SET
GLOBAL
innodb_file_format
=
$file_format
;
EVAL
SET
GLOBAL
innodb_file_format_check
=
$file_format_check
;
EVAL
SET
GLOBAL
innodb_file_per_table
=
$file_per_table
;
storage/innobase/lock/lock0lock.c
View file @
7b474a8e
...
...
@@ -4538,13 +4538,34 @@ lock_rec_queue_validate(
rec
,
impl_trx
));
}
}
#if 0
if (index && !(index->type & DICT_CLUSTERED)) {
/* The kernel mutex may get released temporarily in the
next function call: we have to release lock table mutex
to obey the latching order */
/* NOTE: This is a bogus check that would fail in the
following case: Our transaction is updating a
row. After it has updated the clustered index record,
it goes to a secondary index record and finds someone
else holding an explicit S- or X-lock on that
secondary index record, presumably from a locking
read. Our transaction cannot update the secondary
index immediately, but places a waiting X-lock request
on the secondary index record. There is nothing
illegal in this. The assertion is simply too strong. */
/* From the locking point of view, each secondary
index is a separate table. A lock that is held on
secondary index rec does not give any rights to modify
or read the clustered index rec. Therefore, we can
think of the sec index as a separate 'table' from the
clust index 'table'. Conversely, a transaction that
has acquired a lock on and modified a clustered index
record may need to wait for a lock on the
corresponding record in a secondary index. */
impl_trx = lock_sec_rec_some_has_impl_off_kernel(
rec, index, offsets);
...
...
@@ -4555,7 +4576,7 @@ lock_rec_queue_validate(
rec, impl_trx));
}
}
#endif
lock
=
lock_rec_get_first
(
rec
);
while
(
lock
)
{
...
...
storage/innobase/row/row0sel.c
View file @
7b474a8e
...
...
@@ -3956,6 +3956,7 @@ row_search_for_mysql(
case
DB_LOCK_WAIT
:
if
(
UNIV_LIKELY
(
prebuilt
->
row_read_type
!=
ROW_READ_TRY_SEMI_CONSISTENT
)
||
unique_search
||
index
!=
clust_index
)
{
goto
lock_wait_or_error
;
...
...
storage/innodb_plugin/ChangeLog
View file @
7b474a8e
2010-04-26 The InnoDB Team
* row/row0sel.c:
Fix Bug#52663 Lost update incrementing column value under
READ COMMITTED isolation level
2010-04-22 The InnoDB Team
* include/dict0boot.h, dict/dict0boot.c:
...
...
storage/innodb_plugin/lock/lock0lock.c
View file @
7b474a8e
...
...
@@ -4710,6 +4710,7 @@ lock_rec_queue_validate(
ut_a
(
lock_rec_has_expl
(
LOCK_X
|
LOCK_REC_NOT_GAP
,
block
,
heap_no
,
impl_trx
));
}
#if 0
} else {
/* The kernel mutex may get released temporarily in the
...
...
@@ -4720,6 +4721,27 @@ lock_rec_queue_validate(
(fil_space_t::latch), the following check WILL break
latching order and may cause a deadlock of threads. */
/* NOTE: This is a bogus check that would fail in the
following case: Our transaction is updating a
row. After it has updated the clustered index record,
it goes to a secondary index record and finds someone
else holding an explicit S- or X-lock on that
secondary index record, presumably from a locking
read. Our transaction cannot update the secondary
index immediately, but places a waiting X-lock request
on the secondary index record. There is nothing
illegal in this. The assertion is simply too strong. */
/* From the locking point of view, each secondary
index is a separate table. A lock that is held on
secondary index rec does not give any rights to modify
or read the clustered index rec. Therefore, we can
think of the sec index as a separate 'table' from the
clust index 'table'. Conversely, a transaction that
has acquired a lock on and modified a clustered index
record may need to wait for a lock on the
corresponding record in a secondary index. */
impl_trx = lock_sec_rec_some_has_impl_off_kernel(
rec, index, offsets);
...
...
@@ -4730,6 +4752,7 @@ lock_rec_queue_validate(
ut_a(lock_rec_has_expl(LOCK_X | LOCK_REC_NOT_GAP,
block, heap_no, impl_trx));
}
#endif
}
lock
=
lock_rec_get_first
(
block
,
heap_no
);
...
...
storage/innodb_plugin/log/log0recv.c
View file @
7b474a8e
...
...
@@ -300,11 +300,11 @@ recv_sys_init(
flush_list during recovery process.
As this initialization is done while holding the buffer pool
mutex we perform it before acquiring recv_sys->mutex. */
#ifndef UNIV_HOTBACKUP
buf_flush_init_flush_rbt
();
mutex_enter
(
&
(
recv_sys
->
mutex
));
#ifndef UNIV_HOTBACKUP
recv_sys
->
heap
=
mem_heap_create_in_buffer
(
256
);
#else
/* !UNIV_HOTBACKUP */
recv_sys
->
heap
=
mem_heap_create
(
256
);
...
...
storage/innodb_plugin/row/row0sel.c
View file @
7b474a8e
...
...
@@ -4027,6 +4027,7 @@ row_search_for_mysql(
case
DB_LOCK_WAIT
:
if
(
UNIV_LIKELY
(
prebuilt
->
row_read_type
!=
ROW_READ_TRY_SEMI_CONSISTENT
)
||
unique_search
||
index
!=
clust_index
)
{
goto
lock_wait_or_error
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment