summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Update Jetty to 9.4.1.v20170120 in buck build"Matthias Sohn2017-04-012-14/+13
| | | | | | This reverts commit d3b80b951c0bf995f7d210710e3d31e9d529efe2. Change-Id: I596ba596f3e857346020e01b0a018d90a0b27edd
* Revert "Update Jetty to 9.4.1.v20170120"David Pursehouse2017-03-3115-117/+103
| | | | | | This reverts commit e05caf91f1df86a95d3e0454000d345bb90a415e. Change-Id: Ia4287f130034a790759b5035505a093b4616a05a
* Merge branch 'stable-4.5' into stable-4.6David Pursehouse2017-03-276-18/+252
|\ | | | | | | | | | | | | | | | | | | * stable-4.5: Only mark packfile invalid if exception signals permanent problem Don't flag a packfile invalid if opening existing file failed Prepare 4.5.2-SNAPSHOT builds Change-Id: I20b50981adc54c426666015ff04fe3bb1db9abd9 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| * Only mark packfile invalid if exception signals permanent problemMatthias Sohn2017-03-266-18/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add NoPackSignatureException and UnsupportedPackVersionException to explicitly mark permanent unrecoverable problems with a pack Assume problem with a pack is permanent only if we are sure the exception signals a non-transient problem we can't recover from: - AccessDeniedException: we lack permissions - CorruptObjectException: we detected corruption - EOFException: file ended unexpectedly - NoPackSignatureException: pack has no pack signature - NoSuchFileException: file has gone missing - PackMismatchException: pack no longer matches its index - UnpackException: unpacking failed - UnsupportedPackIndexVersionException: unsupported pack index version - UnsupportedPackVersionException: unsupported pack version Do not attempt to handle Errors since they are thrown for serious problems applications should not try to recover from. Change-Id: I2c416ce2b0e23255c4fb03a3f9a0ee237f7a484a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Don't flag a packfile invalid if opening existing file failedLuca Milanesio2017-03-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A packfile random file open operation may fail with a FileNotFoundException even if the file exists, possibly for the temporary lack of resources. Instead of managing the FileNotFoundException as any generic IOException it is best to rethrow the exception but prevent the packfile for being flagged as invalid until it is actually opened and read successfully or unsuccessfully. Bug: 514170 Change-Id: Ie37edba2df77052bceafc0b314fd1d487544bf35 Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare 4.5.2-SNAPSHOT buildsMatthias Sohn2017-03-2556-302/+302
| | | | | | | | | | Change-Id: I8485de1f3f63dc9ec445b8fb08093ca144aedc59 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-4.5' into stable-4.6David Pursehouse2017-03-220-0/+0
|\| | | | | | | | | | | | | | | * stable-4.5: JGit v4.5.1.201703201650-r Change-Id: Ic9dda2317456308c222928cb8453cb00a231eea1 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| * JGit v4.5.1.201703201650-rv4.5.1.201703201650-rMatthias Sohn2017-03-2056-59/+59
| | | | | | | | | | Change-Id: I88de7c9f52abbc4921a82208ed74d22aa19fb3cd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-4.5' into stable-4.6Matthias Sohn2017-03-163-9/+40
|\| | | | | | | | | | | | | | | * stable-4.5: Don't remove pack when FileNotFoundException is transient Change-Id: Ic17c542d78a4cad48ff1ed77dcdc853a4ef2dc06 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Don't remove pack when FileNotFoundException is transientLuca Milanesio2017-03-153-9/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The FileNotFoundException is typically raised in three conditions: 1. file doesn't exist 2. incompatible read vs. read/write open modes 3. filesystem locking 4. temporary lack of resources (e.g. too many open files) 1. is already managed, 2. would never happen as packs are not overwritten while with 3. and 4. it is worth logging the exception and retrying to read the pack again. Log transient errors using an exponential backoff strategy to avoid flooding the logs with the same error if consecutive retries to access the pack fail repeatedly. Bug: 513435 Change-Id: I03c6f6891de3c343d3d517092eaa75dba282c0cd Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Prepare 4.6.2-SNAPSHOT buildsMatthias Sohn2017-03-0756-312/+312
| | | | | | | | | | Change-Id: I8835f79145e6a989787d47322c3d8cb9baf0624a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | JGit v4.6.1.201703071140-rv4.6.1.201703071140-rMatthias Sohn2017-03-0756-59/+59
| | | | | | | | | | Change-Id: I842dc95313e5b47b0b7ec983c4a0a91915ed4183 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update Jetty to 9.4.1.v20170120 in buck buildJonathan Nieder2017-03-062-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5e8e2179b218ede7d14b69dc5149b0691b5859cf (Update Jetty to 9.4.1.v201470120, 2017-01-26) updated Jetty in the maven build. Update the buck build to match so buck builds work again. The buck build will go away soon, but in the meantime (until the bazel build gets the same level of support) it is convenient as a faster way of running tests than using maven. The bazel build doesn't need this change since it doesn't build or run http tests yet. Change-Id: Ibbdaf2880e76b32fc9f6b5605a2ff29e3deffda2 (cherry picked from commit 2470f01d0f8bca4c8c754475846c83b9f99c93b8)
* | Update Jetty to 9.4.1.v20170120Matthias Sohn2017-03-0615-103/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | MappedLoginService is no longer available in Jetty 9.4 therefore base TestLoginService on AbstractLoginService. Apparently Jetty now uses slf4j hence adapt RecordingLogger accordingly so we can log error messages containing slf4j style formatting anchors "{}". Change-Id: Ibb36aba8782882936849b6102001a88b699bb65c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> (cherry picked from commit 5e8e2179b218ede7d14b69dc5149b0691b5859cf)
* | Update build to use Tycho 1.0.0Matthias Sohn2017-03-061-1/+1
| | | | | | | | | | | | Change-Id: I10f61962e1496f079a39e0f533506816be56e925 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> (cherry picked from commit 92d8c9bec2bd990cec937b3a6c5f4ab4011d3f73)
* | Update minimum JDK version in READMEDavid Pursehouse2017-03-061-1/+1
| | | | | | | | | | | | Change-Id: I655d896b268e946e3492661b08add0ebac22c6f0 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> (cherry picked from commit 67da5635a47ad7680b3c60358a1fec080eef7d1e)
* | GC: delete empty directories after purging loose objectsMatthias Sohn2017-02-011-0/+7
| | | | | | | | | | | | | | | | In order to limit the number of directories we check for emptiness only consider fanout directories which contained unreferenced loose objects we deleted in the same gc run. Change-Id: Idf8d512867ee1c8ed40bd55752122ce83a98ffa2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | GC.prune(Set<ObjectId>): return early if objects directory is emptyMatthias Sohn2017-01-301-30/+33
| | | | | | | | Change-Id: Id56b102604c4e0437230e3e7c59c0a3a1b676256 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Clean up orphan files in GCHongkai Liu2017-01-302-0/+172
| | | | | | | | | | | | | | | | An orphan file is either a bitmap or an idx file in pack folder, and its corresponding pack file is missing. Change-Id: I3c4cb1f7aa99dd7b398bdb8d513f528d7761edff Signed-off-by: Hongkai Liu <hongkai.liu@ericsson.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update Orbit to S20170120205402 and com.jcraft.jsch to 0.1.54Matthias Sohn2017-01-237-19/+21
| | | | | | | | | | CQ: 12553 Change-Id: Ie72b48d00f363e3dc05b9733018a6ddca32c3e6e Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix preparation of 4.6.1-SNAPSHOT buildsMatthias Sohn2017-01-231-2/+2
| | | | | | | | Change-Id: Ib241c4f45192672712526599898c0bd0bd356436 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update tycho version to 0.26Matthias Sohn2016-12-262-2/+2
| | | | | | | | | | Change-Id: I1cf3402c057de89d1afe161d2d4106896fa8753f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update maven pluginsMatthias Sohn2016-12-262-10/+10
| | | | | | | | Change-Id: I2d18f69d25362f565df071c320970cbc973199cd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Skip javadoc generation for org.eclipse.jgit.http.testMatthias Sohn2016-12-241-1/+3
| | | | | | | | | | | | | | This fixes the error the javadoc plugin raises when generating the maven site for this bundle. Change-Id: I72026aa33be86960747a246af4a70f6a91b40102 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Prepare 4.6.1-SNAPSHOT buildsMatthias Sohn2016-12-2456-312/+312
| | | | | | | | | | Change-Id: I6b05a6f6c3f92365c272e1bdaf76093ca01f2d58 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | JGit v4.6.0.201612231935-rv4.6.0.201612231935-rMatthias Sohn2016-12-2456-59/+59
| | | | | | | | | | Change-Id: Iaa88fe1b195dfe6be99a7b4cb064684e75563715 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-4.5'Matthias Sohn2016-12-241-3/+8
|\| | | | | | | | | | | | | | | * origin/stable-4.5: Fix one case of missing object Change-Id: Ia6384f4be71086d5a0a8c42c7521220f57dfd086 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Fix one case of missing objectHector Oswaldo Caballero2016-12-131-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a repository is being GCed and a concurrent push is received, there is the possibility of having a missing object. This is due to the fact that after the list of objects to delete is built, there is a window of time when an unreferenced and ready to delete object can be referenced by the incoming push. In that case, the object would be deleted because there is no way to know it is no longer unreferenced. This will leave the repository in an inconsistent state and most of the operations fail with a missing tree/object error. Given the incoming push change the last modified date for the now referenced object, verify this one is still a candidate to delete before actually performing the delete operation. Change-Id: Iadcb29b8eb24b0cb4bb9335b670443c138a60787 Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
* | [infer] Fix resource leak in IndexDiffMatthias Sohn2016-12-211-5/+7
| | | | | | | | | | | | | | | | We only need the tree id to add it to a TreeWalk so change tree's type to AnyObjectId. Bug: 509385 Change-Id: I98dd5fef15cd173fe1fd84273f0f48e64e12e608 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in ObjectCheckerMatthias Sohn2016-12-211-2/+3
| | | | | | | | | | Bug: 509385 Change-Id: I6b6ff5b721d959eb0708003a40c8f97d6826ac46 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix a resource leak in PackWriterMatthias Sohn2016-12-191-7/+8
| | | | | | | | | | Bug: 509385 Change-Id: Ic8a82895fa39be73f1bd8427cfe9437be6fc4e3e Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leaks in DfsInserterMatthias Sohn2016-12-191-3/+4
| | | | | | | | | | Bug: 509385 Change-Id: Id5dc40bb3fb9da97ea0795cca1f2bcdcde347767 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in ManifestParserMatthias Sohn2016-12-181-14/+8
| | | | | | | | | | Bug: 509385 Change-Id: Icfe58ac2e5344546448a55ad14ec082356be968c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in RepoCommandMatthias Sohn2016-12-181-9/+3
| | | | | | | | | | Bug: 509385 Change-Id: I30c427f0dd2fc1fceb6b003dfdee0a05efaefca9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in DirCacheMatthias Sohn2016-12-181-3/+3
| | | | | | | | | | Bug: 509385 Change-Id: I5f914c910ef3a7583594fb31c7757d3dddf6a05e Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix SubmoduleWalk leaks in submodule commandsMatthias Sohn2016-12-183-6/+3
| | | | | | | | | | Bug: 509385 Change-Id: I4cba81d8ea596800a40799dc9cb763fae01fe508 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leaks in SubmoduleAddCommandMatthias Sohn2016-12-181-2/+8
| | | | | | | | | | Bug: 509385 Change-Id: I9d25cf117cfb19df108f5fe281232193fd898474 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leaks in RebaseCommandMatthias Sohn2016-12-181-7/+9
| | | | | | | | | | Bug: 509385 Change-Id: I9fbdfda59f7bc577aab55dc92ff897b00b5cb050 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | [infer] Fix resource leak in BlameCommandMatthias Sohn2016-12-181-5/+6
| | | | | | | | | | Bug: 509385 Change-Id: Ic57fd3bf940752229e35102e7761823f7d3d8732 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Ignore infer output folderMatthias Sohn2016-12-181-0/+1
| | | | | | | | | | | | | | | | Infer [1] is a static code checker. [1] http://fbinfer.com/ Change-Id: I880cefe0a20f6af88ab10f6e862fda44fbe0883d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Update maven-source-plugin to 3.0.1 to fix OOM during buildMatthias Sohn2016-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | Recently we frequently suffer from OutOfMemoryError when creating source archives in the Maven build. maven-source-plugin 3.0.0 has a bug [1] causing OOM which is fixed in 3.0.1. [1] https://issues.apache.org/jira/browse/MSOURCES-94 Change-Id: Ie900bd546c42523c5a04e22bd3d3f510d2a81ca2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix FileSnapshot.isModifiedChristian Halstrick2016-12-133-23/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FileSnapshot.isModified may have reported a file to be clean although it was actually dirty. Imagine you have a FileSnapshot on file f. lastmodified and lastread are both t0. Now time is t1 and you 1) modify the file 2) update the FileSnapshot of the file (lastModified=t1, lastRead=t1) 3) modify the file again 4) wait 3 seconds 5) ask the Filesnapshot whether the file is dirty or not. It erroneously answered it's clean. Any file which has been modified longer than 2.5 seconds ago was reported to be clean. As the test shows that's not always correct. The real-world problem fixed by this change is the following: * A gerrit server using JGit to serve git repositories is processing fetch requests while simultaneously a native git garbage collection runs on the repo. * At time t1 native git writes temporary files in the pack folder setting the mtime of the pack folder to t1. * A fetch request causes JGit to search for new packfiles and JGit remembers this scan in a Filesnapshot on the packs folder. Since the gc is not finished JGit doesn't see any new packfiles. * The fetch is processed and the gc ends while the filesystem timer is still t1. GC writes a new packfile and deletes the old packfile. * 3 seconds later another request arrives. JGit does not yet know about the new packfile but is also not rescanning the pack folder because it cached that the last scan happened at time t1 and pack folder's mtime is also t1. Now JGit will not be able to resolve any object contained in this new pack. This behavior may be persistent if objects referenced by the ref/meta/config branch are affected so gerrit can't read permissions stored in the refs/meta/config branch anymore and will not allow any pushes anymore. The pack folder will not change its mtime and therefore no rescan will take place. Change-Id: I3efd0ccffeb97b01207dc3e7a6b85c6b06928fad Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Decide whether to "Accept-Encoding: gzip" on a request-by-request basisZhen Chen2016-12-092-18/+78
| | | | | | | | | | | | | | | | | | When the reply is already compressed (e.g. a packfile fetched using dumb HTTP), "Content-Encoding: gzip" wastes bandwidth relative to sending the content raw. So don't "Accept-Encoding: gzip" for such requests. Change-Id: Id25702c0b0ed2895df8e9790052c3417d713572c Signed-off-by: Zhen Chen <czhen@google.com>
* | Configure max heap size for Maven buildMatthias Sohn2016-12-091-0/+1
| | | | | | | | | | | | | | We faced many OOM errors on Hudson recently, so increase maximum heap size. Change-Id: I81d4d562a06afcd8b4ff7d1f69c4d7f12099afad Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Upgrade errorprone to 2.0.15David Pursehouse2016-12-081-1/+1
| | | | | | | | | | Change-Id: I05d3e12178f8f0b5a687c8e09c2dcf80580acfb4 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Replace usage of deprecated EWAHCompressedBitmap.add(long)David Pursehouse2016-12-072-3/+3
| | | | | | | | | | | | | | | | | | | | The add(long) method was deprecated in favor of addWord(long) in the 0.8.3 release of JavaEWAH [1]. [1] https://github.com/lemire/javaewah/commit/e443cf5e Change-Id: I89c397ed02e040f57663d04504399dfdc0889626 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Expose getObjectToTransfer method of FileLfsServletJacek Centkowski2016-12-061-1/+14
| | | | | | | | | | | | | | | | | | Providing own implementation to doGet/doPut methods is troublesome when this method is private. Change-Id: I098cdc5cb90410eaaebc56c88c2d9e168584dd6d Signed-off-by: Jacek Centkowski <geminica.programs@gmail.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Merge branch 'stable-4.5'David Pursehouse2016-12-061-2/+3
|\| | | | | | | | | | | | | | | * stable-4.5: Use the same variable to check and extract LFS object id Change-Id: I314bd4373f40843c68853b3999f60d85e08628d9 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| * Use the same variable to check and extract LFS object idJacek Centkowski2016-11-241-2/+3
| | | | | | | | | | | | | | | | It is easier to maintain when the same variable is used for both check and extraction of LFS object id. Change-Id: I5406f9bc4a085aa164c4565a9667ad2925105190 Signed-off-by: Jacek Centkowski <geminica.programs@gmail.com>
* | Upgrade buck to latest versionDavid Pursehouse2016-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | The latest version removes dependency on `realpath` which is not available by default on OSX. This upgrades buck to the same version used on Gerrit master. Change-Id: I584211986be4e64f68d4eb905c09d3c5d60133e7 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>