subversion crashes in kwallet_password_set (libsvn_auth_kwallet)

Bug #1531798 reported by Malte S. Stretz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
subversion (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

I've seen this issue for years (at least since precise) already: On checkout, subversion always crashes with a Segmentation Fault. I've got to cleanup and update the repo afterwards.

Being annoyed I finally attached gdb and got the following backtrace:

----8<----

Starting program: /usr/bin/svn co --username u0016 https://repos.example.com/svn/p351/trunk broker
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Authentication realm: <https://repos.example.com:443> Corp Repositories
Password for 'u0016': ***********

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff09daf99 in kwallet_password_set (done=done@entry=0x7fffffffced4, creds=creds@entry=0x7ffff7fae0f0, realmstring=realmstring@entry=0x7ffff7fb7430 "<https://repos.example.com:443> Corp Repositories", username=0x7ffff7f13458 "u0016",
    password=0x7ffff7f13638 "***********", parameters=parameters@entry=0x7ffff7fbe0a8, non_interactive=0, pool=0x7ffff7fba028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_auth_kwallet/kwallet.cpp:317
317 /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_auth_kwallet/kwallet.cpp: No such file or directory.
(gdb) bt
#0 0x00007ffff09daf99 in kwallet_password_set (done=done@entry=0x7fffffffced4, creds=creds@entry=0x7ffff7fae0f0, realmstring=realmstring@entry=0x7ffff7fb7430 "<https://repos.example.com:443> Corp Repositories", username=0x7ffff7f13458 "u0016",
    password=0x7ffff7f13638 "***********", parameters=parameters@entry=0x7ffff7fbe0a8, non_interactive=0, pool=0x7ffff7fba028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_auth_kwallet/kwallet.cpp:317
#1 0x00007ffff705b3e7 in svn_auth__simple_creds_cache_set (saved=0x7fffffffced4, credentials=0x7ffff7f13228, provider_baton=0x0, parameters=0x7ffff7fbe0a8, realmstring=0x7ffff7fb7430 "<https://repos.example.com:443> Corp Repositories",
    password_set=password_set@entry=0x7ffff09dad30 <kwallet_password_set(svn_boolean_t*, apr_hash_t*, char const*, char const*, char const*, apr_hash_t*, svn_boolean_t, apr_pool_t*)>, passtype=<optimized out>, pool=0x7ffff7fba028)
    at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_subr/simple_providers.c:458
#2 0x00007ffff09da94a in kwallet_simple_save_creds (saved=<optimized out>, credentials=<optimized out>, provider_baton=<optimized out>, parameters=<optimized out>, realmstring=<optimized out>, pool=<optimized out>)
    at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_auth_kwallet/kwallet.cpp:372
#3 0x00007ffff70326c5 in svn_auth_save_credentials (state=0x7ffff7fb7400, pool=0x7ffff7fba028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_subr/auth.c:379
#4 0x00007ffff5fa2331 in handle_response (scratch_pool=<optimized out>, serf_status=<synthetic pointer>, handler=0x7ffff7f18498, response=<optimized out>, request=0x7ffff7f10038) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra_serf/util.c:2116
#5 handle_response_cb (request=0x7ffff7f10038, response=0x7ffff7f0e0b8, baton=0x7ffff7f18498, scratch_pool=0x7ffff7fa7028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra_serf/util.c:2275
#6 0x00007ffff49c745e in serf.process_connection () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#7 0x00007ffff49c5cee in serf_event_trigger () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#8 0x00007ffff49c5e0c in serf_context_run () from /usr/lib/x86_64-linux-gnu/libserf-1.so.1
#9 0x00007ffff5fa0b73 in svn_ra_serf__context_run_wait (done=done@entry=0x7ffff7f184b4, sess=0x7ffff7f18110, scratch_pool=scratch_pool@entry=0x7ffff7f18028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra_serf/util.c:917
#10 0x00007ffff5fa1d34 in svn_ra_serf__context_run_one (handler=0x7ffff7f18498, scratch_pool=scratch_pool@entry=0x7ffff7f18028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra_serf/util.c:982
#11 0x00007ffff5f94c30 in svn_ra_serf__exchange_capabilities (serf_sess=serf_sess@entry=0x7ffff7f18110, corrected_url=corrected_url@entry=0x7fffffffd398, pool=pool@entry=0x7ffff7f18028)
    at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra_serf/options.c:494
#12 0x00007ffff5f9a647 in svn_ra_serf__open (session=<optimized out>, corrected_url=0x7fffffffd398, session_URL=<optimized out>, callbacks=0x7ffff7fe30c8, callback_baton=<optimized out>, config=<optimized out>, pool=0x7ffff7f18028)
    at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra_serf/serf.c:541
#13 0x00007ffff76c485d in svn_ra_open4 (session_p=session_p@entry=0x7fffffffd610, corrected_url_p=0x7fffffffd4e0, repos_URL=repos_URL@entry=0x7ffff7fe2d58 "https://repos.example.com/svn/p351/trunk", uuid=0x7ffff7fe3120 "60787c2e-1572-4845-8071-d2064bb41626",
    callbacks=0x7ffff7fe30c8, callback_baton=callback_baton@entry=0x7ffff7fe30a0, config=0x7ffff7feacd8, pool=0x7ffff7fe1028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_ra/ra_loader.c:479
#14 0x00007ffff7bbe3c1 in svn_client__open_ra_session_internal (ra_session=ra_session@entry=0x7fffffffd610, corrected_url=corrected_url@entry=0x7fffffffd5d8, base_url=base_url@entry=0x7ffff7fe2d58 "https://repos.example.com/svn/p351/trunk",
    base_dir_abspath=base_dir_abspath@entry=0x7ffff7fe2ca8 "/home/stretz/Source/lorentz/broker/broker", commit_items=commit_items@entry=0x0, write_dav_props=write_dav_props@entry=1, read_dav_props=1, ctx=0x7ffff7feb508, result_pool=0x7ffff7fe1028,
    scratch_pool=0x7ffff7fe1028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_client/ra.c:390
#15 0x00007ffff7bc426d in update_internal (result_rev=result_rev@entry=0x0, conflicted_paths=conflicted_paths@entry=0x7ffff7fe2bd8, local_abspath=local_abspath@entry=0x7ffff7fe11a0 "/home/stretz/Source/lorentz/broker/broker",
    anchor_abspath=anchor_abspath@entry=0x7ffff7fe2ca8 "/home/stretz/Source/lorentz/broker/broker", revision=revision@entry=0x7fffffffd790, depth=depth@entry=svn_depth_unknown, depth_is_sticky=0, ignore_externals=0, allow_unver_obstructions=0, adds_as_modification=1,
    timestamp_sleep=0x7fffffffd90c, notify_summary=1, ctx=0x7ffff7feb508, pool=0x7ffff7fe1028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_client/update.c:370
#16 0x00007ffff7bc4bb4 in svn_client__update_internal (result_rev=result_rev@entry=0x0, local_abspath=local_abspath@entry=0x7ffff7fe11a0 "/home/stretz/Source/lorentz/broker/broker", revision=revision@entry=0x7fffffffd9b0, depth=depth@entry=svn_depth_unknown,
    depth_is_sticky=depth_is_sticky@entry=1, ignore_externals=ignore_externals@entry=0, allow_unver_obstructions=0, adds_as_modification=1, make_parents=0, innerupdate=0, timestamp_sleep=0x7fffffffd90c, ctx=0x7ffff7feb508, pool=0x7ffff7fe1028)
    at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_client/update.c:595
