Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
all
Description
If a commit fails (due to out-of-dateness, or whatever), the client tries to delete the failed transaction. According to cmpilato, though, libsvn_fs uses a single trail to recursively remove the *entire* transaction. If the transaction is really big, it's easy for BerkeleyDB to run out of locks. This is an icky scalability bug. (Note that it's also possible for an update to build a really huge transaction as well, and updates *always* remove their transactions. So this isn't just about commits.)