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

RE: permissions (and other) problems

From: Jon Watte <hplus_at_mindcontrol.org>
Date: 2002-09-13 18:58:23 CEST

> Note the the longjmp prevents transaction()'s mutex_exit() from being
> called. This means that when the cleanup routine calls close(), the
> mutex_enter() will block. Badness.

As I said, not every case can be handled 100% -- but I think trying
is good. If this is really the implementation, and there is no asynchronous
database API, then the database API is, uh, in need of improvement. Neither
error codes nor signal handlers are going to make ctrl-C clean up nicely.

Now, if you're worried about the acquisition count mis-match blocking
forever (as you should be) then alarm() might "solve" that, but you'd
still end up with a hung DB at the end -- ergo, DB needs to be re-designed
to support the appropriate semantics, no matter what.

Anyway, the error code checking seems to be what's happening, and we
can hope that the DB is actually studlier than your example, so that a
ctrl-C terminates in reasonable time.

> Now, you'll argue that "mutex_exit()" should be added to the cleanup-list
> in each of these functions. That's true, but these functions are part
> of the database implementation, not part of Subversion. We might even be
> able to patch BDB but we can't patch Oracle.

Luckily, Oracle has an API that is more expressive than your example.
It has other problems, though :-)

Cheers,

                        / h+

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Sep 13 19:00:32 2002

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