[
https://issues.apache.org/jira/browse/COUCHDB-275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Damien Katz updated COUCHDB-275:
--------------------------------
Attachment: term_to_binary_fix.diff
This is patch to the Erlang vm for this crash. It fixes a problem with Erlang's
term_to_binary code where it blows the C stack on deeply nested terms (ie deep
trees). Example, this will crash any unpatched erlang VM:
> term_to_binary(lists:foldl(fun(E,A) -> [E, A] end, [], lists:seq(1, 100000))).
This patch fixes the Erlang vm by changing the the term_to_binary code from a
recursive C implementation to one using it's own stack.
> couch crashes erlang vm under heavy load
> ----------------------------------------
>
> Key: COUCHDB-275
> URL: https://issues.apache.org/jira/browse/COUCHDB-275
> Project: CouchDB
> Issue Type: Bug
> Affects Versions: 0.9
> Environment: Linux melkjug.com 2.6.23-gentoo-r8 #1 SMP Wed Feb 13
> 14:28:49 EST 2008 x86_64 QEMU Virtual CPU version 0.9.1 GenuineIntel GNU/Linux
> Reporter: Joshua Bronson
> Attachments: 2009-03-05-couch.log.snippet, term_to_binary_fix.diff
>
>
> I clicked "Compact" in futon for my 11G database at 9:04 AM EST:
> [Mon, 02 Mar 2009 14:04:32 GMT] [info] [<0.59.0>] Starting compaction for db
> "melkjug"
> An hour and a half later it was 85% finished and then the following was
> output to stderr:
> heart: Mon Mar 2 10:33:20 2009: heart-beat time-out.
> /usr/bin/couchdb: line 255: echo: write error: Broken pipe
> heart: Mon Mar 2 10:33:22 2009: Executed "/usr/bin/couchdb -k". Terminating.
> I am retaining my 4.3G melkjug.couch.compact file in case it's useful in
> debugging this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.