svn segfault when using svn+ssh schema

Sam Edge cygwin@dwalin.fsnet.co.uk
Mon Jan 16 22:22:00 GMT 2017


On 16/01/2017 20:26, Jon Turney wrote:
> On 16/01/2017 20:07, Sam Edge wrote:
>> On 09/01/2017 19:07, Sam Edge wrote:
>>> On 09/01/2017 02:04, Eliot Moss wrote:
>>>> On 1/8/2017 3:45 PM, David Rothenberger wrote:
>>>>> On 1/8/2017 6:12 AM, Sam Edge wrote:
>>>>>> I've seen a number of 'svn segfault' threads on the mailing list
>>>>>> archive
>>>>>> but none of them seem to cover this specific failure mode.
>>>>>> (Apologies if
>>>>>> one of them does!)
>>>>>>
>>>>>> I'm getting segfaults from svn but only when using ssh as the
>>>>>> schema.
>>>>>> The following three commands are all accessing the same server, the
>>>>>> name
>>>>>> of which has been changed to protect the guilty.
>>>>>>
>>>>>> --------
>>>>>> SamEdge@thor ~
>>>>>> $ ssh cmserver.XXXXXX.com
>>>>>> ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries
>>>>>> commit-revprops depth log-revprops atomic-revprops partial-replay
>>>>>> inherited-props ephemeral-txnprops file-revs-reverse ) ) )
>>>>>> SamEdge@thor ~
>>>>>> $ svn ls svn+ssh://cmserver.XXXXXX.com/edl/
>>>>>> Segmentation fault (core dumped)
>>>> Assuming this is repeatable behavior, perhaps getting a trace using
>>>> strace would reveal some more useful information.
>>>>
>>>> Regards - Eliot Moss
>>>>
>>> Good idea.
>>>
>>> Strangely, on another Windows 7 64-bit machine svn+ssh to the same
>>> server is working fine for me. The most significant differences are
>>> that
>>> the 'working' machine is running Windows 7 Pro on an Intel CPU with
>>> Sophos AV and domain accounts whereas the 'failing' machine is
>>> Windows 7
>>> Home Premium on an AMD with MS Security Essentials and local accounts.
>>> These differences may or may not be relevant of course.
>>>
>>> Anyway, attached are the two strace outputs. Diffing them suggests that
>>> it's segfaulting in the fork() "system" call.
>
> Not quite, this strace has...
>
>> --- Process 5436 loaded C:\cygwin64\lib\sasl2_3\cygcrammd5-3.dll at
>> 00000003EA090000
>> --- Process 5436, exception c0000005 at 00000003EA023780
>> --- Process 5436 unloaded DLL at 00000003EA090000
>>   333   52465 [main] svn 5436 seterrno_from_win_error:
>> /home/corinna/src/cygwin/cygwin-2.6.1/cygwin-2.6.1-1.x86_64/src/newlib-cygwin/winsup/cygwin/dlfcn.cc:304
>> windows error 998
>>    24   52489 [main] svn 5436 geterrno_from_win_error: windows error
>> 998 == errno 14
>>    20   52509 [main] svn 5436 dlopen: ret 0x0
>
> and then a bit later
>
>>    21   91851 [main] svn 5436 fork: entering
>>   168   92019 [main] svn 5436 sig_send: sendsig 0x80, pid 5436,
>> signal -72, its_me 1
>>    19   92038 [main] svn 5436 sig_send: wakeup 0x28C
>>    24   92062 [main] svn 5436 sig_send: Waiting for pack.wakeup 0x28C
>>    36   92098 [sig] svn 5436 wait_sig: signalling pack.wakeup 0x28C
>>    27   92125 [main] svn 5436 sig_send: returning 0x0 from sending
>> signal -72
>> --- Process 5436, exception c0000005 at 0000000180053D3F
>
> So it looks like perhaps cygcrammd5 is faulting during it's DllMain,
> and perhaps this leaves things in a state that dll_list::topsort can't
> handle...
>
>>> I don't have time in the week to run it in a debug session but I'll try
>>> to do so at the weekend given the advice I've been given here. I will
>>> also do a rebaseall after I've tracked down the
>>>
>>> Thanks for the feedback folks. Much appreciated.
>>>
>>> BR
>>
>> Hi again.
>>
>> I've downloaded the debug symbols for subversion & the Cygwin dll and
>> run the command in gdb. Output attached. Not really giving me any clues
>> so far.
>
> You also need the symbols for the DLL loaded at the faulting address.
>
> From previous information I'd guess that is cyrus-sasl-debuginfo.
>
> (you can check this using gdb's 'info shared' command)
>
>> I've also run 'rebaseall' on the off chance that it would help - it
>> didn't!
>>
>> Still open to suggestions if anyone has any "light bulb" notions. :-)
>
Hi Jon. Thanks for the swift reply.

