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

Segmentation Fault with SVN Client related to serf

From: <pierre.viret_at_postfinance.ch>
Date: Tue, 6 Jan 2015 07:31:42 +0000

Hello

We have following problem with the SVN native clients in our environment: the client crashes with a memory access violation error while executing an "ls" command. We have reproduced the error on debian with SVN 1.8.10 and on Windows with the latest SVN 1.8.11. With older versions of SVN client (SlikSvn 1.6.x / 1.7.x or TurtoiseSVN 1.7.x on windows) we never get this error if we use the neon module but we get it with the serf module. Note that with SVNKit we have no problem. So it seems that the error is related to serf.

The problem must be related to some timing issue: if we have debugging turned on in our Proxy the answers of the servers are slower and we get the error more often. Actually we get the error maybe 30% of the times we try to execute the ls command.

Has anyone else experienced the same problem or some ideas how we could solve it? Should we fill a bug report, as a segmentation fault is surely not to be expected ?

Regards,
Pierre

Here the output on windows:

C:\seu\SlikSvn\bin>svn --version
svn, Version 1.8.11-SlikSvn-1.8.11-X64 (SlikSvn/1.8.11) X64
   übersetzt am Dec 9 2014, um 13:44:31 auf x86_64-microsoft-windows6.2.9200
 
Copyright (C) 2014 The Apache Software Foundation.
Diese Software besteht aus Beiträgen vieler Personen;
siehe Datei NOTICE für weitere Informationen.
Subversion ist Open Source Software, siehe http://subversion.apache.org/
 
Die folgenden ZugriffsModule (ZM) für Projektarchive stehen zur Verfügung:
 
* ra_svn : Modul zum Zugriff auf ein Projektarchiv über das svn-Netzwerkprotokoll.
  - mit Cyrus-SASL-Authentifizierung
  - behandelt Schema »svn«
* ra_local : Modul zum Zugriff auf ein Projektarchiv auf der lokalen Festplatte
  - behandelt Schema »file«
* ra_serf : Modul zum Zugriff auf ein Projektarchiv über das Protokoll WebDAV mittels serf.
  - verwendet serf 1.3.8
  - behandelt Schema »http«
  - behandelt Schema »https«
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
(crashed)
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
This application has halted due to an unexpected error.
A crash report and minidump file were saved to disk, you can find them here:
C:\Users\viretp\AppData\Local\Temp\svn-crash-log20150106074548.log
C:\Users\viretp\AppData\Local\Temp\svn-crash-log20150106074548.dmp
Please send the log file to users_at_subversion.apache.org to help us analyze
and solve this problem.
 
NOTE: The crash report and minidump files can contain some sensitive information
(filenames, partial file content, usernames and passwords etc.)
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
(crashed)
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
 
C:\seu\SlikSvn\bin>svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
(crashed)
 
Here the content of the error log file:
Process info:
Cmd line: svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
Working Dir: C:\seu\SlikSvn\bin
Version: 1.8.11-SlikSvn-1.8.11-X64 (SlikSvn/1.8.11) X64, compiled Dec 9 2014, 13:44:31
Platform: Windows OS version 6.1 build 7601 Service Pack 1

Exception: ACCESS_VIOLATION

Registers:
Rax=0000000000000039 Rcx=00000000022af660 Rdx=ffffffffffff09cd Rbx=00000000022c9828
Rsp=000000000014f0f8 Rbp=00000000022b0768 Rsi=ffffffffffffffff Rdi=00000000022ba1f5
R8= fffffffffffe5ff8 R9= 31045bd5b0000000 R10= 00ffeeffee01017e R11=00000000022c9828
R12=0000000000000000 R13=000000000065c9c4 R14=000000000014f2d0 R15=0000000000000000
cs=0033 ss=002b ds=002b es=0053 fs=002b gs=002b ss=0094

Stacktrace:
#1 0x74bcc24d in memmove()
#2 0x7fef4d2708f in (unknown function)
#3 0x7fef4d21abe in (unknown function)
#4 0x7fef4d21f1a in (unknown function)
#5 0x7fef4d22341 in (unknown function)
#6 0x7fef4d289d8 in (unknown function)
#7 0x7fef4d208b7 in (unknown function)
#8 0x7fef4d20ada in (unknown function)
#9 0x7fef4d1ee8a in (unknown function)
#10 0x7fef4d1efe5 in (unknown function)
#11 0x7fef4d54d30 in svn_ra_svn_init()
#12 0x7fef4d5bd36 in svn_ra_svn_init()
#13 0x7fef4d648d8 in svn_ra_serf_init()
#14 0x7fef4d64962 in svn_ra_serf_init()
#15 0x7fef4d2fd2f in svn_ra_stat()
#16 0x7fef8035f7e in svn_client_lock()
#17 0x7fef80365a8 in svn_client_lock()
#18 0x7fef803684a in svn_client_list3()
#19 0x13f370149 in (unknown function)
#20 0x13f365870 in (unknown function)
#21 0x13f365d10 in (unknown function)
#22 0x13f3611f2 in (unknown function)
#23 0x772259ed in BaseThreadInitThunk()
#24 0x7761c541 in RtlUserThreadStart()

