Merge lp:~percona-dev/percona-server/release-5.1.47-11-fix-bug589639 into lp:percona-server/release-5.1.47-11

Proposed by Yasufumi Kinoshita
Status: Merged
Approved by: Vadim Tkachenko
Approved revision: no longer in the source branch.
Merged at revision: 35
Proposed branch: lp:~percona-dev/percona-server/release-5.1.47-11-fix-bug589639
Merge into: lp:percona-server/release-5.1.47-11
Diff against target: 74 lines (+52/-1)
2 files modified
innodb_extend_slow.patch (+1/-1)
innodb_recovery_patches.patch (+51/-0)
To merge this branch: bzr merge lp:~percona-dev/percona-server/release-5.1.47-11-fix-bug589639
Reviewer Review Type Date Requested Status
Vadim Tkachenko Approve
Review via email: mp+26915@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Vadim Tkachenko (vadim-tk) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'innodb_extend_slow.patch'
2--- innodb_extend_slow.patch 2010-05-26 10:15:29 +0000
3+++ innodb_extend_slow.patch 2010-06-07 09:06:23 +0000
4@@ -312,7 +312,7 @@
5
6 if (UNIV_UNLIKELY(err == DB_TABLESPACE_DELETED)) {
7 tablespace_deleted:
8-@@ -684,12 +687,12 @@
9+@@ -728,12 +731,12 @@
10 if ((i + 1 == n_stored) && sync) {
11 buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
12 zip_size, TRUE, tablespace_version,
13
14=== modified file 'innodb_recovery_patches.patch'
15--- innodb_recovery_patches.patch 2010-05-26 10:15:29 +0000
16+++ innodb_recovery_patches.patch 2010-06-07 09:06:23 +0000
17@@ -48,6 +48,57 @@
18
19 return(0);
20 }
21+@@ -606,6 +646,50 @@
22+ /* It is a single table tablespace and the .ibd file is
23+ missing: do nothing */
24+
25++ /* the log records should be treated here same reason
26++ for http://bugs.mysql.com/bug.php?id=43948 */
27++
28++ if (recv_recovery_is_on()) {
29++ recv_addr_t* recv_addr;
30++
31++ mutex_enter(&(recv_sys->mutex));
32++
33++ if (recv_sys->apply_log_recs == FALSE) {
34++ mutex_exit(&(recv_sys->mutex));
35++ goto not_to_recover;
36++ }
37++
38++ for (i = 0; i < n_stored; i++) {
39++ /* recv_get_fil_addr_struct() */
40++ recv_addr = HASH_GET_FIRST(recv_sys->addr_hash,
41++ hash_calc_hash(ut_fold_ulint_pair(space, page_nos[i]),
42++ recv_sys->addr_hash));
43++ while (recv_addr) {
44++ if ((recv_addr->space == space)
45++ && (recv_addr->page_no == page_nos[i])) {
46++ break;
47++ }
48++ recv_addr = HASH_GET_NEXT(addr_hash, recv_addr);
49++ }
50++
51++ if ((recv_addr == NULL)
52++ || (recv_addr->state == RECV_BEING_PROCESSED)
53++ || (recv_addr->state == RECV_PROCESSED)) {
54++ continue;
55++ }
56++
57++ recv_addr->state = RECV_PROCESSED;
58++
59++ ut_a(recv_sys->n_addrs);
60++ recv_sys->n_addrs--;
61++ }
62++
63++ mutex_exit(&(recv_sys->mutex));
64++
65++ fprintf(stderr, " (cannot find space: %lu)", space);
66++ }
67++not_to_recover:
68++
69+ return;
70+ }
71+
72 diff -ruN a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc
73 --- a/storage/innodb_plugin/handler/ha_innodb.cc 2010-04-30 10:49:58.000000000 +0900
74 +++ b/storage/innodb_plugin/handler/ha_innodb.cc 2010-04-30 13:53:47.000000000 +0900

Subscribers

No one subscribed via source and target branches