[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Hi!
Currently, 80 developers came to a screeching halt because somebody managed to push a 127Mb file. We managed to get Gerrit back to working order by following [1]. Still all developers cannot checkout, since jgit completely hangs (* not true, see below) when checking out this file
* jgit actually does not hang. it spends huuuuge amounts of time reading the file from the pack [2]. since the file isLarge(), it uses the fixed 8k buffer in a loop, with another 8k buffer on top, reading junks of (so it seems) 4-20 bytes. I let it run all night today, and it managed to checkout half the file (~64Mb) in 12 hours!
I need a quick and dirty solution to get around the problem to get all devs back on track. I played with streamFileThreshold, as that helped on the Gerrit server, but it seems to have no effect on local JGit. Any other thing i can do? And if it's changing a constant in jgit source for now, i'm happy too!
[1] http://groups.google.com/group/repo-discuss/browse_thread/thread/d46af3758a383e7c/fa73c82ff222a616?#fa73c82ff222a616
[2] Thread [ModalContext] (Suspended)
Inflater.inflateBytes(long, byte[], int, int) line: not available [native method]
Inflater.inflate(byte[], int, int) line: 255
InflaterInputStream.read(byte[], int, int) line: 152
InflaterInputStream.skip(long) line: 208
BufferedInputStream.skip(long) line: 366
ObjectStream$Filter.skip(long) line: 199
IO.skipFully(InputStream, long) line: 327
LargePackedDeltaObject$2(DeltaStream).seekBase() line: 339
LargePackedDeltaObject$2(DeltaStream).read(byte[], int, int) line: 213
BufferedInputStream.read1(byte[], int, int) line: 273
BufferedInputStream.read(byte[], int, int) line: 334
TeeInputStream.read(byte[], int, int) line: 111
LargePackedDeltaObject$1(ObjectStream$Filter).read(byte[], int, int) line: 209
LargePackedDeltaObject$1(InputStream).read(byte[]) line: 101
LargePackedDeltaObject(ObjectLoader).copyTo(OutputStream) line: 254
DirCacheCheckout.checkoutEntry(Repository, File, DirCacheEntry, ObjectReader) line: 961
DirCacheCheckout.doCheckout() line: 447
DirCacheCheckout.checkout() line: 381
CheckoutCommand.call() line: 174
GitRepositoryUtils.cloneRepository(File, URIish, String, boolean, IProgressMonitor, List<PostCloneTask>) line: 235
CloneRepositoryDialog$3.run(IProgressMonitor) line: 155
ModalContext$ModalContextThread.run() line: 121
Regards,
Markus