Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#502222: subversion: svn does not react to Ctrl-C or signals properly on slow connections

15 views
Skip to first unread message

Andreas Beckmann

unread,
Oct 14, 2008, 12:20:10 PM10/14/08
to
Package: subversion
Version: 1.5.1dfsg1-1
Severity: normal

Hi,

if I press Ctrl-C during a svn operation, svn often does not terminate
properly.
For instance, I may want to abort a 'svn update' that retrieves a lot of
updates over a slow connection. Svn does somehow stop processing the
update command, but it still receives data (all the remaining data?)
from the network which may actually continue blocking the slow line that
I wanted to free by aborting the update.
Also the svn command still running is not interruptable by any other
means (more ^C or signals) except for SIGKILL (which sometimes results
in a repository that can't even be fixed by 'svn cleanup' any more).
The same seems to be valid for the checkout command.

If I interrupt svn on a fast internet connection, it says
svn: Caught signal
after some delay, probably after all data has been received.
So I'm just not patient enough to wait 2 more hours until it finally
terminates and frees the slow connection ...


Andreas


-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (500, 'testing'), (500, 'stable'), (300, 'unstable'), (130, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages subversion depends on:
ii libapr1 1.2.12-4 The Apache Portable Runtime Librar
ii libc6 2.7-14 GNU C Library: Shared libraries
ii libsasl2-2 2.1.22.dfsg1-23 Cyrus SASL - authentication abstra
ii libsvn1 1.5.1dfsg1-1 Shared libraries used by Subversio

subversion recommends no packages.

Versions of packages subversion suggests:
pn db4.6-util <none> (no description available)
ii patch 2.5.9-5 Apply a diff file to an original
ii subversion-tools 1.5.1dfsg1-1 Assorted tools related to Subversi

-- no debconf information

--
To UNSUBSCRIBE, email to debian-bugs-...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Vincent Lefevre

unread,
Oct 16, 2008, 11:20:08 AM10/16/08
to
On 2008-10-14 18:12:07 +0200, Andreas Beckmann wrote:
> if I press Ctrl-C during a svn operation, svn often does not terminate
> properly.

This problem has just occurred on one of my machines, also with
subversion/1.5.1dfsg1-1.

Here's what a "strace -p" gives when I type Ctrl-C several times:

read(6, 0x7fff74d7fcb0, 256) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
read(6, 0x7fff74d7fcb0, 256) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
read(6, 0x7fff74d7fcb0, 256) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
read(6, 0x7fff74d7fcb0, 256) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
read(6, 0x7fff74d7fcb0, 256) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---
read(6, 0x7fff74d7fcb0, 256) = ? ERESTARTSYS (To be restarted)
--- SIGINT (Interrupt) @ 0 (0) ---

Concerning the svn process and its children, I get:

vlefevre 15754 31758 0 16:41 pts/5 00:00:00 svn ci
vlefevre 15820 15754 0 16:41 pts/5 00:00:00 [zsh] <defunct>

($SVN_SSH is a ssh wrapper written in zsh, hence the zsh zombie process).

And a backtrace:

(gdb) bt
#0 0x00007f796ba487a0 in __read_nocancel () from /lib64/libpthread.so.0
#1 0x00007f796bc6c635 in apr_file_read () from /usr/lib/libapr-1.so.0
#2 0x00007f796ac89f81 in ?? () from /usr/lib/libsvn_ra_svn-1.so.1
#3 0x00007f796ac87ebf in ?? () from /usr/lib/libsvn_ra_svn-1.so.1
#4 0x00007f796ac87fc5 in ?? () from /usr/lib/libsvn_ra_svn-1.so.1
#5 0x00007f796ac824aa in ?? () from /usr/lib/libsvn_ra_svn-1.so.1
#6 0x00007f796ac82b78 in ?? () from /usr/lib/libsvn_ra_svn-1.so.1
#7 0x00007f796c4e4824 in svn_ra_open3 () from /usr/lib/libsvn_ra-1.so.1
#8 0x00007f796c958c57 in svn_client__open_ra_session_internal ()
from /usr/lib/libsvn_client-1.so.1
#9 0x00007f796c9352ae in ?? () from /usr/lib/libsvn_client-1.so.1
#10 0x00007f796c936463 in svn_client_commit4 ()
from /usr/lib/libsvn_client-1.so.1
#11 0x0000000000406c9a in ?? ()
#12 0x000000000040d6bb in ?? ()
#13 0x00007f796b7061a6 in __libc_start_main () from /lib64/libc.so.6
#14 0x0000000000405649 in ?? ()
#15 0x00007fff74d80898 in ?? ()
#16 0x000000000000001c in ?? ()
#17 0x0000000000000002 in ?? ()
#18 0x00007fff74d81fd5 in ?? ()
#19 0x00007fff74d81fd9 in ?? ()
#20 0x0000000000000000 in ?? ()

Not really useful, unfortunately, but doesn't it say that the problem
comes from libapr? FYI, I have libapr1 1.2.12-5.

Note: it is probably bug 461873, which I reported a few months ago.
But then I could no longer reproduce it (until now) and this bug is
archived.

> For instance, I may want to abort a 'svn update' that retrieves a lot of
> updates over a slow connection. Svn does somehow stop processing the
> update command, but it still receives data (all the remaining data?)
> from the network which may actually continue blocking the slow line that
> I wanted to free by aborting the update.
> Also the svn command still running is not interruptable by any other
> means (more ^C or signals) except for SIGKILL (which sometimes results
> in a repository that can't even be fixed by 'svn cleanup' any more).
> The same seems to be valid for the checkout command.

And commit (my case here). The connection is not slow here and it
was a very small commit, but there are sometimes problems with the
server.

I think that if svn receives the SIGINT signal while the connection
has not terminated, it can sometimes get stuck somewhere, with no
possibility of recovery.

--
Vincent Lefèvre <vin...@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Vincent Lefevre

unread,
May 22, 2016, 4:50:02 AM5/22/16
to
Control: reopen -1
Control: found -1 1.9.4-1

On 2008-10-14 18:12:07 +0200, Andreas Beckmann wrote:
> Also the svn command still running is not interruptable by any other
> means (more ^C or signals) except for SIGKILL (which sometimes results
> in a repository that can't even be fixed by 'svn cleanup' any more).

The problem still occurs, at least with "svn merge".

zira:~/software/mpfr-3.1> svn merge -c 10298 ../mpfr . <10:27:42
^C^C^Csvn: E170013: Unable to connect to a repository at URL 'svn+ssh://gforge/svn/mpfr/trunk'
svn: E210002: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: E210002: Network connection closed unexpectedly

zsh: interrupt svnwrapper merge -c 10298 ../mpfr .
zira:~/software/mpfr-3.1[INT]> <10:30:44

This shows that svn doesn't react to Ctrl-C, and just waits for the
SSH client to terminate, here after a 3-minute timeout.

Debian's changelog says for 1.9.4-1:

+ Abort a commit on Ctrl-C. (Closes: #502222, #501971)

but SSH connections are not done only on commits.

--
Vincent Lefèvre <vin...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
0 new messages