Hello community, here is the log from the commit of package snapper for openSUSE:Factory checked in at 2019-01-26 22:18:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/snapper (Old) and /work/SRC/openSUSE:Factory/.snapper.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "snapper" Sat Jan 26 22:18:20 2019 rev:106 rq:667835 version:0.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/snapper/snapper.changes 2018-12-10 12:27:58.202549056 +0100 +++ /work/SRC/openSUSE:Factory/.snapper.new.28833/snapper.changes 2019-01-26 22:18:23.879050990 +0100 @@ -1,0 +2,13 @@ +Tue Jan 22 11:05:01 CET 2019 - aschn...@suse.com + +- adapted to libbtrfs changes to resurrect special btrfs directory + comparison (bsc#1111414) +- version 0.8.2 + +------------------------------------------------------------------- +Fri Jan 18 10:45:54 CET 2019 - aschn...@suse.com + +- avoid deadlock for special btrfs directory comparison + (bsc#1049574) + +------------------------------------------------------------------- Old: ---- snapper-0.8.1.tar.bz2 New: ---- snapper-0.8.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ snapper.spec ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:24.467050514 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:24.471050511 +0100 @@ -1,7 +1,7 @@ # # spec file for package snapper # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ %endif Name: snapper -Version: 0.8.1 +Version: 0.8.2 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: snapper-%{version}.tar.bz2 ++++++ debian.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debian/changelog new/debian/changelog --- old/debian/changelog 2018-12-06 01:00:00.000000000 +0100 +++ new/debian/changelog 2019-01-22 01:00:00.000000000 +0100 @@ -1,3 +1,9 @@ +snapper (0.8.2) stable; urgency=low + + * Updated to version 0.8.2 + + -- Arvin Schnell <aschn...@suse.com> Tue, 22 Jan 2019 11:07:18 +0100 + snapper (0.8.1) stable; urgency=low * Updated to version 0.8.1 ++++++ snapper-0.8.1.tar.bz2 -> snapper-0.8.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.1/VERSION new/snapper-0.8.2/VERSION --- old/snapper-0.8.1/VERSION 2018-12-06 01:00:00.000000000 +0100 +++ new/snapper-0.8.2/VERSION 2019-01-22 01:00:00.000000000 +0100 @@ -1 +1 @@ -0.8.1 +0.8.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.1/po/es.po new/snapper-0.8.2/po/es.po --- old/snapper-0.8.1/po/es.po 2018-12-06 01:00:00.000000000 +0100 +++ new/snapper-0.8.2/po/es.po 2019-01-22 01:00:00.000000000 +0100 @@ -4,16 +4,16 @@ "Project-Id-Version: snapper\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-29 14:27+0100\n" -"PO-Revision-Date: 2018-11-30 23:06+0000\n" -"Last-Translator: jc sl <t...@gmx.com>\n" -"Language-Team: Spanish " -"<https://l10n.opensuse.org/projects/snapper/master/es/>\n" +"PO-Revision-Date: 2019-01-20 17:44+0000\n" +"Last-Translator: jcsl <t...@gmx.com>\n" +"Language-Team: Spanish <https://l10n.opensuse.org/projects/snapper/master/es/" +">\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.18\n" +"X-Generator: Weblate 3.3\n" msgid "\t--all-configs, -a\t\tList snapshots from all accessible configs." msgstr "\t--all-configs, -a\t\tMuestra las instantáneas de todas las configuraciones a las que se puede acceder." @@ -147,7 +147,7 @@ msgstr "\tsnapper modify <número>" msgid "\tsnapper mount <number>" -msgstr "\tsnapper mount <number>" +msgstr "\tsnapper mount <número>" # SLE12 msgid "\tsnapper rollback [number]" @@ -163,7 +163,7 @@ msgstr "\tsnapper status <número1>..<número2>" msgid "\tsnapper umount <number>" -msgstr "\tsnapper umount <number>" +msgstr "\tsnapper umount <número>" msgid "\tsnapper undochange <number1>..<number2> [files]" msgstr "\tsnapper undochange <número1>..<número2> [archivos]" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.1/snapper/Btrfs.cc new/snapper-0.8.2/snapper/Btrfs.cc --- old/snapper-0.8.1/snapper/Btrfs.cc 2018-12-06 01:00:00.000000000 +0100 +++ new/snapper-0.8.2/snapper/Btrfs.cc 2019-01-22 01:00:00.000000000 +0100 @@ -1238,14 +1238,50 @@ }; + struct FdCloser + { + FdCloser(int fd) + : fd(fd) + { + } + + ~FdCloser() + { + if (fd > -1 ) + ::close(fd); + } + + void reset() + { + fd = -1; + } + + int close() + { + int r = ::close(fd); + fd = -1; + return r; + } + + private: + + int fd; + + }; + + bool StreamProcessor::dumper(int fd) { + FdCloser fd_closer(fd); + + unsigned int iterations = 0; + while (true) { boost::this_thread::interruption_point(); - // remove the fourth parameter for older versions of libbtrfs + // remove the fourth parameter for older versions of libbtrfs int r; #if BTRFS_LIB_VERSION < 101 @@ -1254,9 +1290,15 @@ r = btrfs_read_and_process_send_stream(fd, &send_ops, &*this, 0, 1); #endif - if (r < 0) + // Only return an error when r == -ENODATA if this was the + // first call to btrfs_read_and_process_send_stream(). See + // https://github.com/openSUSE/snapper/pull/438, + // https://bugzilla.suse.com/show_bug.cgi?id=1111414 and + // the btrfs-progs source code. + + if (r < 0 && !(r == -ENODATA && iterations > 0)) { - y2err("btrfs_read_and_process_send_stream failed"); + y2err("btrfs_read_and_process_send_stream failed " << r); #if BOOST_VERSION < 104100 dumper_ret = false; @@ -1274,6 +1316,7 @@ return true; } + ++iterations; } } @@ -1289,6 +1332,10 @@ SN_THROW(BtrfsSendReceiveException()); } + // Use RAII to help close fds. + FdCloser fd0_closer(pipefd[0]); + FdCloser fd1_closer(pipefd[1]); + struct btrfs_ioctl_send_args io_send; memset(&io_send, 0, sizeof(io_send)); io_send.send_fd = pipefd[1]; @@ -1304,18 +1351,18 @@ boost::thread task(boost::move(pt)); + fd0_closer.reset(); + int r2 = ioctl(dir2.fd(), BTRFS_IOC_SEND, &io_send); if (r2 < 0) { y2err("send ioctl failed errno:" << errno << " (" << stringerror(errno) << ")"); } - close(pipefd[1]); + fd1_closer.close(); uf.wait(); - close(pipefd[0]); - if (r2 < 0 || !uf.get()) { SN_THROW(BtrfsSendReceiveException()); @@ -1325,18 +1372,18 @@ boost::thread dumper_thread(boost::bind(&StreamProcessor::dumper, this, pipefd[0])); + fd0_closer.reset(); + int r2 = ioctl(dir2.fd(), BTRFS_IOC_SEND, &io_send); if (r2 < 0) { y2err("send ioctl failed errno:" << errno << " (" << stringerror(errno) << ")"); } - close(pipefd[1]); + fd1_closer.close(); dumper_thread.join(); - close(pipefd[0]); - if (r2 < 0 || !dumper_ret) { SN_THROW(BtrfsSendReceiveException()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/snapper-0.8.1/snapper/BtrfsUtils.cc new/snapper-0.8.2/snapper/BtrfsUtils.cc --- old/snapper-0.8.1/snapper/BtrfsUtils.cc 2018-12-06 01:00:00.000000000 +0100 +++ new/snapper-0.8.2/snapper/BtrfsUtils.cc 2019-01-22 01:00:00.000000000 +0100 @@ -143,10 +143,11 @@ #ifdef ENABLE_BTRFS_QUOTA + size_t size = sizeof(btrfs_qgroup_inherit) + sizeof(((btrfs_qgroup_inherit*) 0)->qgroups[0]); + vector<char> buffer(size, 0); + if (qgroup != no_qgroup) { - size_t size = sizeof(btrfs_qgroup_inherit) + sizeof(((btrfs_qgroup_inherit*) 0)->qgroups[0]); - vector<char> buffer(size, 0); struct btrfs_qgroup_inherit* inherit = (btrfs_qgroup_inherit*) &buffer[0]; inherit->num_qgroups = 1; ++++++ snapper-Debian_7.0.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.027050060 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.031050056 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-Debian_8.0.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.047050043 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.047050043 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-Debian_9.0.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.063050030 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.063050030 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_14.04.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.075050020 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.075050020 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_14.10.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.087050011 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.087050011 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_15.04.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.103049997 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.103049997 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_15.10.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.115049988 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.119049985 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_16.04.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.131049975 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.131049975 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_16.10.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.147049961 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.147049961 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_17.04.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.163049949 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.163049949 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_17.10.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.175049939 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.175049939 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_18.04.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.191049927 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.191049927 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2 ++++++ snapper-xUbuntu_18.10.dsc ++++++ --- /var/tmp/diff_new_pack.DpqbdB/_old 2019-01-26 22:18:25.203049917 +0100 +++ /var/tmp/diff_new_pack.DpqbdB/_new 2019-01-26 22:18:25.203049917 +0100 @@ -1,6 +1,6 @@ Format: 1.0 Source: snapper -Version: 0.8.1 +Version: 0.8.2 Binary: snapper Maintainer: Arvin Schnell <aschn...@suse.com> Architecture: any @@ -11,4 +11,4 @@ # 423a20ae6e882d44e65a4eff97f2269f 630905 snapper-0.2.8.tar.gz # Files: -2a1349c07b1a8151e1c770e53904d1c4 591143 snapper-0.8.1.tar.bz2 +3dfec9a6250ff380315f6e61fa473f82 591558 snapper-0.8.2.tar.bz2