My favorites | Sign in
Project Home Downloads Wiki Issues Source
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 205: Really large push can overload JVM heap, causing OutOfMemoryError
  Back to list
Status:  WontFix
Owner:  code-rev...@gtempaccount.com
Closed:  Sep 2009


Sign in to add a comment
 
Reported by code-rev...@gtempaccount.com, Sep 24, 2009
Reported by Shawn Pearce <sop@google.com> on Thu May 28 19:42:59 PDT 2009
Source: JIRA GERRIT-205

If Jetty runs out of RAM when you push a changeset, git reports the less-than-
stellar error message "error: pack-objects died with strange error".  This can
be fun to track down.  Folks have run into this problem:
http://stackoverflow.com/questions/718962/git-push-error-pack-objects-died-with-strange-error

We should try to catch OOM when we call ReceivePack, where we are expected to
really overload the heap, and report something better to the client.
Sep 24, 2009
#1 code-rev...@gtempaccount.com
Comment by Shawn Pearce <sop@google.com> on Mon Jun 01 15:10:19 PDT 2009

We already trap any Error and RuntimeException, and put them into the server
log.  There isn't much more we can do in Java if we've exhausted the heap
size, other than to ask the admin to up the heap... which is what an
OutOfMemory error in the server log should indicate.

JGit could, in theory, use local temporary files rather than heap memory,
especially on larger packs being indexed, but that's quite intrusive to the
code and fairly expensive computationally (as we need to write out to disk,
read back in, etc, and we're really doing a sort over a large list).  I'm just
not going to bother with that.
Sep 24, 2009
#2 code-rev...@gtempaccount.com
Update by Shawn Pearce <sop@google.com> on Mon Jun 01 15:10:19 PDT 2009
Status: WontFix
Sign in to add a comment

Powered by Google Project Hosting