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

Re: crash when fetching status

From: SteveKing <steveking_at_gmx.ch>
Date: 2004-11-03 19:53:06 CET

Philip Martin wrote:

>>During the last two days, I received four crashreports from TSVN
>>users. The crashreport showed a crash (EXCEPTION_ACCESS_VIOLATION) in
>>libsvn_wc/status.c line 978. (Always referring to the 1.1.1 tag!)
>>
>>The lines in question:
>> if (parent_status
>> && (parent_status->text_status != svn_wc_status_unversioned)
>> && (parent_status->text_status != svn_wc_status_deleted)
>> && (parent_status->text_status != svn_wc_status_missing)
>> && (parent_status->text_status != svn_wc_status_obstructed)
>> && (parent_status->entry->kind == svn_node_dir)
>> && (eb->descend || (! pb)))
>> {
>>
>>Please check the second last line here:
>> && (parent_status->entry->kind == svn_node_dir)
>>
>>Obviously, the
>>parent_status->entry
>>is NULL, which can be NULL for non-versioned items (AFAIR).
>
>
> I assume the parent must be a directory given that it is a parent. We
> don't descend into unversioned directories within a working copy. An
> unversioned directory will often be the parent when the child is a
> working copy root, but that doesn't cause this bug. How does this bug
> get triggered? What does the working copy look like?

As I reported earlier, I can't really tell you how the working copy
looks like or what the exact steps to reproduce this bug are. All I get
is the crash address.

But an unversioned directory isn't always unversioned as I discovered.
With a nested layout (i.e. working copy folders from different
repositories) folder appear as unversioned, but still are versioned.
Maybe the crash happens because of this?

>>I think this should be instead:
>> if (parent_status
>> && (parent_status->entry)
>> && (parent_status->text_status != svn_wc_status_unversioned)
>> && (parent_status->text_status != svn_wc_status_deleted)
>> && (parent_status->text_status != svn_wc_status_missing)
>> && (parent_status->text_status != svn_wc_status_obstructed)
>> && (parent_status->entry->kind == svn_node_dir)
>> && (eb->descend || (! pb)))
>> {
>
>
> I guess that would stop the crash, but is it just hiding the
> underlying, unknown, cause of the bug? Is parent_status getting set
> incorrectly?

Please let's not get into the discussion again wheter a bug needs to be
fixed or not. I think you guys know my opinion about this: if there's
obviously a bug in the code, fix it. Even if you don't know exactly what
has to happen to trigger the bug - it's still a bug, and in this case a
crash.

I have sent a mail to all the users who sent those crashreport asking
for more information. But so far, I haven't received an answer - and
from my experience I usually never get one.
I'll let you know the second I know more. But in the meantime, I suggest
to fix the bug.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Nov 3 19:54:21 2004

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