Julian Foad <[email protected]> writes: > On Tue, 2011-01-25 at 08:28 -0800, Danny Trebbien wrote: >> > I made one tweak: in the test for detecting an error, after detecting >> > the error, we need to clear the error, otherwise the test harness >> > reports success on the individual test but reports a problem at the end >> > of the test run: >> > >> > PASS: lt-subst_translate-test 1: test svn_subst_translate_string2() >> > /home/julianfoad/bin/svn-c-test: line 35: 11406 Aborted >> > >> > So I added "svn_error_clear(err);" after "SVN_TEST_ASSERT(err->apr_err >> > == SVN_ERR_IO_INCONSISTENT_EOL);". >> >> Is the svn_error_t object reused? > > It's not re-used. > > Normally, an error ends up being handled by svn_handle_error2() or some > such function, which (after printing out the details) destroys the pool > that was allocated for it. > > The problem was that the pool allocated for this particular error was > never being handled, and never being destroyed. Somewhere there is some > code that detects this at program exit time and throws an assertion > failure to warn us programmers of this "leak", because normally an error > not being handled indicates a mistake in the program logic (and a > leaking of memory).
If you were not seeing the abort then you were probably building without -DSVN_DEBUG; that makes the error leak into just a memory leak without an abort. -- Philip

