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

svnserve 'marshal.c' line 920: assertion failed (SVN_IS_VALID_REVNUM(rev))

From: Ace Olszowka <aolszowka_at_gmail.com>
Date: Thu, 23 Aug 2018 07:33:32 -0600

 Hi

The TortoiseSVN Mailing List asked that I post this to the Subversion Users
Mailing list

TortoiseSVN 1.10.0.28176 (64 bit) / Windows Server 2016 1607

We have been using svnserve.exe to host up a pretty large subversion
repository (~170,000 Revisions, ~150 Users).

We just encountered a Unhanded Exception and were able to capture a dump
via ProcDump [procdump /i /ma] in fact two dumps were captured. About 2
seconds after each other, the stack traces appear to be identical.

Error:
In file
'D:\Development\SVN\Releases\TortoiseSVN-1.10.0\ext\subversion\subversion\libsvn_ra_svn\marshal.c'
line 920: assertion failed (SVN_IS_VALID_REVNUM(rev))

Stack Trace:
     ucrtbase.dll!abort () Unknown
> libsvn_tsvn.dll!svn_error_abort_on_malfunction(int can_return, const
char * file, int line, const char * expr) Line 849 C
     [Inline Frame] svnserve.exe!vwrite_tuple_revision(svn_ra_svn_conn_st
*) Line 920 C
     svnserve.exe!vwrite_tuple(svn_ra_svn_conn_st * conn, apr_pool_t *
pool, const char * fmt, char * * ap) Line 1182 C
     svnserve.exe!svn_ra_svn__write_cmd_response(svn_ra_svn_conn_st * conn,
apr_pool_t * pool, const char * fmt, ...) Line 2758 C
     svnserve.exe!get_deleted_rev(svn_ra_svn_conn_st * conn, apr_pool_t *
pool, svn_ra_svn__list_t * params, void * baton) Line 3510 C
     svnserve.exe!svn_ra_svn__handle_command(int * terminate, apr_hash_t *
cmd_hash, void * baton, svn_ra_svn_conn_st * conn, int error_on_disconnect,
apr_pool_t * pool) Line 1946 C
     svnserve.exe!serve_interruptable(int * terminate_p, connection_t *
connection, int(*)(connection_t *) is_busy, apr_pool_t * pool) Line 4396
C
     svnserve.exe!serve_thread(apr_thread_t * tid, void * data) Line 639
C
     libaprutil_tsvn.dll!thread_pool_func(apr_thread_t * t, void * param)
Line 267 C
     [External Code]

Unfortunately the dump looks like its got a lot of private information in
here, I am willing to help as much as possible but cannot share the dump
publicly.

I've already grabbed the PDB's (From
http://www.drdump.com:8080/public/tsvn/71040F62-F78A-4953-B5B3-5C148349FED7/symsrv)
and the Source (From
https://svn.apache.org/repos/asf/subversion/branches/1.10.x/subversion/)

Near as I can tell from my groveling it appears one of our CI Servers
attempted to grab a log (probably to determine if it should build or not)
when this error occurred. To spice it up a bit we were right in the middle
of updating the authz file which was updated incorrectly. The rev variable
from vwrite_tuple_revision is gone ("Variable is optimized away and not
available").

Digging into get_deleted_rev some of the information looks "valid" in the
sense that I don't see any corruption; full_path looks to be a folder
within the repository, however this folder was deleted a few days ago
(2018/08/17 under revision 164376) and peg_revision is valid (164369) its
interesting to note that that revision is lower than the one that contains
the deletion of the folder.

I'm willing to work to try and track down the issue if someone could give a
few pointers, I can share information out of the dumps (removing any
private information along the way).

Searching online I don't think anyone else has encountered this error (at
least that I have been able to see) it looks like we're 1 release back on
TortoiseSVN however, and we're willing to upgrade.

We did encounter an unhandled exception which crashed the svnserve services
a few weeks ago, but at the time didn't have procdump setup (which is why
it was setup now).
Received on 2018-08-23 15:46:07 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.