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

Re: Lost in mod_dav

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2004-02-19 21:12:45 CET

"C. Michael Pilato" <cmpilato@collab.net> writes:

> Ick. So mod_dav is trying to undo the failed PROPPATCH? Ah, I see
> that code now. Nasty...

Is that meant to happen? I don't think that's the error anyway.

What I see is that after both calls to svn_repos__hook_pre_revprop
have failed I end up back in dav_method_proppatch in mod_dav.c. At
line 2352 there is a call to dav_close_propdb(propdb) which ends up
destroying the pool the was used to allocate the errors returned from
mod_dav_svn (they were allocated by calling dav_svn_convert_err in
save_value in deadprops.c).

I think those errors are still in use, in particular the ctx_list
still points at them.

After calling dav_close_propdb the next line is dav_auto_checkin which
appears to reuse the memory released when the pool was destroyed, and
that corrupts the errors in the ctx_list. The next line is
dav_process_ctx_list which uses the ctx_list and tries to log the
errors that have been corrupted.

Now I have APR pool debugging enabled which may be making the problem
more visible, but using memory after a pool has been cleared is a
serious problem. I think this problem affects the 1.0.x branch,
that's why I see the messages about "Invalid or incomplete multibyte
or wide character". I notice Ben had similar messages in his log file
which indicates that he is seeing the same corruption.

Philip Martin
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Feb 19 21:13:03 2004

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.