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:42:45 2003