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

Re: Infinite stack recursion on subpool destruction

From: D.J. Heap <dj_at_shadyvale.net>
Date: 2003-10-04 18:53:12 CEST

An additional note -- if APR_ICONV_PATH is set correctly, then it
doesn't crash, but doesn't finish displaying the error stack correctly,
either.

DJ

D.J. Heap wrote:

> There is a crash bug lurking somewhere in Subversion or APR as reported
> by Francois Beausoleil. I believe it only affects Windows, but I'm not
> positive. It occurs while an error message is being translated
> ('Problem running log') after a commit succeeds, but a post-commit
> update fails.
>
> In iconv_module.c in the iconv_getpath function line 86 a subpool
> allocation goes bad -- somehow it's child and parent are set to the same
> value which later causes an infinite stack recursion during pool
> destruction. Probably due to a memory overwrite somewhere earlier is my
> guess, but that's just a guess. I'm still looking at it, but someone
> with more APR iconv and pool knowledge could probably find it a lot
> faster. Probably this was triggered by the changes to make Windows do
> translations better/correctly.
>
> To repro, change a file in a working copy and then remove write/rename
> permissions from the user you run as. Then commit -- this will let the
> commit work, but the post update will fail with 'Access denied' and
> cause the infinite recursion which eventually blows the stack.
>
> For example:
>
> D:\Temp>svnadmin create repo
>
> D:\Temp>svn co file://localhost/d:/temp/repo wc
> Checked out revision 0.
>
> D:\Temp>cd wc
>
> D:\Temp\wc>echo hi > file
>
> D:\Temp\wc>svn add file
> A file
>
> D:\Temp\wc>svn commit -m "test"
> Adding file
> Transmitting file data .
> Committed revision 1.
>
> D:\Temp\wc>echo bye > file
>
> D:\Temp\wc>svn st
> M file
>
> Now tweak permissions on the wc\.svn\text-base\file.svn-base file (I'm
> using XP Home at the moment, so had to comment out the
> svn_io_set_file_read_write call in adm_files.c instead) and commit. It
> will crash.
>
> As I said, I'll continue looking at this tomorrow, but someone more
> knowledgable of this area may want to see if it's something obvious to
> them.
>
> DJ

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 4 18:53:53 2003

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.