Daniel Näslund <dan...@longitudo.com> writes: > On Tue, Sep 28, 2010 at 03:45:33PM +0200, Daniel Shahaf wrote: >> Daniel Näslund wrote on Mon, Sep 27, 2010 at 22:09:26 +0200: >> >> err_abort() is called when an error object hadn't been svn_error_clear()'d. >> (The error creation installed err_abort() as a pool cleanup callback, >> and clearing the error unregisters the callback.) > > Yes, that was how I understood it.
If you run the program gdb, it will catch the abort. If you step up the stack to err_abort and print err[0] then you will see the file and line where the error was created. (You may well have worked this out already). >> > @@ -2260,14 +2283,23 @@ install_patched_prop_targets(patch_target_t *targe >> > + err = svn_wc_prop_set4(ctx->wc_ctx, target->local_abspath, >> > + prop_target->name, >> > + svn_string_create_from_buf(prop_content, >> > + iterpool), >> > + TRUE /* skip_checks */, >> > + NULL, NULL, >> > + iterpool); >> > + if (err) >> > + { >> > + prop_target->was_rejected = TRUE; >> > + prop_target->err = err; >> >> Does prop_target->err always get cleared? >> >> (The answer is probably "No".) > > As I said above, my intention was to clear it in > send_patch_notification(). You will still have a problem if there is more that one error and the assignment above overwrites a previous err, the overwritten err will have leaked. -- Philip