Hello community, here is the log from the commit of package sshfs for openSUSE:Factory checked in at 2019-03-20 13:19:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sshfs (Old) and /work/SRC/openSUSE:Factory/.sshfs.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sshfs" Wed Mar 20 13:19:17 2019 rev:31 rq:686150 version:3.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/sshfs/sshfs.changes 2019-02-27 17:29:29.635313355 +0100 +++ /work/SRC/openSUSE:Factory/.sshfs.new.28833/sshfs.changes 2019-03-20 13:19:20.185343189 +0100 @@ -1,0 +2,8 @@ +Mon Mar 18 15:26:12 UTC 2019 - Ismail Dönmez <[email protected]> + +- Update to version 3.5.1 + * Documentation updates + * Build system updates + * Added "BindInterface" as valid "-o" option. + +------------------------------------------------------------------- Old: ---- sshfs-3.5.0.tar.xz sshfs-3.5.0.tar.xz.asc New: ---- sshfs-3.5.1.tar.xz sshfs-3.5.1.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sshfs.spec ++++++ --- /var/tmp/diff_new_pack.p3puHl/_old 2019-03-20 13:19:20.789343043 +0100 +++ /var/tmp/diff_new_pack.p3puHl/_new 2019-03-20 13:19:20.789343043 +0100 @@ -1,7 +1,7 @@ # # spec file for package sshfs # -# 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 @@ -17,7 +17,7 @@ Name: sshfs -Version: 3.5.0 +Version: 3.5.1 Release: 0 Summary: Filesystem client based on SSH file transfer protocol License: GPL-2.0-or-later ++++++ sshfs-3.5.0.tar.xz -> sshfs-3.5.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/AUTHORS new/sshfs-3.5.1/AUTHORS --- old/sshfs-3.5.0/AUTHORS 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/AUTHORS 2018-12-22 15:33:52.000000000 +0100 @@ -13,6 +13,7 @@ Contributors (autogenerated list) --------------------------------- + Alan Jenkins <[email protected]> Alexander Neumann <[email protected]> Anatol Pomozov <[email protected]> @@ -41,6 +42,9 @@ Rian Hunter <[email protected]> Rian Hunter <[email protected]> Samuel Murray <[email protected]> +S. D. Cloudt <[email protected]> +smheidrich <[email protected]> +Tim Harder <[email protected]> Timo Savola <[email protected]> tpoindessous <[email protected]> Zoltan Kuscsik <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/ChangeLog.rst new/sshfs-3.5.1/ChangeLog.rst --- old/sshfs-3.5.0/ChangeLog.rst 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/ChangeLog.rst 2018-12-22 15:33:52.000000000 +0100 @@ -1,3 +1,10 @@ +Release 3.5.1 (2018-12-22) +-------------------------- + +* Documentation updates +* Build system updates +* Added "BindInterface" as valid "-o" option. + Release 3.5.0 (2018-08-28) -------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/meson.build new/sshfs-3.5.1/meson.build --- old/sshfs-3.5.0/meson.build 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/meson.build 2018-12-22 15:33:52.000000000 +0100 @@ -1,4 +1,4 @@ -project('sshfs', 'c', version: '3.5.0', +project('sshfs', 'c', version: '3.5.1', meson_version: '>= 0.38', default_options: [ 'buildtype=debugoptimized' ]) @@ -25,7 +25,7 @@ endif -rst2man = find_program('rst2man', required: false) +rst2man = find_program('rst2man', 'rst2man.py', required: false) cfg = configuration_data() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/sshfs.c new/sshfs-3.5.1/sshfs.c --- old/sshfs-3.5.0/sshfs.c 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/sshfs.c 2018-12-22 15:33:52.000000000 +0100 @@ -300,6 +300,7 @@ "AddressFamily", "BatchMode", "BindAddress", + "BindInterface", "CertificateFile", "ChallengeResponseAuthentication", "CheckHostIP", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/sshfs.rst new/sshfs-3.5.1/sshfs.rst --- old/sshfs-3.5.0/sshfs.rst 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/sshfs.rst 2018-12-22 15:33:52.000000000 +0100 @@ -243,8 +243,8 @@ file after the failed rename. -SSHFS hangs -~~~~~~~~~~~ +SSHFS hangs for no apparent reason +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In some cases, attempts to access the SSHFS mountpoint may freeze if no filesystem activity has occured for some time. This is typically @@ -253,6 +253,34 @@ to mount with ``-o ServerAliveInterval=15``. This will force the SSH connection to stay alive even if you have no activity. + +SSHFS hangs after the connection was interrupted +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, network operations in SSHFS run without timeouts, mirroring the +default behavior of SSH itself. As a consequence, if the connection to the +remote host is interrupted (e.g. because a network cable was removed), +operations on files or directories under the mountpoint will block until the +connection is either restored or closed altogether (e.g. manually). +Applications that try to access such files or directories will generally appear +to "freeze" when this happens. + +If it is acceptable to discard data being read or written, a quick workaround +is to kill the responsible ``sshfs`` process, which will make any blocking +operations on the mounted filesystem error out and thereby "unfreeze" the +relevant applications. Note that force unmounting with ``fusermount -zu``, on +the other hand, does not help in this case and will leave read/write operations +in the blocking state. + +For a more automatic solution, one can use the ``-o ServerAliveInterval=15`` +option mentioned above, which will drop the connection after not receiving a +response for 3 * 15 = 45 seconds from the remote host. By also supplying ``-o +reconnect``, one can ensure that the connection is re-established as soon as +possible afterwards. As before, this will naturally lead to loss of data that +was in the process of being read or written at the time when the connection was +interrupted. + + Mounting from /etc/fstab ======================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/test/test_sshfs.py new/sshfs-3.5.1/test/test_sshfs.py --- old/sshfs-3.5.0/test/test_sshfs.py 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/test/test_sshfs.py 2018-12-22 15:33:52.000000000 +0100 @@ -109,7 +109,7 @@ tst_truncate_fd(mnt_dir) tst_open_unlink(mnt_dir) except: - cleanup(mnt_dir) + cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sshfs-3.5.0/test/util.py new/sshfs-3.5.1/test/util.py --- old/sshfs-3.5.0/test/util.py 2018-08-28 15:58:39.000000000 +0200 +++ new/sshfs-3.5.1/test/util.py 2018-12-22 15:33:52.000000000 +0100 @@ -20,13 +20,19 @@ elapsed += 0.1 pytest.fail("mountpoint failed to come up") -def cleanup(mnt_dir): +def cleanup(mount_process, mnt_dir): subprocess.call(['fusermount', '-z', '-u', mnt_dir], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) + mount_process.terminate() + try: + mount_process.wait(1) + except subprocess.TimeoutExpired: + mount_process.kill() + def umount(mount_process, mnt_dir): - subprocess.check_call(['fusermount', '-z', '-u', mnt_dir ]) + subprocess.check_call(['fusermount3', '-z', '-u', mnt_dir ]) assert not os.path.ismount(mnt_dir) # Give mount process a little while to terminate. Popen.wait(timeout)
