Merge lp:~percona-dev/percona-xtradb/extensions-1.0.6-fix-bug589639 into lp:~percona-dev/percona-xtradb/extensions-1.0.6

Proposed by Yasufumi Kinoshita
Status: Merged
Approved by: Vadim Tkachenko
Approved revision: 159
Merged at revision: 159
Proposed branch: lp:~percona-dev/percona-xtradb/extensions-1.0.6-fix-bug589639
Merge into: lp:~percona-dev/percona-xtradb/extensions-1.0.6
Diff against target: 63 lines (+52/-1)
1 file modified
innodb_recovery_patches.patch (+52/-1)
To merge this branch: bzr merge lp:~percona-dev/percona-xtradb/extensions-1.0.6-fix-bug589639
Reviewer Review Type Date Requested Status
Vadim Tkachenko Approve
Review via email: mp+26908@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
=== modified file 'innodb_recovery_patches.patch'
--- innodb_recovery_patches.patch 2010-03-26 10:01:13 +0000
+++ innodb_recovery_patches.patch 2010-06-07 08:35:32 +0000
@@ -80,7 +80,58 @@
80 80
81 return(0);81 return(0);
82 }82 }
83@@ -620,11 +660,11 @@83@@ -606,6 +646,50 @@
84 /* It is a single table tablespace and the .ibd file is
85 missing: do nothing */
86
87+ /* the log records should be treated here same reason
88+ for http://bugs.mysql.com/bug.php?id=43948 */
89+
90+ if (recv_recovery_is_on()) {
91+ recv_addr_t* recv_addr;
92+
93+ mutex_enter(&(recv_sys->mutex));
94+
95+ if (recv_sys->apply_log_recs == FALSE) {
96+ mutex_exit(&(recv_sys->mutex));
97+ goto not_to_recover;
98+ }
99+
100+ for (i = 0; i < n_stored; i++) {
101+ /* recv_get_fil_addr_struct() */
102+ recv_addr = HASH_GET_FIRST(recv_sys->addr_hash,
103+ hash_calc_hash(ut_fold_ulint_pair(space, page_nos[i]),
104+ recv_sys->addr_hash));
105+ while (recv_addr) {
106+ if ((recv_addr->space == space)
107+ && (recv_addr->page_no == page_nos[i])) {
108+ break;
109+ }
110+ recv_addr = HASH_GET_NEXT(addr_hash, recv_addr);
111+ }
112+
113+ if ((recv_addr == NULL)
114+ || (recv_addr->state == RECV_BEING_PROCESSED)
115+ || (recv_addr->state == RECV_PROCESSED)) {
116+ continue;
117+ }
118+
119+ recv_addr->state = RECV_PROCESSED;
120+
121+ ut_a(recv_sys->n_addrs);
122+ recv_sys->n_addrs--;
123+ }
124+
125+ mutex_exit(&(recv_sys->mutex));
126+
127+ fprintf(stderr, " (cannot find space: %lu)", space);
128+ }
129+not_to_recover:
130+
131 return;
132 }
133
134@@ -620,11 +704,11 @@
84 while (buf_pool->n_pend_reads >= recv_n_pool_free_frames / 2) {135 while (buf_pool->n_pend_reads >= recv_n_pool_free_frames / 2) {
85 136
86 os_aio_simulated_wake_handler_threads();137 os_aio_simulated_wake_handler_threads();

Subscribers

No one subscribed via source and target branches