On Wed, Dec 10, 2003 at 12:45:50PM -0500, Greg Hudson wrote:
> On Wed, 2003-12-10 at 12:05, Art Haas wrote:
> > Well, that sort-of worked. The '__db' files were recreated, then
> > subversion can read them, but the program ends with an 'Aborted' message
> > like so:
> >
> > $ svn ls file:///path/to/svnrepo
> > pythoncad/
> > Aborted
>
> > Maybe this error is just a bug in the current code that will be fixed in
> > a day or two.
>
> More likely, BDB doesn't like something about your database and called
> abort(). gdb might shed some light on the situation.
I'll try and poke around a bit in the next couple of days and see if I
can figure out anything.
> > My Debian box has an NPTL based libc, so if the problem is
> > LinuxThreads/NPTL in origin I would think it would show up here as well.
>
> So, what I meant by a LinuxThreads/NTPL issue is this: BDB maps a shared
> memory region in the __db files and treats the resulting memory as
> containing a mutex, among other things. If you copy the DB from one
> platform to another and the representations of pthread_mutex_t are
> different, then attempting to open the database will fail in a cryptic
> manner. As I said, very brittle.
>
> So, if one of your machines uses LinuxThreads and the other uses NPTL,
> you can't copy databases between them (although recovery might help).
> The same might apply to different versions of LinuxThreads and NPTL.
Would the relevant parts of some 'strace'd output be worth posting to
the list?
> > A look at the 'changelog.Debian.gz' file shows that the libdb4.0
> > package has a "patch to allow db_recover to recover a wedged db_env".
> > I don't think this patch is in the remote machine's libdb, but that
> > machine may have other patches not on this machine.
>
> A brief look at Debian's and Red Hat's patches to db 4.0 does not
> suggest that they have changed the shared memory region representation
> from stock BDB, but they may still have different mutex representations.
As the transition from LinuxThreads to NPTL has started, is there any
sort of test code that can added into subversion to possibly notify
users that copying the repository from one machine to another like I'm
doing can cause problems?
If I'm able to figure out anything regarding the libdb issue I'll send
an e-mail to the list.
Art Haas
--
Man once surrendering his reason, has no remaining guard against absurdities
the most monstrous, and like a ship without rudder, is the sport of every wind.
-Thomas Jefferson to James Smith, 1822
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Dec 10 22:16:42 2003