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

[bug] vtable=0x00000000 for the new FSFS when doing simultaneous commits

From: C.A.T.Magic <c.a.t.magic_at_gmx.at>
Date: 2004-05-09 01:24:03 CEST

Hi subversion-dev-team :)

I experiment with the new fsfs about once a week and
continued to get the same exception every time.
I know fsfs is far from beeing complete yet,
but I thought maybe I should report this.

WinXP-SP1 system, svn rev 9654 build with MSVC7.2
using file:/// protocol and --fs-type fsfs,
when running two commits simultaneously, i get an
exception in svn_fs_abort_txn due to a zero vtable
pointer and other strange effects.

reproduction receipe is like this:
    - create fsfs repo
    - checkout repo as "work"
    - add dummy file 'version.h' in work1/
    - checkout repo as "work2"
    - add dummy file 'version2.h' in work2/
    in two consoles simultaneously do:
      - console1 in work/
        loop {
          echo randomnumber >version.h
          svn commit -m"random"
        }
      - console2 in work2/
        loop {
          echo randomnumber >version2.h
          svn commit -m"random"
        }

there are NOT crashes or strange errors when only
one console is active. so it must have something
todo with concurrent repository access.

this results in varying error messages,
crashes or lockups, like (1,2,3,4) below,
at random.
the traceback for the crash-case is below.

     svn_error_t *
     svn_fs_abort_txn (svn_fs_txn_t *txn, apr_pool_t *pool)
     {
> return txn->vtable->abort (txn, pool);
     }

     txn->vtable = 0x00000000

> svn.exe!svn_fs_abort_txn(svn_fs_txn_t * txn=0x009f5110, apr_pool_t *
pool=0x003f8768) Line 389 + 0xb C
          svn.exe!svn_client_commit(svn_client_commit_info_t * *
commit_info=0x0012fd04, const apr_array_header_t * targets=0x009e5600,
int nonrecursive=0x00000000, svn_client_ctx_t * ctx=0x003f8bf0,
apr_pool_t * pool=0x003f8768) Line 1400 + 0xd C
          svn.exe!svn_cl__commit(apr_getopt_t * os=0x003f87a0, void *
baton=0x009ea4a8, apr_pool_t * pool=0x003f8768) Line 99 + 0x15 C
          svn.exe!main(int argc=0x0012ff54, const char * const *
argv=0x004a9004) Line 1256 + 0x12 C
          svn.exe!__security_init_cookie() Line 93 C
          009f9b28()
          msvcr71.dll!fflush(_iobuf * stream=) Line 72 + 0x9 C

===1======================
...
Committed revision 252.
Sending Version.h
Transmitting file data .svn: Commit failed (details follow):
svn: Transaction out of date.
Sending Version.h
...

===2======================
...
Sending Version.h
Transmitting file data .
Committed revision 292.
svn: Working copy 'X:\SVNSandbox\TestFSFS\WorkFS' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: Working copy 'X:\SVNSandbox\TestFSFS\WorkFS' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
...

===3======================
...
Transmitting file data .
Committed revision 291.
svn: Commit failed (details follow):
svn: Unable to create new transaction.
Sending Version2.h
Transmitting file data .
Committed revision 293.
Sending Version2.h
Transmitting file data .
Committed revision 294.
...

===4======================
(lockup, no messages)

hope this helps to find the bug(s)
=========
c.a.t.
:)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun May 9 01:24:15 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.