[Bug 1576187] Re: backuppc/smb: BackupPC failes to backup SMB shares after smbclient update
Andreas Hasenack
andreas at canonical.com
Tue Oct 16 14:54:46 UTC 2018
** Description changed:
[Impact]
- * An explanation of the effects of the bug on users and
-
- * justification for backporting the fix to the stable release.
-
- * In addition, it is helpful, but not required, to include an
- explanation of how the upload fixes this bug.
+ * An explanation of the effects of the bug on users and
+
+ * justification for backporting the fix to the stable release.
+
+ * In addition, it is helpful, but not required, to include an
+ explanation of how the upload fixes this bug.
[Test Case]
- * detailed instructions how to reproduce the bug
-
- * these should allow someone who is not familiar with the affected
- package to reproduce the bug and verify that the updated package fixes
- the problem.
+ We will want to test four scenarios:
+ a) old samba, old backuppc: should work
+ b) old samba, new backuppc: should work
+ c) new samba, new backuppc: should work
+ d) new samba, old backuppc: should fail (this bug)
+
+ I suggest to proceed in the order listed above, as it's easier to
+ downgrade backuppc (just one package) than to downgrade the whole samba
+ suite.
+
+ The steps below are generic.
+
+ * Install samba and backuppc, and accept all defaults. Keep in mind
+ which scenario from above you are testing, and adjust
+ /etc/apt/sources.list accordingly to either include or not updates.
+
+ sudo apt update
+ sudo apt install samba backuppc
+
+ * If you want to use the web interface, take note of the password given during the installation and restart apache2 at the end:
+ sudo service apache2 restart
+
+ * If you want to regenerate the password, install apache2-utils and run the htpasswd command:
+ sudo apt install apache2-utils
+ sudo htpasswd /etc/backuppc/htpasswd backuppc
+
+ * Add this snippet to the end of /etc/samba/smb.conf:
+ [C$]
+ path = /c
+ guest ok = yes
+ read only = no
+
+ * Create /c and copy some content into it:
+ sudo mkdir /c
+ sudo chmod 1777 /c
+ sudo cp -a /usr/bin /c
+
+ * restart the samba services
+ sudo service smbd restart; sudo service nmbd restart
+
+ * overwrite /etc/backuppc/localhost.pl with this;
+ $Conf{XferMethod} = 'smb';
+ $Conf{XferLogLevel} = 1;
+ $Conf{ClientCharset} = '';
+ $Conf{ClientCharsetLegacy} = 'iso-8859-1';
+ $Conf{SmbShareName} = 'C$';
+ $Conf{SmbShareUserName} = '';
+ $Conf{SmbSharePasswd} = '';
+
+ * Now you are ready to run the backup command. Depending on the scenario
+ being tested, it will work or fail.
+
+ This is the working scenario:
+ $ sudo -u backuppc -H /usr/share/backuppc/bin/BackupPC_dump -f localhost
+ started full dump, share=C$
+ xferPids 7009,7008
+ full backup complete
+ $ echo $?
+ 0
+
+ This is the failing scenario:
+
+ $ sudo -u backuppc -H /usr/share/backuppc/bin/BackupPC_dump -f localhost
+ started full dump, share=C$
+ xferPids 11008,11007
+ dump failed: No files dumped for share C$
+ link localhost
+ $ echo $?
+ 2
+
[Regression Potential]
- * discussion of how regressions are most likely to manifest as a result
+ * discussion of how regressions are most likely to manifest as a result
of this change.
- * It is assumed that any SRU candidate patch is well-tested before
- upload and has a low overall risk of regression, but it's important
- to make the effort to think about what ''could'' happen in the
- event of a regression.
-
- * This both shows the SRU team that the risks have been considered,
- and provides guidance to testers in regression-testing the SRU.
+ * It is assumed that any SRU candidate patch is well-tested before
+ upload and has a low overall risk of regression, but it's important
+ to make the effort to think about what ''could'' happen in the
+ event of a regression.
+
+ * This both shows the SRU team that the risks have been considered,
+ and provides guidance to testers in regression-testing the SRU.
[Other Info]
-
- * Anything else you think is useful to include
- * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
- * and address these questions in advance
-
+
+ * Anything else you think is useful to include
+ * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
+ * and address these questions in advance
[Original Description]
After the current update of samba 4.1.6 to 4.3.8 samba on trusty the
BackupPC smb transfer is broken.
Several bugs in smbclient >= 4.1.6 in combination with BackupPC:
https://bugzilla.samba.org/show_bug.cgi?id=11642 (tarmode is no longer verbose and ignores verbose flag)
- patch1 (reenable tarmode verbose, and skip inaccessible files) https://attachments.samba.org/attachment.cgi?id=11733
- patch 2 (modified clitar.c for tarmode verbose) https://attachments.samba.org/attachment.cgi?id=11734
https://bugzilla.redhat.com/show_bug.cgi?id=1294761 (mis-interpreted failure of new tar:\d+ lines) (fix: https://bugzilla.redhat.com/attachment.cgi?id=1111264&action=diff)
Package Information:
0)root at essrv2:~ $ dpkg -l | grep -E "(smb|samba|backuppc)"
ii backuppc 3.3.0-1ubuntu1 amd64 high-performance, enterprise-grade system for backing up PCs
ii libpam-smbpass:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 pluggable authentication module for Samba
ii libsmbclient:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 shared library for communication with SMB/CIFS servers
ii python-samba 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Python bindings for Samba
ii samba 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 SMB/CIFS file, print, and login server for Unix
ii samba-common 2:4.3.8+dfsg-0ubuntu0.14.04.2 all common files used by both the Samba server and client
ii samba-common-bin 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba common files used by both the server and the client
ii samba-doc 2:4.3.8+dfsg-0ubuntu0.14.04.2 all Samba documentation
ii samba-dsdb-modules 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba Directory Services Database
ii samba-libs:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba core libraries
ii samba-vfs-modules 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba Virtual FileSystem plugins
ii smbclient 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 command-line SMB/CIFS clients for Unix
System information of the update:
0)root at essrv2:~ $ grep samba /var/log/apt/history.log | sed "s|),|)\n|g" | grep -E "(samba|smb)"
Upgrade: libpam-smbpass:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
python-samba:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-dsdb-modules:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-common-bin:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-libs:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-doc:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
smbclient:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-vfs-modules:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-common:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
libsmbclient:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
Log of backup when failing:
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 25749,25748
Domain=[E_SPIRIT] OS=[Windows 6.1] Server=[Samba 4.3.8-Ubuntu]
tar:316 tarmode is now full, system, hidden, noreset, quiet
tar:712 Total bytes received: 224900956
create 644 0/0 138326 esrouter.2016-04-26.packages
pool 644 0/0 136349 esrouter.2016-04-23.packages
pool 644 0/0 27551 esrouter.2016-04-23.dpkg
create 644 0/0 56037724 esrouter.2016-04-23.evh.tar.xz
create 644 0/0 56017156 esrouter.2016-04-24.evh.tar.xz
create 644 0/0 27964 esrouter.2016-04-26.dpkg
pool 644 0/0 136349 esrouter.2016-04-24.packages
create 644 0/0 138326 esrouter.2016-04-25.packages
create 644 0/0 27964 esrouter.2016-04-25.dpkg
pool 644 0/0 27551 esrouter.2016-04-24.dpkg
create 644 0/0 56090628 esrouter.2016-04-26.evh.tar.xz
create 644 0/0 56095068 esrouter.2016-04-25.evh.tar.xz
tarExtract: Done: 0 errors, 4 filesExist, 327800 sizeExist, 77902 sizeExistComp, 12 filesTotal, 224900956 sizeTotal
Got fatal error during xfer (No files dumped for share backups)
Backup aborted (No files dumped for share backups)
Saving this as a partial backup, replacing the prior one (got 12 and 0 files versus 0)
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full\ verbose -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 23275,23274
Domain=[E_SPIRIT] OS=[Windows 6.1] Server=[Samba 4.3.8-Ubuntu]
tar:316 tarmode is now full, system, hidden, noreset, verbose
tar:712 Total bytes received: 225006494
create 644 0/0 56140872 esrouter.2016-04-27.evh.tar.xz
pool 644 0/0 138326 esrouter.2016-04-26.packages
pool 644 0/0 56017156 esrouter.2016-04-24.evh.tar.xz
pool 644 0/0 138326 esrouter.2016-04-27.packages
pool 644 0/0 27964 esrouter.2016-04-26.dpkg
pool 644 0/0 27964 esrouter.2016-04-27.dpkg
pool 644 0/0 136349 esrouter.2016-04-24.packages
pool 644 0/0 138326 esrouter.2016-04-25.packages
pool 644 0/0 27964 esrouter.2016-04-25.dpkg
pool 644 0/0 27551 esrouter.2016-04-24.dpkg
pool 644 0/0 56090628 esrouter.2016-04-26.evh.tar.xz
pool 644 0/0 56095068 esrouter.2016-04-25.evh.tar.xz
tarExtract: Done: 0 errors, 11 filesExist, 168865622 sizeExist, 168378417 sizeExistComp, 12 filesTotal, 225006494 sizeTotal
Got fatal error during xfer (No files dumped for share backups)
Backup aborted (No files dumped for share backups)
Not saving this as a partial backup since it has fewer files than the prior one (got 12 and 0 files versus 12)
Log of working backup:
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 20343,20342
tar_re_search set
Domain=[E_SPIRIT] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]
tarmode is now full, system, hidden, noreset, verbose
tar: dumped 12 files and directories
Total bytes written: 223928320
pool 644 0/0 55839072 esrouter.2016-04-13.evh.tar.xz
pool 644 0/0 124612 esrouter.2016-04-13.packages
pool 644 0/0 124612 esrouter.2016-04-14.packages
pool 644 0/0 25011 esrouter.2016-04-11.dpkg
pool 644 0/0 25011 esrouter.2016-04-12.dpkg
pool 644 0/0 55829392 esrouter.2016-04-11.evh.tar.xz
pool 644 0/0 25011 esrouter.2016-04-13.dpkg
pool 644 0/0 124612 esrouter.2016-04-12.packages
pool 644 0/0 124612 esrouter.2016-04-11.packages
pool 644 0/0 25011 esrouter.2016-04-14.dpkg
pool 644 0/0 55820624 esrouter.2016-04-12.evh.tar.xz
create 644 0/0 55838452 esrouter.2016-04-14.evh.tar.xz
tarExtract: Done: 0 errors, 11 filesExist, 168087580 sizeExist, 167649233 sizeExistComp, 12 filesTotal, 223926032 sizeTotal
** Changed in: backuppc (Ubuntu Trusty)
Status: New => In Progress
** Changed in: backuppc (Ubuntu Xenial)
Status: New => In Progress
** Changed in: backuppc (Ubuntu Trusty)
Assignee: (unassigned) => Andreas Hasenack (ahasenack)
** Changed in: backuppc (Ubuntu Xenial)
Assignee: (unassigned) => Andreas Hasenack (ahasenack)
** Description changed:
[Impact]
- * An explanation of the effects of the bug on users and
-
- * justification for backporting the fix to the stable release.
-
- * In addition, it is helpful, but not required, to include an
- explanation of how the upload fixes this bug.
+ An update to samba changed the behavior of smbclient and this broke
+ backuppc's parsing of that output, causing smb backup jobs to fail.
+
[Test Case]
We will want to test four scenarios:
a) old samba, old backuppc: should work
b) old samba, new backuppc: should work
c) new samba, new backuppc: should work
d) new samba, old backuppc: should fail (this bug)
I suggest to proceed in the order listed above, as it's easier to
downgrade backuppc (just one package) than to downgrade the whole samba
suite.
The steps below are generic.
* Install samba and backuppc, and accept all defaults. Keep in mind
which scenario from above you are testing, and adjust
/etc/apt/sources.list accordingly to either include or not updates.
sudo apt update
sudo apt install samba backuppc
* If you want to use the web interface, take note of the password given during the installation and restart apache2 at the end:
sudo service apache2 restart
* If you want to regenerate the password, install apache2-utils and run the htpasswd command:
sudo apt install apache2-utils
sudo htpasswd /etc/backuppc/htpasswd backuppc
* Add this snippet to the end of /etc/samba/smb.conf:
[C$]
- path = /c
- guest ok = yes
- read only = no
+ path = /c
+ guest ok = yes
+ read only = no
* Create /c and copy some content into it:
sudo mkdir /c
sudo chmod 1777 /c
sudo cp -a /usr/bin /c
* restart the samba services
sudo service smbd restart; sudo service nmbd restart
* overwrite /etc/backuppc/localhost.pl with this;
$Conf{XferMethod} = 'smb';
$Conf{XferLogLevel} = 1;
$Conf{ClientCharset} = '';
$Conf{ClientCharsetLegacy} = 'iso-8859-1';
$Conf{SmbShareName} = 'C$';
$Conf{SmbShareUserName} = '';
$Conf{SmbSharePasswd} = '';
* Now you are ready to run the backup command. Depending on the scenario
being tested, it will work or fail.
This is the working scenario:
$ sudo -u backuppc -H /usr/share/backuppc/bin/BackupPC_dump -f localhost
started full dump, share=C$
xferPids 7009,7008
full backup complete
$ echo $?
0
This is the failing scenario:
$ sudo -u backuppc -H /usr/share/backuppc/bin/BackupPC_dump -f localhost
started full dump, share=C$
xferPids 11008,11007
dump failed: No files dumped for share C$
link localhost
$ echo $?
2
-
[Regression Potential]
-
- * discussion of how regressions are most likely to manifest as a result
- of this change.
-
- * It is assumed that any SRU candidate patch is well-tested before
- upload and has a low overall risk of regression, but it's important
- to make the effort to think about what ''could'' happen in the
- event of a regression.
-
- * This both shows the SRU team that the risks have been considered,
- and provides guidance to testers in regression-testing the SRU.
+ Since there is a tight coupling between samba and backuppc, there could be a regression for people who are not using the latest versions of each package. Therefore, I added specific tests for that to this SRU: all combinations of old and new packages of both samba and backuppc. Prior to uploading, I performed these tests myself and all combinations work as expected, with the only failing one being this bug that is being fixed.
+
+ That being said, there is no guarantee that future samba or backuppc
+ updates won't break again, because of this tight coupling. This package
+ could benefit from DEP8 tests in that area.
[Other Info]
-
- * Anything else you think is useful to include
- * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
- * and address these questions in advance
+ The fix adopted in Debian and Ubuntu Bionic onwards is different than the one presented here. The one used here is what was merged upstream, and doesn't require a configuration file change. I chose to leave bionic alone for now, since the bug is fixed there, just differently.
[Original Description]
After the current update of samba 4.1.6 to 4.3.8 samba on trusty the
BackupPC smb transfer is broken.
Several bugs in smbclient >= 4.1.6 in combination with BackupPC:
https://bugzilla.samba.org/show_bug.cgi?id=11642 (tarmode is no longer verbose and ignores verbose flag)
- patch1 (reenable tarmode verbose, and skip inaccessible files) https://attachments.samba.org/attachment.cgi?id=11733
- patch 2 (modified clitar.c for tarmode verbose) https://attachments.samba.org/attachment.cgi?id=11734
https://bugzilla.redhat.com/show_bug.cgi?id=1294761 (mis-interpreted failure of new tar:\d+ lines) (fix: https://bugzilla.redhat.com/attachment.cgi?id=1111264&action=diff)
Package Information:
0)root at essrv2:~ $ dpkg -l | grep -E "(smb|samba|backuppc)"
ii backuppc 3.3.0-1ubuntu1 amd64 high-performance, enterprise-grade system for backing up PCs
ii libpam-smbpass:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 pluggable authentication module for Samba
ii libsmbclient:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 shared library for communication with SMB/CIFS servers
ii python-samba 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Python bindings for Samba
ii samba 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 SMB/CIFS file, print, and login server for Unix
ii samba-common 2:4.3.8+dfsg-0ubuntu0.14.04.2 all common files used by both the Samba server and client
ii samba-common-bin 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba common files used by both the server and the client
ii samba-doc 2:4.3.8+dfsg-0ubuntu0.14.04.2 all Samba documentation
ii samba-dsdb-modules 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba Directory Services Database
ii samba-libs:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba core libraries
ii samba-vfs-modules 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba Virtual FileSystem plugins
ii smbclient 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 command-line SMB/CIFS clients for Unix
System information of the update:
0)root at essrv2:~ $ grep samba /var/log/apt/history.log | sed "s|),|)\n|g" | grep -E "(samba|smb)"
Upgrade: libpam-smbpass:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
python-samba:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-dsdb-modules:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-common-bin:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-libs:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-doc:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
smbclient:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-vfs-modules:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-common:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
libsmbclient:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
Log of backup when failing:
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 25749,25748
Domain=[E_SPIRIT] OS=[Windows 6.1] Server=[Samba 4.3.8-Ubuntu]
tar:316 tarmode is now full, system, hidden, noreset, quiet
tar:712 Total bytes received: 224900956
create 644 0/0 138326 esrouter.2016-04-26.packages
pool 644 0/0 136349 esrouter.2016-04-23.packages
pool 644 0/0 27551 esrouter.2016-04-23.dpkg
create 644 0/0 56037724 esrouter.2016-04-23.evh.tar.xz
create 644 0/0 56017156 esrouter.2016-04-24.evh.tar.xz
create 644 0/0 27964 esrouter.2016-04-26.dpkg
pool 644 0/0 136349 esrouter.2016-04-24.packages
create 644 0/0 138326 esrouter.2016-04-25.packages
create 644 0/0 27964 esrouter.2016-04-25.dpkg
pool 644 0/0 27551 esrouter.2016-04-24.dpkg
create 644 0/0 56090628 esrouter.2016-04-26.evh.tar.xz
create 644 0/0 56095068 esrouter.2016-04-25.evh.tar.xz
tarExtract: Done: 0 errors, 4 filesExist, 327800 sizeExist, 77902 sizeExistComp, 12 filesTotal, 224900956 sizeTotal
Got fatal error during xfer (No files dumped for share backups)
Backup aborted (No files dumped for share backups)
Saving this as a partial backup, replacing the prior one (got 12 and 0 files versus 0)
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full\ verbose -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 23275,23274
Domain=[E_SPIRIT] OS=[Windows 6.1] Server=[Samba 4.3.8-Ubuntu]
tar:316 tarmode is now full, system, hidden, noreset, verbose
tar:712 Total bytes received: 225006494
create 644 0/0 56140872 esrouter.2016-04-27.evh.tar.xz
pool 644 0/0 138326 esrouter.2016-04-26.packages
pool 644 0/0 56017156 esrouter.2016-04-24.evh.tar.xz
pool 644 0/0 138326 esrouter.2016-04-27.packages
pool 644 0/0 27964 esrouter.2016-04-26.dpkg
pool 644 0/0 27964 esrouter.2016-04-27.dpkg
pool 644 0/0 136349 esrouter.2016-04-24.packages
pool 644 0/0 138326 esrouter.2016-04-25.packages
pool 644 0/0 27964 esrouter.2016-04-25.dpkg
pool 644 0/0 27551 esrouter.2016-04-24.dpkg
pool 644 0/0 56090628 esrouter.2016-04-26.evh.tar.xz
pool 644 0/0 56095068 esrouter.2016-04-25.evh.tar.xz
tarExtract: Done: 0 errors, 11 filesExist, 168865622 sizeExist, 168378417 sizeExistComp, 12 filesTotal, 225006494 sizeTotal
Got fatal error during xfer (No files dumped for share backups)
Backup aborted (No files dumped for share backups)
Not saving this as a partial backup since it has fewer files than the prior one (got 12 and 0 files versus 12)
Log of working backup:
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 20343,20342
tar_re_search set
Domain=[E_SPIRIT] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]
tarmode is now full, system, hidden, noreset, verbose
tar: dumped 12 files and directories
Total bytes written: 223928320
pool 644 0/0 55839072 esrouter.2016-04-13.evh.tar.xz
pool 644 0/0 124612 esrouter.2016-04-13.packages
pool 644 0/0 124612 esrouter.2016-04-14.packages
pool 644 0/0 25011 esrouter.2016-04-11.dpkg
pool 644 0/0 25011 esrouter.2016-04-12.dpkg
pool 644 0/0 55829392 esrouter.2016-04-11.evh.tar.xz
pool 644 0/0 25011 esrouter.2016-04-13.dpkg
pool 644 0/0 124612 esrouter.2016-04-12.packages
pool 644 0/0 124612 esrouter.2016-04-11.packages
pool 644 0/0 25011 esrouter.2016-04-14.dpkg
pool 644 0/0 55820624 esrouter.2016-04-12.evh.tar.xz
create 644 0/0 55838452 esrouter.2016-04-14.evh.tar.xz
tarExtract: Done: 0 errors, 11 filesExist, 168087580 sizeExist, 167649233 sizeExistComp, 12 filesTotal, 223926032 sizeTotal
** Description changed:
[Impact]
An update to samba changed the behavior of smbclient and this broke
backuppc's parsing of that output, causing smb backup jobs to fail.
-
[Test Case]
We will want to test four scenarios:
a) old samba, old backuppc: should work
b) old samba, new backuppc: should work
c) new samba, new backuppc: should work
d) new samba, old backuppc: should fail (this bug)
I suggest to proceed in the order listed above, as it's easier to
downgrade backuppc (just one package) than to downgrade the whole samba
- suite.
+ suite. Alternatively, a new VM/LXD could be used for each scenario, of
+ course.
The steps below are generic.
* Install samba and backuppc, and accept all defaults. Keep in mind
which scenario from above you are testing, and adjust
/etc/apt/sources.list accordingly to either include or not updates.
sudo apt update
sudo apt install samba backuppc
* If you want to use the web interface, take note of the password given during the installation and restart apache2 at the end:
sudo service apache2 restart
* If you want to regenerate the password, install apache2-utils and run the htpasswd command:
sudo apt install apache2-utils
sudo htpasswd /etc/backuppc/htpasswd backuppc
* Add this snippet to the end of /etc/samba/smb.conf:
[C$]
path = /c
guest ok = yes
read only = no
* Create /c and copy some content into it:
sudo mkdir /c
sudo chmod 1777 /c
sudo cp -a /usr/bin /c
* restart the samba services
sudo service smbd restart; sudo service nmbd restart
* overwrite /etc/backuppc/localhost.pl with this;
$Conf{XferMethod} = 'smb';
$Conf{XferLogLevel} = 1;
$Conf{ClientCharset} = '';
$Conf{ClientCharsetLegacy} = 'iso-8859-1';
$Conf{SmbShareName} = 'C$';
$Conf{SmbShareUserName} = '';
$Conf{SmbSharePasswd} = '';
* Now you are ready to run the backup command. Depending on the scenario
being tested, it will work or fail.
This is the working scenario:
$ sudo -u backuppc -H /usr/share/backuppc/bin/BackupPC_dump -f localhost
started full dump, share=C$
xferPids 7009,7008
full backup complete
$ echo $?
0
This is the failing scenario:
$ sudo -u backuppc -H /usr/share/backuppc/bin/BackupPC_dump -f localhost
started full dump, share=C$
xferPids 11008,11007
dump failed: No files dumped for share C$
link localhost
$ echo $?
2
[Regression Potential]
Since there is a tight coupling between samba and backuppc, there could be a regression for people who are not using the latest versions of each package. Therefore, I added specific tests for that to this SRU: all combinations of old and new packages of both samba and backuppc. Prior to uploading, I performed these tests myself and all combinations work as expected, with the only failing one being this bug that is being fixed.
That being said, there is no guarantee that future samba or backuppc
updates won't break again, because of this tight coupling. This package
could benefit from DEP8 tests in that area.
[Other Info]
The fix adopted in Debian and Ubuntu Bionic onwards is different than the one presented here. The one used here is what was merged upstream, and doesn't require a configuration file change. I chose to leave bionic alone for now, since the bug is fixed there, just differently.
[Original Description]
After the current update of samba 4.1.6 to 4.3.8 samba on trusty the
BackupPC smb transfer is broken.
Several bugs in smbclient >= 4.1.6 in combination with BackupPC:
https://bugzilla.samba.org/show_bug.cgi?id=11642 (tarmode is no longer verbose and ignores verbose flag)
- patch1 (reenable tarmode verbose, and skip inaccessible files) https://attachments.samba.org/attachment.cgi?id=11733
- patch 2 (modified clitar.c for tarmode verbose) https://attachments.samba.org/attachment.cgi?id=11734
https://bugzilla.redhat.com/show_bug.cgi?id=1294761 (mis-interpreted failure of new tar:\d+ lines) (fix: https://bugzilla.redhat.com/attachment.cgi?id=1111264&action=diff)
Package Information:
0)root at essrv2:~ $ dpkg -l | grep -E "(smb|samba|backuppc)"
ii backuppc 3.3.0-1ubuntu1 amd64 high-performance, enterprise-grade system for backing up PCs
ii libpam-smbpass:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 pluggable authentication module for Samba
ii libsmbclient:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 shared library for communication with SMB/CIFS servers
ii python-samba 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Python bindings for Samba
ii samba 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 SMB/CIFS file, print, and login server for Unix
ii samba-common 2:4.3.8+dfsg-0ubuntu0.14.04.2 all common files used by both the Samba server and client
ii samba-common-bin 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba common files used by both the server and the client
ii samba-doc 2:4.3.8+dfsg-0ubuntu0.14.04.2 all Samba documentation
ii samba-dsdb-modules 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba Directory Services Database
ii samba-libs:amd64 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba core libraries
ii samba-vfs-modules 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 Samba Virtual FileSystem plugins
ii smbclient 2:4.3.8+dfsg-0ubuntu0.14.04.2 amd64 command-line SMB/CIFS clients for Unix
System information of the update:
0)root at essrv2:~ $ grep samba /var/log/apt/history.log | sed "s|),|)\n|g" | grep -E "(samba|smb)"
Upgrade: libpam-smbpass:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
python-samba:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-dsdb-modules:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-common-bin:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-libs:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-doc:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
smbclient:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-vfs-modules:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
samba-common:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
libsmbclient:amd64 (4.1.6+dfsg-1ubuntu2.14.04.13, 4.3.8+dfsg-0ubuntu0.14.04.2)
Log of backup when failing:
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 25749,25748
Domain=[E_SPIRIT] OS=[Windows 6.1] Server=[Samba 4.3.8-Ubuntu]
tar:316 tarmode is now full, system, hidden, noreset, quiet
tar:712 Total bytes received: 224900956
create 644 0/0 138326 esrouter.2016-04-26.packages
pool 644 0/0 136349 esrouter.2016-04-23.packages
pool 644 0/0 27551 esrouter.2016-04-23.dpkg
create 644 0/0 56037724 esrouter.2016-04-23.evh.tar.xz
create 644 0/0 56017156 esrouter.2016-04-24.evh.tar.xz
create 644 0/0 27964 esrouter.2016-04-26.dpkg
pool 644 0/0 136349 esrouter.2016-04-24.packages
create 644 0/0 138326 esrouter.2016-04-25.packages
create 644 0/0 27964 esrouter.2016-04-25.dpkg
pool 644 0/0 27551 esrouter.2016-04-24.dpkg
create 644 0/0 56090628 esrouter.2016-04-26.evh.tar.xz
create 644 0/0 56095068 esrouter.2016-04-25.evh.tar.xz
tarExtract: Done: 0 errors, 4 filesExist, 327800 sizeExist, 77902 sizeExistComp, 12 filesTotal, 224900956 sizeTotal
Got fatal error during xfer (No files dumped for share backups)
Backup aborted (No files dumped for share backups)
Saving this as a partial backup, replacing the prior one (got 12 and 0 files versus 0)
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full\ verbose -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 23275,23274
Domain=[E_SPIRIT] OS=[Windows 6.1] Server=[Samba 4.3.8-Ubuntu]
tar:316 tarmode is now full, system, hidden, noreset, verbose
tar:712 Total bytes received: 225006494
create 644 0/0 56140872 esrouter.2016-04-27.evh.tar.xz
pool 644 0/0 138326 esrouter.2016-04-26.packages
pool 644 0/0 56017156 esrouter.2016-04-24.evh.tar.xz
pool 644 0/0 138326 esrouter.2016-04-27.packages
pool 644 0/0 27964 esrouter.2016-04-26.dpkg
pool 644 0/0 27964 esrouter.2016-04-27.dpkg
pool 644 0/0 136349 esrouter.2016-04-24.packages
pool 644 0/0 138326 esrouter.2016-04-25.packages
pool 644 0/0 27964 esrouter.2016-04-25.dpkg
pool 644 0/0 27551 esrouter.2016-04-24.dpkg
pool 644 0/0 56090628 esrouter.2016-04-26.evh.tar.xz
pool 644 0/0 56095068 esrouter.2016-04-25.evh.tar.xz
tarExtract: Done: 0 errors, 11 filesExist, 168865622 sizeExist, 168378417 sizeExistComp, 12 filesTotal, 225006494 sizeTotal
Got fatal error during xfer (No files dumped for share backups)
Backup aborted (No files dumped for share backups)
Not saving this as a partial backup since it has fewer files than the prior one (got 12 and 0 files versus 12)
Log of working backup:
Running: /usr/bin/smbclient \\\\esrouter\\backups -U backup -E -d 1 -c tarmode\ full -TcrX - \*.sysdmp.tar.xz
full backup started for share backups
Xfer PIDs are now 20343,20342
tar_re_search set
Domain=[E_SPIRIT] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]
tarmode is now full, system, hidden, noreset, verbose
tar: dumped 12 files and directories
Total bytes written: 223928320
pool 644 0/0 55839072 esrouter.2016-04-13.evh.tar.xz
pool 644 0/0 124612 esrouter.2016-04-13.packages
pool 644 0/0 124612 esrouter.2016-04-14.packages
pool 644 0/0 25011 esrouter.2016-04-11.dpkg
pool 644 0/0 25011 esrouter.2016-04-12.dpkg
pool 644 0/0 55829392 esrouter.2016-04-11.evh.tar.xz
pool 644 0/0 25011 esrouter.2016-04-13.dpkg
pool 644 0/0 124612 esrouter.2016-04-12.packages
pool 644 0/0 124612 esrouter.2016-04-11.packages
pool 644 0/0 25011 esrouter.2016-04-14.dpkg
pool 644 0/0 55820624 esrouter.2016-04-12.evh.tar.xz
create 644 0/0 55838452 esrouter.2016-04-14.evh.tar.xz
tarExtract: Done: 0 errors, 11 filesExist, 168087580 sizeExist, 167649233 sizeExistComp, 12 filesTotal, 223926032 sizeTotal
--
You received this bug notification because you are a member of Ubuntu
Server, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1576187
Title:
backuppc/smb: BackupPC failes to backup SMB shares after smbclient
update
To manage notifications about this bug go to:
https://bugs.launchpad.net/backuppc/+bug/1576187/+subscriptions
More information about the Ubuntu-server-bugs
mailing list