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

Re: segfault when deleting folders in 1.6.2

From: Neels Janosch Hofmeyr <neels_at_elego.de>
Date: Wed, 03 Jun 2009 22:29:39 +0200

Stefan Küng wrote:
> Neels J Hofmeyr wrote:
>> Stefan Küng wrote:
>>> On Thu, May 21, 2009 at 10:22, Stefan Küng <tortoisesvn_at_gmail.com> wrote:
>>>> Hi,
>>>>
>>>> In the file libsvn_wc/adm_ops.c, function
>>>> svn_wc_remove_from_revision_control(), line 2628:
>>>>
>>>> dir_entry = apr_hash_get(parent_entries, base_name,
>>>> APR_HASH_KEY_STRING);
>>>> if (dir_entry->depth != svn_depth_exclude)
>>>> {
>>>> svn_wc__entry_remove(parent_entries, base_name);
>>>> SVN_ERR(svn_wc__entries_write(parent_entries, parent_access, pool));
>>>>
>>>> }
>>>>
>>>> the 'dir_entry' is NULL, and accessing it in the if-clause causes a
>>>> segfault.
>>>> From the crash dump I got, I can't see anything special about the path
>>>> (it was F:\dev\svn\name\name), so no root path, no UNC path or anything
>>>> else special I can think of.
>>>>
>>>> But the delete was called with --keep-local, so maybe that has something
>>>> to do with it?
>>> Some more information:
>>> the folder which should be deleted is tree-conflicted (deleted in
>>> repository, still present locally).
>>>
>>> Stefan
>> Actually, are you saying that when you got the error, some folder was
>> already tree-conflicted, or are you saying that deleting with --keep-local
>> per se results in a tree-conflicted situation?
>>
>> The latter results in an obstructed path, as I pointed out just now in a
>> different mail, just a "potential tree-conflict", nothing to worry about.
>>
>> If it's the former, could you please clarify? Maybe it's worth
>> investigating, TC wise. But so far I'd guess it's not related.
>
> I didn't reproduce this myself. The information I got was from a crash
> dump file sent for TSVN and what the user told me. So I don't know
> whether the --keep-local is the reason for the crash. But as the user
> said, there was a tree conflict on that folder and he tried to remove
> the folder to get rid of the tree conflict. So the folder already was
> marked as conflicted.
>
> Stefan

In any case, there's a directory that is in version control in the WC, but
not (anymore) in the repos. When svn deletes, it won't schedule them for
deletion, but currently will mark keep_local anyway.

I'm still thinking my fix suggestion from earlier today is sufficient
(haven't tested though). If TC victims still pose a problem after that,
that'd be a similar, yet unrelated, fix.

~Neels

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359229

Received on 2009-06-03 22:30:08 CEST

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

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