I've installed the debug as you suggested but it doesn't shed much light
to me. The attached gdb output doesn't seem any more enlightening. I'm a
little (!) out of my depth I think.

-- 
Sam Edge

-------------- next part --------------
SamEdge@thor ~
$ gdb svn
GNU gdb (GDB) (Cygwin 7.10.1-1) 7.10.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-cygwin".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from svn...Reading symbols from /usr/lib/debug//usr/bin/svn.exe.dbg...done.
done.
(gdb) set cygwin-exceptions on
(gdb) run ls svn+ssh://cmserver.XXXXXXXXXX.com/edl/
Starting program: /usr/bin/svn ls svn+ssh://cmserver.XXXXXXXXXX.com/edl/
[New Thread 5372.0x9ec]
[New Thread 5372.0x16c0]
[New Thread 5372.0x1044]
[New Thread 5372.0x1208]

Program received signal SIGSEGV, Segmentation fault.
0x00000003e9f63780 in ?? ()
(gdb) info shared
From                To                  Syms Read   Shared Object Library
0x0000000076cb1000  0x0000000076e594e8  Yes (*)     /cygdrive/c/Windows/SYSTEM32/ntdll.dll
0x0000000076a91000  0x0000000076baeaf4  Yes (*)     /cygdrive/c/Windows/system32/kernel32.dll
0x000007fefcb11000  0x000007fefcb7913c  Yes (*)     /cygdrive/c/Windows/system32/KERNELBASE.dll
0x00000003ed3d1000  0x00000003ed437020  Yes         /usr/bin/cygsvn_client-1-0.dll
0x00000003ed2c1000  0x00000003ed2d301c  Yes         /usr/bin/cygsvn_ra-1-0.dll
0x00000003ed2b1000  0x00000003ed2bf020  Yes         /usr/bin/cygsvn_ra_local-1-0.dll
0x00000003ed221000  0x00000003ed257020  Yes         /usr/bin/cygsvn_repos-1-0.dll
0x00000003ed3b1000  0x00000003ed3c101c  Yes         /usr/bin/cygsvn_fs-1-0.dll
0x00000003ed381000  0x00000003ed3ad020  Yes         /usr/bin/cygsvn_fs_base-1-0.dll
0x00000003ed651000  0x00000003ed666020  Yes         /usr/bin/cygsvn_delta-1-0.dll
0x00000003ed121000  0x00000003ed21201c  Yes         /usr/bin/cygsvn_subr-1-0.dll
0x00000003fa761000  0x00000003fa78d018  Yes (*)     /usr/bin/cygapr-1-0.dll
0x0000000180041000  0x0000000180610000  Yes         /usr/bin/cygwin1.dll
0x00000003ece51000  0x00000003ece5c018  Yes (*)     /usr/bin/cyguuid-1.dll
0x00000003eeb21000  0x00000003eeb33018  Yes (*)     /usr/bin/cygintl-8.dll
0x00000003f4231000  0x00000003f4334018  Yes (*)     /usr/bin/cygiconv-2.dll
0x00000003f4bf1000  0x00000003f4c0901c  Yes (*)     /usr/bin/cyggcc_s-seh-1.dll
0x00000003fa731000  0x00000003fa75801c  Yes (*)     /usr/bin/cygaprutil-1-0.dll
0x00000003f53f1000  0x00000003f53fb018  Yes (*)     /usr/bin/cygcrypt-0.dll
0x00000003f4c81000  0x00000003f4cab018  Yes (*)     /usr/bin/cygexpat-1.dll
0x00000003ed6b1000  0x00000003ed7ab01c  Yes (*)     /usr/bin/cygsqlite3-0.dll
0x00000003ecca1000  0x00000003eccbc014  Yes (*)     /usr/bin/cygz.dll
---Type <return> to continue, or q <return> to quit---
0x000007fefcbc1000  0x000007fefcd2ce4c  Yes (*)     /cygdrive/c/Windows/system32/CRYPT32.dll
0x000007fefdf11000  0x000007fefdfae4bc  Yes (*)     /cygdrive/c/Windows/system32/msvcrt.dll
0x000007fefc9e1000  0x000007fefc9ee00c  Yes (*)     /cygdrive/c/Windows/system32/MSASN1.dll
0x00000003ed621000  0x00000003ed62b020  Yes         /usr/bin/cygsvn_fs_util-1-0.dll
0x00000003f4fa1000  0x00000003f5128018  Yes (*)     /usr/bin/cygdb-5.3.dll
0x00000003ed331000  0x00000003ed378020  Yes         /usr/bin/cygsvn_fs_fs-1-0.dll
0x00000003ed2e1000  0x00000003ed32a01c  Yes         /usr/bin/cygsvn_fs_x-1-0.dll
0x00000003ed281000  0x00000003ed2af020  Yes         /usr/bin/cygsvn_ra_serf-1-0.dll
0x00000003ed7e1000  0x00000003ed7fa1a0  Yes (*)     /usr/bin/cygserf-1-0.dll
0x00000003f51b1000  0x00000003f53e601c  Yes (*)     /usr/bin/cygcrypto-1.0.0.dll
0x00000003f44c1000  0x00000003f4506020  Yes (*)     /usr/bin/cyggssapi_krb5-2.dll
0x00000003ee7a1000  0x00000003ee7d401c  Yes (*)     /usr/bin/cygk5crypto-3.dll
0x00000003ee6d1000  0x00000003ee6df020  Yes (*)     /usr/bin/cygkrb5support-0.dll
0x00000003ee6e1000  0x00000003ee79b018  Yes (*)     /usr/bin/cygkrb5-3.dll
0x00000003f5401000  0x00000003f540c01c  Yes (*)     /usr/bin/cygcom_err-2.dll
0x00000003ed5a1000  0x00000003ed60901c  Yes (*)     /usr/bin/cygssl-1.0.0.dll
0x00000003ed261000  0x00000003ed27f020  Yes         /usr/bin/cygsvn_ra_svn-1-0.dll
0x00000003ed801000  0x00000003ed81f018  Yes         /usr/bin/cygsasl2-3.dll
0x00000003ed071000  0x00000003ed11901c  Yes         /usr/bin/cygsvn_wc-1-0.dll
0x00000003ed631000  0x00000003ed64a01c  Yes         /usr/bin/cygsvn_diff-1-0.dll
0x000007fefdfb1000  0x000007fefe08a624  Yes (*)     /cygdrive/c/Windows/system32/advapi32.dll
0x000007fefde41000  0x000007fefde5e39a  Yes (*)     /cygdrive/c/Windows/SYSTEM32/sechost.dll
0x000007fefd631000  0x000007fefd75c924  Yes (*)     /cygdrive/c/Windows/system32/RPCRT4.dll
0x000007fefa9b1000  0x000007fefa9c5034  Yes (*)     /cygdrive/c/Windows/system32/netapi32.dll
0x000007fefa9a1000  0x000007fefa9ab01c  Yes (*)     /cygdrive/c/Windows/system32/netutils.dll
0x000007fefc6f1000  0x000007fefc71265c  Yes (*)     /cygdrive/c/Windows/system32/srvcli.dll
0x000007fefa981000  0x000007fefa994388  Yes (*)     /cygdrive/c/Windows/system32/wkscli.dll
0x000007fefa961000  0x000007fefa973094  Yes (*)     /cygdrive/c/Windows/system32/SAMCLI.DLL
0x000007fefb291000  0x000007fefb2ac93c  Yes (*)     /cygdrive/c/Windows/system32/SAMLIB.dll
0x000007fefc3e1000  0x000007fefc40ec1c  Yes (*)     /cygdrive/c/Windows/system32/authz.dll
0x000007fef9241000  0x000007fef924b194  Yes (*)     /cygdrive/c/Windows/system32/dsrole.dll
0x00000003e9fe1000  0x00000003e9fed01c  Yes         /usr/lib/sasl2_3/cyganonymous-3.dll
0x00000003e9fd1000  0x00000003e9fdd01c  Yes         /usr/lib/sasl2_3/cygcrammd5-3.dll
(*): Shared library is missing debugging information.
(gdb) info threads
  Id   Target Id         Frame
  4    Thread 5372.0x1208 0x0000000076cfd63a in ntdll!ZwWaitForWorkViaWorkerFactory () from /cygdrive/c/Windows/SYSTEM32/ntdll.dll
  3    Thread 5372.0x1044 0x0000000076cfc2ea in ntdll!ZwWaitForMultipleObjects () from /cygdrive/c/Windows/SYSTEM32/ntdll.dll
  2    Thread 5372.0x16c0 0x0000000076cfbd9a in ntdll!ZwReadFile () from /cygdrive/c/Windows/SYSTEM32/ntdll.dll
* 1    Thread 5372.0x9ec 0x00000003e9f63780 in ?? ()
(gdb) list
3098                      err, _("When using svn+ssh:// URLs, keep in mind that the "
3099                             "--username and --password options are ignored "
3100                             "because authentication is performed by SSH, not "
3101                             "Subversion"));
3102            }
3103
3104          return err;
3105        }
3106
3107      return SVN_NO_ERROR;
-------------- next part --------------

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list