Merge lp:~akopytov/percona-xtrabackup/bug759225-1.6 into lp:percona-xtrabackup/1.6

Proposed by Alexey Kopytov
Status: Merged
Approved by: Stewart Smith
Approved revision: no longer in the source branch.
Merged at revision: 288
Proposed branch: lp:~akopytov/percona-xtrabackup/bug759225-1.6
Merge into: lp:percona-xtrabackup/1.6
Diff against target: 83 lines (+56/-1)
3 files modified
innobackupex (+1/-1)
test/t/bug759225.sh (+51/-0)
xtrabackup.c (+4/-0)
To merge this branch: bzr merge lp:~akopytov/percona-xtrabackup/bug759225-1.6
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve
Review via email: mp+76366@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote :
Revision history for this message
Stewart Smith (stewart) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'innobackupex'
--- innobackupex 2011-09-16 07:02:15 +0000
+++ innobackupex 2011-09-21 09:42:23 +0000
@@ -801,7 +801,7 @@
801 my $innodb_flush_method = 801 my $innodb_flush_method =
802 get_option(\%config, 'mysqld', 'innodb_flush_method');802 get_option(\%config, 'mysqld', 'innodb_flush_method');
803 my $innodb_use_odirect;803 my $innodb_use_odirect;
804 $innodb_use_odirect = 1 if $innodb_flush_method =~ m/O_DIRECT/i;804 $innodb_use_odirect = 1 if $innodb_flush_method =~ m/^(ALL_)?O_DIRECT$/i;
805805
806 my $subdir;806 my $subdir;
807 my @list;807 my @list;
808808
=== added file 'test/t/bug759225.sh'
--- test/t/bug759225.sh 1970-01-01 00:00:00 +0000
+++ test/t/bug759225.sh 2011-09-21 09:42:23 +0000
@@ -0,0 +1,51 @@
1########################################################################
2# Bug #759225: xtrabackup does not support ALL_O_DIRECT for
3# innodb_flush_method
4########################################################################
5
6. inc/common.sh
7
8if test "`uname -s`" != "Linux"
9then
10 echo "Requires Linux" > $SKIPPED_REASON
11 exit $SKIPPED_EXIT_CODE
12fi
13
14if [ -z "$XTRADB_VERSION" ]; then
15 echo "Requires XtraDB" > $SKIPPED_REASON
16 exit $SKIPPED_EXIT_CODE
17fi
18
19init
20run_mysqld
21load_sakila
22
23# Take backup
24echo "innodb_flush_method=ALL_O_DIRECT" >> $topdir/my.cnf
25mkdir -p $topdir/backup
26innobackupex --stream=tar $topdir/backup > $topdir/backup/out.tar
27stop_mysqld
28
29# See if tar4ibd was using O_DIRECT
30if ! grep "tar4ibd: using O_DIRECT for the input file" $OUTFILE ;
31then
32 vlog "tar4ibd was not using O_DIRECT for the input file."
33 exit -1
34fi
35
36# Remove datadir
37rm -r $mysql_datadir
38# Restore sakila
39vlog "Applying log"
40backup_dir=$topdir/backup
41cd $backup_dir
42$TAR -ixvf out.tar
43cd - >/dev/null 2>&1
44innobackupex --apply-log --defaults-file=$topdir/my.cnf $backup_dir
45vlog "Restoring MySQL datadir"
46mkdir -p $mysql_datadir
47innobackupex --copy-back --defaults-file=$topdir/my.cnf $backup_dir
48
49run_mysqld
50# Check sakila
51${MYSQL} ${MYSQL_ARGS} -e "SELECT count(*) from actor" sakila
052
=== modified file 'xtrabackup.c'
--- xtrabackup.c 2011-09-14 12:48:27 +0000
+++ xtrabackup.c 2011-09-21 09:42:23 +0000
@@ -3508,6 +3508,10 @@
3508 "async_unbuffered")) {3508 "async_unbuffered")) {
3509 srv_win_file_flush_method = SRV_WIN_IO_UNBUFFERED; 3509 srv_win_file_flush_method = SRV_WIN_IO_UNBUFFERED;
3510#endif3510#endif
3511#ifdef XTRADB_BASED
3512 } else if (0 == ut_strcmp(srv_file_flush_method_str, "ALL_O_DIRECT")) {
3513 srv_unix_file_flush_method = SRV_UNIX_ALL_O_DIRECT;
3514#endif
3511 } else {3515 } else {
3512 fprintf(stderr, 3516 fprintf(stderr,
3513 "xtrabackup: Unrecognized value %s for innodb_flush_method\n",3517 "xtrabackup: Unrecognized value %s for innodb_flush_method\n",

Subscribers

People subscribed via source and target branches