Spurious error when innobackupex fails due to a failed system call
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona XtraBackup moved to https://jira.percona.com/projects/PXB |
Invalid
|
Medium
|
Unassigned | ||
2.0 |
Won't Fix
|
Medium
|
Unassigned | ||
2.1 |
Invalid
|
Medium
|
Unassigned | ||
2.2 |
Invalid
|
Medium
|
Unassigned | ||
2.3 |
Invalid
|
Medium
|
Unassigned |
Bug Description
I am reporting it as a separate bug as its a more general bug.
So coming from this bug https:/
Failed to stream xtrabackup_binary: Inappropriate ioctl for device at /usr/bin/
This is spurious due to the fact that it does not report the correct error message, the error is actually due to a broken pipe which is found when I strace the call to xbstream inside innobackupex.
Following is the entire output of the innobackupex run:
[root@centos6_01 backup_test]# innobackupex --stream=xbstream ./ --include=test.* | xbstream -x -C uncompress/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Ireland Ltd 2009-2012. All Rights Reserved.
This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
130314 11:35:33 innobackupex: Starting mysql with options: --unbuffered --
130314 11:35:33 innobackupex: Connected to database with mysql child process (pid=6349)
130314 11:35:39 innobackupex: Connection to database server closed
IMPORTANT: Please check that the backup run completes successfully.
At the end of a successful backup run innobackupex
prints "completed OK!".
innobackupex: Using mysql Ver 14.14 Distrib 5.5.29, for Linux (x86_64) using readline 5.1
innobackupex: Using mysql server version Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
innobackupex: Created backup directory /root/backup_test
130314 11:35:40 innobackupex: Starting mysql with options: --unbuffered --
130314 11:35:40 innobackupex: Connected to database with mysql child process (pid=6379)
130314 11:35:42 innobackupex: Connection to database server closed
130314 11:35:42 innobackupex: Starting ibbackup with command: xtrabackup_55 --defaults-
innobackupex: Waiting for ibbackup (pid=6387) to suspend
innobackupex: Suspend file '/tmp/xtrabacku
xtrabackup_55 version 2.0.5 for Percona Server 5.5.16 Linux (x86_64) (revision id: 499)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /var/lib/mysql
xtrabackup: Target instance is assumed as followings.
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: using O_DIRECT
xtrabackup: tables regcomp(test.*): Success
130314 11:35:42 InnoDB: Warning: allocated tablespace 15, old maximum was 9
>> log scanned up to (23311379)
[01] Streaming ./ibdata1
>> log scanned up to (23311379)
[01] ...done
[01] Streaming ./test/t2.ibd
[01] ...done
[01] Streaming ./test/t3.ibd
[01] ...done
[01] Streaming ./test/
[01] ...done
130314 11:35:50 innobackupex: Continuing after ibbackup has suspended
130314 11:35:50 innobackupex: Starting mysql with options: --unbuffered --
130314 11:35:50 innobackupex: Connected to database with mysql child process (pid=6401)
>> log scanned up to (23311379)
130314 11:35:52 innobackupex: Starting to lock all tables...
>> log scanned up to (23311379)
>> log scanned up to (23311379)
130314 11:36:02 innobackupex: All tables locked and flushed to disk
130314 11:36:02 innobackupex: Starting to backup non-InnoDB tables and files
innobackupex: in subdirectories of '/var/lib/mysql'
percona.
percona.db.opt is skipped because it does not match test.*.
innobackupex: Backing up files '/var/lib/
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
performance_
innobackupex: Backing up file '/var/lib/
innobackupex: Backing up file '/var/lib/
innobackupex: Backing up file '/var/lib/
innobackupex: Backing up file '/var/lib/
innobackupex: Backing up files '/var/lib/
mysql.db.MYI is skipped because it does not match test.*.
mysql.func.MYD is skipped because it does not match test.*.
mysql.user.MYD is skipped because it does not match test.*.
mysql.proc.MYI is skipped because it does not match test.*.
mysql.time_
mysql.time_
mysql.help_
mysql.help_
mysql.general_
mysql.time_
mysql.event.frm is skipped because it does not match test.*.
mysql.func.frm is skipped because it does not match test.*.
mysql.db.MYD is skipped because it does not match test.*.
mysql.servers.MYD is skipped because it does not match test.*.
mysql.help_
mysql.time_
mysql.user.MYI is skipped because it does not match test.*.
mysql.help_
mysql.time_
mysql.help_
mysql.servers.MYI is skipped because it does not match test.*.
mysql.slow_log.CSV is skipped because it does not match test.*.
mysql.proc.frm is skipped because it does not match test.*.
mysql.time_
mysql.help_
mysql.procs_
mysql.slow_log.frm is skipped because it does not match test.*.
mysql.user.frm is skipped because it does not match test.*.
mysql.ndb_
mysql.slow_log.CSM is skipped because it does not match test.*.
mysql.plugin.frm is skipped because it does not match test.*.
mysql.help_
mysql.plugin.MYI is skipped because it does not match test.*.
mysql.procs_
mysql.columns_
mysql.columns_
mysql.func.MYI is skipped because it does not match test.*.
mysql.event.MYD is skipped because it does not match test.*.
mysql.time_zone.MYI is skipped because it does not match test.*.
mysql.time_
mysql.host.MYD is skipped because it does not match test.*.
mysql.time_
mysql.help_
mysql.general_
mysql.help_
mysql.proxies_
mysql.proxies_
mysql.plugin.MYD is skipped because it does not match test.*.
mysql.time_
mysql.servers.frm is skipped because it does not match test.*.
mysql.proxies_
mysql.ndb_
mysql.time_zone.MYD is skipped because it does not match test.*.
mysql.time_
mysql.columns_
mysql.time_
mysql.time_zone.frm is skipped because it does not match test.*.
mysql.tables_
mysql.help_
mysql.help_
mysql.tables_
mysql.tables_
mysql.procs_
mysql.event.MYI is skipped because it does not match test.*.
mysql.host.MYI is skipped because it does not match test.*.
mysql.time_
mysql.general_
mysql.ndb_
mysql.db.frm is skipped because it does not match test.*.
mysql.host.frm is skipped because it does not match test.*.
mysql.help_
mysql.proc.MYD is skipped because it does not match test.*.
130314 11:36:02 innobackupex: Finished backing up non-InnoDB tables and files
130314 11:36:02 innobackupex: Waiting for log copying to finish
xtrabackup: The latest check point (for incremental): '23311379'
xtrabackup: Stopping log copying thread.
.>> log scanned up to (23311379)
xtrabackup: Streaming transaction log from a temporary file...
xtrabackup: Done.
xtrabackup: Transaction log of lsn (23311379) to (23311379) was copied.
xb_stream_
130314 11:36:05 innobackupex: All tables unlocked
130314 11:36:05 innobackupex: Connection to database server closed
innobackupex: Backup created in directory '/root/backup_test'
innobackupex: MySQL binlog position: filename '', position
Failed to stream xtrabackup_binary: Inappropriate ioctl for device at /usr/bin/
The strace log shows the following:
write(1, "XBSTCK01\
--- SIGPIPE (Broken pipe) @ 0 (0) ---
+++ killed by SIGPIPE +++
It would be good to have the exact error code reported.
summary: |
- Spurious error when innobackuex fails due to a failed system call + Spurious error when innobackupex fails due to a failed system call |
I believe this bug is no longer valid for any supported versions: we no longer attempt to print $! when a system() call fails. Instead, we print its return value.