#17 0x00007ffff7b8b656 in svn_client__checkout_internal (result_rev=result_rev@entry=0x0, url=url@entry=0x7ffff7fbe850 "https://repos.example.com/svn/p351/trunk", local_abspath=0x7ffff7fe11a0 "/home/stretz/Source/lorentz/broker/broker",
    peg_revision=peg_revision@entry=0x7fffffffd9c0, revision=revision@entry=0x7fffffffd9b0, depth=svn_depth_unknown, ignore_externals=0, allow_unver_obstructions=0, timestamp_sleep=0x7fffffffd90c, ctx=0x7ffff7feb508, pool=0x7ffff7fe1028)
    at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_client/checkout.c:160
#18 0x00007ffff7b8b7b3 in svn_client_checkout3 (result_rev=result_rev@entry=0x0, URL=0x7ffff7fbe850 "https://repos.example.com/svn/p351/trunk", path=<optimized out>, peg_revision=peg_revision@entry=0x7fffffffd9c0, revision=revision@entry=0x7fffffffd9b0,
    depth=svn_depth_unknown, ignore_externals=0, allow_unver_obstructions=0, ctx=0x7ffff7feb508, pool=0x7ffff7fe1028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/libsvn_client/checkout.c:189
#19 0x0000000000408073 in svn_cl__checkout (os=<optimized out>, baton=<optimized out>, pool=<optimized out>) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/svn/checkout-cmd.c:161
#20 0x000000000041b782 in sub_main (argc=argc@entry=6, argv=argv@entry=0x7fffffffde68, pool=pool@entry=0x7ffff7fea028) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/svn/svn.c:2884
#21 0x0000000000406ba7 in main (argc=6, argv=0x7fffffffde68) at /build/subversion-xd0hYD/subversion-1.8.13/subversion/svn/svn.c:2979

ProblemType: Bug
DistroRelease: Ubuntu 15.10
Package: subversion 1.8.13-1ubuntu3
ProcVersionSignature: Ubuntu 4.2.0-23.28-generic 4.2.6
Uname: Linux 4.2.0-23-generic x86_64
ApportVersion: 2.19.1-0ubuntu5
Architecture: amd64
CurrentDesktop: KDE
Date: Thu Jan 7 11:44:30 2016
InstallationDate: Installed on 2016-01-03 (3 days ago)
InstallationMedia: Kubuntu 15.10 "Wily Werewolf" - Release amd64 (20151021)
SourcePackage: subversion
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Malte S. Stretz (mss) wrote :
Revision history for this message
Malte S. Stretz (mss) wrote :

I tried the packages from xenial (1.9.2-3ubuntu2) and the issue seems to be fixed there (looks like KWallet isn't used anymore at all).

Changed in subversion (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.