commit | 73d5fc056b7bfa18bec7cec6b391dbedc837c5b5 | [log] [download] |
---|---|---|
author | Luca Milanesio <luca.milanesio@gmail.com> | Mon Nov 18 12:14:38 2019 -0800 |
committer | David Pursehouse <dpursehouse@collab.net> | Thu Nov 28 11:21:35 2019 +0900 |
tree | 5eb2f1135ad2f95dc73c708f84a0a897c25038db | |
parent | 55240365404a0f503297b0bad1cece6c17f94fb6 [diff] |
Check BLOB content size before trying to render it Make sure that the content returned by JGit is below the maximum size allowed for formatting/rendering with Soy. The method loader.getCachedBytes(MAX_FILE_SIZE) would return an in-memory content larger than MAX_FILE_SIZE if the the BLOB is smaller than streamFileThreshold. Parsing 100s megabytes of in-memory content using a prettyfier regex and trying to render it in HTML would result in a massive allocation of strings in the JVM heap. The overload of memory allocation may eventually result in triggering continuous 'stop-the-world' GC cycles, blocking the process for several minutes. Bug: https://github.com/google/gitiles/issues/192 Change-Id: I6ab5f367e731d67d4a5816a0beae5551106bb72b
Gitiles is a simple repository browser for Git repositories, built on JGit. Its guiding principle is simplicity: it has no formal access controls, no write access, no fancy Javascript, etc.
Gitiles automatically renders *.md
Markdown files into HTML for simplified documentation. Refer to the Markdown documentation for details.
Gitiles is configurable in a git-style configuration file named gitiles.config
. Refer to the configuration documentation for details.
Use the issue tracker at github to file bugs.
Please refer to the Developer Guide.