Here the output on debian:

viretp_at_mwbox:~$ svn --version
svn, version 1.8.10 (r1615264)
   compiled Sep 1 2014, 03:20:28 on x86_64-pc-linux-gnu
 
Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
 
The following repository access (RA) modules are available:
 
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.7
  - handles 'http' scheme
  - handles 'https' scheme

viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
Segmentation fault
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
Segmentation fault
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
Segmentation fault
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
branches/
tags/
trunk/
viretp@mwbox:~$ svn ls https://127.0.0.1:7771/svn/t_sponis_testrepo
Segmentation fault

In /var/log/syslog:
Jan 5 14:31:23 mwbox kernel: [14750.072747] svn[21822]: segfault at 7f3733f39000 ip 00007f37328ae3cf sp 00007fff9e3df468 error 7 in libc-2.13.so[7f373278a000+182000]

Here the stacktrace with gdb:
 
(gdb) bt
#0 __memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:2833
#1 0x00007ffff35f6fa3 in serf_bstrmemdup () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#2 0x00007ffff35faecb in ?? () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#3 0x00007ffff35fb2d4 in serf_bucket_response_status () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#4 0x00007ffff35fe219 in serf__handle_auth_response () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#5 0x00007ffff35f4f29 in serf__process_connection () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#6 0x00007ffff35f38ae in serf_event_trigger () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#7 0x00007ffff35f39d9 in serf_context_run () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#8 0x00007ffff573b522 in svn_ra_serf__context_run_wait () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#9 0x00007ffff573cd14 in svn_ra_serf__context_run_one () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#10 0x00007ffff572f436 in svn_ra_serf__wait_for_props () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#11 0x00007ffff572f52a in svn_ra_serf__retrieve_props () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#12 0x00007ffff572f585 in svn_ra_serf__fetch_node_props () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#13 0x00007ffff572f659 in ?? () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#14 0x00007ffff57303c9 in ?? () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#15 0x00007ffff5730735 in svn_ra_serf__get_youngest_revnum () from /usr/lib/x86_64-linux-gnu/libsvn_ra_serf-1.so.1
#16 0x00007ffff7bca27b in svn_client__get_revision_number () from /usr/lib/x86_64-linux-gnu/libsvn_client-1.so.1
#17 0x00007ffff7bc69af in svn_client__repos_locations () from /usr/lib/x86_64-linux-gnu/libsvn_client-1.so.1
#18 0x00007ffff7bc6c1f in svn_client__resolve_rev_and_url () from /usr/lib/x86_64-linux-gnu/libsvn_client-1.so.1
#19 0x00007ffff7bc6dde in svn_client__ra_session_from_path2 () from /usr/lib/x86_64-linux-gnu/libsvn_client-1.so.1
#20 0x00007ffff7baaeb8 in ?? () from /usr/lib/x86_64-linux-gnu/libsvn_client-1.so.1
#21 0x00007ffff7bab42a in svn_client_list3 () from /usr/lib/x86_64-linux-gnu/libsvn_client-1.so.1
#22 0x00000000004112a2 in ?? ()
#23 0x000000000041cdd2 in ?? ()
#24 0x000000000040764d in ?? ()
#25 0x00007ffff6856ead in __libc_start_main (main=<optimized out>, argc=<optimized out>, ubp_av=<optimized out>, init=<optimized out>,
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe2c8) at libc-start.c:244
#26 0x000000000040768d in ?? ()
#27 0x00007fffffffe2c8 in ?? ()
#28 0x000000000000001c in ?? ()
#29 0x0000000000000003 in ?? ()
#30 0x00007fffffffe663 in ?? ()
#31 0x00007fffffffe670 in ?? ()
#32 0x00007fffffffe673 in ?? ()
#33 0x0000000000000000 in ?? ()

Remarque concernant la sécurité:
Ce courriel provenant de PostFinance est signé. Vous trouverez d'autres informations à ce sujet sous:
https://www.postfinance.ch/e-signature.
Ne divulguez jamais vos éléments de sécurité à des tiers.

Received on 2015-01-06 08:55:36 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.