Hey, I've got a crazy working copy state at the moment, but I wanted to pass
this patch off for review (and commit, if you get a chance to test it and
it's all good) lest I forget about it.
Simple change, really, just making svn_err_best_message() skip past the
tracing-only error chain links when choosing which error message to return.
Some chance that it breaks a test expectation somewhere, though, I guess,
so I didn't want to commit up without testing, and I haven't time to do that
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Skip past tracing-only error chain links when choosing the "best error
message". This allows admins to see, for example, the following in
their Apache error_log:
[Fri Oct 09 16:37:00 2009] [error] [client 127.0.0.1] Failed to load the \
AuthzSVNAccessFile: Circular dependency between groups 'devs1' and 'devs'
instead of this considerable less-helpful error:
[Fri Oct 09 16:25:28 2009] [error] [client 127.0.0.1] Failed to load the \
AuthzSVNAccessFile: traced call
(svn_err_best_message): Skip past tracing-only error chain links.
(svn_handle_warning2): Don't skip past tracing-only error chain
links here, as svn_err_best_message() (which this function calls)
will do that for us now.
--- subversion/libsvn_subr/error.c (revision 39902)
+++ subversion/libsvn_subr/error.c (working copy)
@@ -526,10 +526,6 @@
- /* Skip over any trace records. */
- while (is_tracing_link(err))
- err = err->child;
@@ -540,6 +536,9 @@
const char *
svn_err_best_message(svn_error_t *err, char *buf, apr_size_t bufsize)
+ /* Skip over any trace records. */
+ while (is_tracing_link(err))
+ err = err->child;
Received on 2009-10-09 23:02:56 CEST