-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jgit with reftable causes "Cannot load refs/meta/reject-commits" error #130
Comments
Please try with this fix for #102 https://eclipse.gerrithub.io/c/eclipse-jgit/jgit/+/1206683. You can also convert an existing repository to reftable storage using JGit CLI command convert-ref-storage. |
Thanks @msohn , unfortunately this didn't work for us: Even with fix https://eclipse.gerrithub.io/c/eclipse-jgit/jgit/+/1206683, the run eventually failed with:
The Exception is thrown when loading the reject commits map in
A |
Can you try it with https://eclipse.gerrithub.io/c/eclipse-jgit/jgit/+/1206692 ? |
Version
7.0.0
Operating System
Linux/Unix
Bug description
1 - Set up a git repository (or use an existing one) and enable reftable (you can do this by running git refs migration, this will need git 2.47 at least):
2 - Set up constant writes to the repository. This could be a simple for loop that pushes to the repository or a test framework. We reproduced this by using Gatling against Gerrit, for example, you could use the git simulation from the gatling-sbt-gerrit-test.
3 - Schedule
jgit gc
over a period of time X, ensuring thatpruneexpire
andprunepackexpire
are set to X*2. We run GC every 1 hour and setpruneexpire
andprunepackexpire
every 2 hours. Our gitconfig
looks like this:We execute the
jgit
process as follows:After a few iterations (usually 3 or 4), following a GC execution pushes start to fail with:
Full stack trace can be found here
Actual behavior
Even thought the GC is successful, subsequent pushes to the repository fail due to https://pastebin.com/raw/PAX4N4S1.
Expected behavior
GC is successful and the repository is not corrupted.
Relevant log output
Other information
c824610ab
.jgit gc
using jgit6.80
,6.8.1
and7.0.0
, the problem arises with all versions.We are still trying to reproduce this more quickly, perhaps programmatically, but so far this is the only way we have managed.
NOTE: I wonder if this is would be another manifestation of #102 , we will try to apply that patch and see if we can still reproduce.
The text was updated successfully, but these errors were encountered: