[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: missing error messages

From: Janus Weil <janus_at_gcc.gnu.org>
Date: Sat, 13 Mar 2010 11:05:26 +0100

Hi,

> Ping.

sorry about my long turnaround time.

> Janus, would this make you happy?
> Do you think this fix should go in?

Yes, this would make me happy :)

Actually I would prefer not to use "-q" by default in the first place.
But if this is absolutely necessary, then the next best thing is to
warn the user about the gobbled error messages and tell him how to get
back to the old behavior.

Thanks for your efforts,
Janus

> On Wed, Mar 03, 2010 at 05:08:41PM +0100, Stefan Sperling wrote:
>> On Wed, Mar 03, 2010 at 04:06:08PM +0100, Janus Weil wrote:
>> > Dear subversion team,
>> >
>> > I noticed that recent svn releases fail to display many error messages.
>> >
>> > Example: Doing "svn co svn+ssh://someone@gcc.gnu.org/svn/gcc/trunk
>> > trunk" without having the proper ssh keys for user 'someone'. The svn
>> > versions I tried were 1.6.3, 1.6.5 and 1.6.9. With 1.6.3 I get:
>> >
>> > Permission denied (publickey,gssapi-with-mic).
>> > svn: Network connection closed unexpectedly
>> >
>> > But if I do the same with 1.6.5 or 1.6.9, the first line is missing
>> > and I only get the rather nebulous message about the unexpected
>> > closing of the network connection, without seeing the reason for that.
>> >
>> > It's even worse if e.g. my private key has the wrong permissions for
>> > some reason. In this case svn 1.6.3 displays a very bold warning:
>> >
>> > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> > @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
>> > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> > Permissions 0755 for '~/.ssh/id_dsa' are too open.
>> > It is recommended that your private key files are NOT accessible by others.
>> > This private key will be ignored.
>> > bad permissions: ignore key: ~/.ssh/id_dsa
>> > Permission denied (publickey,gssapi-with-mic).
>> > svn: Network connection closed unexpectedly
>> >
>> > Again, with newer releases one only gets the last line, without any
>> > chance of finding out what the problem is.
>> >
>> > Is this a known bug?
>>
>> This is probably a side-effect of the fix for issue #2580 done in
>> Subversion 1.6.5. Since then, Subversion passes '-q' to ssh to avoid
>> the message 'Terminated by signal 15' being printed whenever ssh exists
>> upon being terminated by Subversion in a friendly manner.
>> This particular output from ssh would confuse users assuming the output
>> came from svn, and make them believe svn had crashed. Of course, '-q'
>> might also suppress some other messages printed by ssh, such as the
>> "unprotected key file" warning.
>>
>> I guess we should make the error message for svn+ssh connection failures
>> advise people to remove the '-q' flag from the ssh invocation in
>> ~/.subversion/config to debug SSH connection problems.
>> The patch below does this:
>>
>>   $ svn ls svn+ssh://svntest/
>>   svn: Unable to connect to a repository at URL 'svn+ssh://svntest'
>>   svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
>>   svn: Network connection closed unexpectedly
>>
>> (Above, 'svntest' is an SSH host alias to localhost with a port where nothing
>> is listening.)
>>
>> Do you think this would help?
>>
>> Stefan
>>
>>
>> Index: subversion/libsvn_ra_svn/client.c
>> ===================================================================
>> --- subversion/libsvn_ra_svn/client.c (revision 918491)
>> +++ subversion/libsvn_ra_svn/client.c (working copy)
>> @@ -463,6 +463,7 @@ static svn_error_t *make_tunnel(const char **args,
>>    apr_status_t status;
>>    apr_proc_t *proc;
>>    apr_procattr_t *attr;
>> +  svn_error_t *err;
>>
>>    status = apr_procattr_create(&attr, pool);
>>    if (status == APR_SUCCESS)
>> @@ -516,7 +517,15 @@ static svn_error_t *make_tunnel(const char **args,
>>
>>    /* Guard against dotfile output to stdout on the server. */
>>    *conn = svn_ra_svn_create_conn(NULL, proc->out, proc->in, pool);
>> -  SVN_ERR(svn_ra_svn_skip_leading_garbage(*conn, pool));
>> +  err = svn_ra_svn_skip_leading_garbage(*conn, pool);
>> +
>> +  if (err)
>> +    return svn_error_quick_wrap(
>> +             err,
>> +             _("To better debug SSH connection problems, remove the -q "
>> +               "option from 'ssh' in the [tunnels] section of your "
>> +               "Subversion configuration file."));
>> +
>>    return SVN_NO_ERROR;
>>  }
>>
>
Received on 2010-03-13 11:05:58 CET

This is an archived mail posted to the Subversion Users mailing list.