Note that there are some explanatory texts on larger screens.

plurals
  1. POSpecific couchdb views suddenly start timing out
    primarykey
    data
    text
    <p>I have three specific views that suddenly started crashing after working smoothly for two years. Other views on the same database are just fine. This is the error in futon:</p> <pre><code>Error: os_process_error OS process timed out. </code></pre> <p>Couchdb version is 1.2.0.</p> <p>Here is the crash report logs:</p> <pre><code>[Sat, 22 Dec 2012 18:28:53 GMT] [error] [&lt;0.1434.0&gt;] OS Process Error &lt;0.1331.0&gt; :: {os_process_error, "OS process timed out."} [Sat, 22 Dec 2012 18:28:53 GMT] [error] [emulator] Error in process &lt;0.1434.0&gt; with exit value: {{nocatch,{os_process_error,"OS process timed out."}},[{couch_os_process,prompt,2,[{file,"/usr/src/build-couchdb/dependencies/couchdb/src/couchdb/couch_os_process.erl"},{line,57}]},{couch_query_servers,map_doc_raw... [Sat, 22 Dec 2012 18:28:53 GMT] [error] [&lt;0.1427.0&gt;] ** Generic server &lt;0.1427.0&gt; terminating ** Last message in was {'EXIT',&lt;0.1431.0&gt;, {{nocatch, {os_process_error,"OS process timed out."}}, [{couch_os_process,prompt,2, [{file, "/usr/src/build-couchdb/dependencies/couchdb/src/couchdb/couch_os_process.erl"}, {line,57}]}, {couch_query_servers,map_doc_raw,2, [{file, "/usr/src/build-couchdb/dependencies/couchdb/src/couchdb/couch_query_servers.erl"}, {line,88}]}, {couch_view_updater,'-do_maps/3-fun-0-',3, [{file, "/usr/src/build-couchdb/dependencies/couchdb/src/couchdb/couch_view_updater.erl"}, {line,174}]}, {couch_view_updater,do_maps,3, [{file, "/usr/src/build-couchdb/dependencies/couchdb/src/couchdb/couch_view_updater.erl"}, {line,169}]}]}} ** When Server state == {group_state,undefined,&lt;&lt;"anypy_suggest"&gt;&gt;, {"/usr/src/build-couchdb/build/var/lib/couchdb", &lt;&lt;"anypy_suggest"&gt;&gt;, {group, &lt;&lt;179,2,154,154,243,188,196,230,224,228,72,35,138, 126,255,36&gt;&gt;, nil,&lt;&lt;"_design/message"&gt;&gt;,&lt;&lt;"javascript"&gt;&gt;,[], [{view,0,0,0,[], &lt;&lt;"function(doc) {\n\t\n\t// test if messages shoud be emitted\n\tvar emit_all = function(messages) {\n\t\tfor(var i in messages) {\n\t\t\tvar d = messages[i].when.split(\"-\");\n\t\t\tvar day = d[2].split(\"T\");\n\t\t\temit([d[0]+'-'+d[1]+'-'+day[0], messages[i].group, messages[i].who], 1);\n\t\t}\n\t};\n\n\n\t// vacation plan level messages\n\tif(doc.doc_type == 'PlanRoute') {\n\n\t\t// route level messages\n\t\tif(doc.messages) \n\t\t\temit_all(doc.messages);\n\n\t\t// destination level messages\n\t\tif(doc.destinations) {\n\t\t\tfor(var i in doc.destinations) {\n\t\t\t\tif(doc.destinations[i].messages) {\n\t\t\t\t\temit_all(doc.destinations[i].messages);\n\t\t\t\t}\n\t\t\t\t// service level messages\n\t\t\t\tif(doc.destinations[i].services) {\n\t\t\t\t\tfor(var ii in doc.destinations[i].services) {\n\t\t\t\t\t\tif(doc.destinations[i].services[ii].messages) {\n\t\t\t\t\t\t\temit_all(doc.destinations[i].services[ii].messages);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"&gt;&gt;, nil, [{&lt;&lt;"by_date"&gt;&gt;, &lt;&lt;"function(keys, values) {\n\treturn sum(values)\n}"&gt;&gt;}], []}, {view,1,0,0, [&lt;&lt;"sent_by"&gt;&gt;], &lt;&lt;"function(doc) {\n\t\n\tvar key;\n\n\t// test if messages shoud be emitted\n\tvar emit_all = function(level, key, doc, messages) {\n\t\tfor(var i in messages) {\n\t\t\tdo_emit(level, key, doc, messages, i);\n\t\t}\n\t};\n\n\tvar do_emit = function(level, key, doc, msgs, idx) {\n\t\tmsg = msgs[idx];\n\t\tvar context = [];\n\t\tfor(i=0; i &lt; idx; i++)\n\t\tcontext.push({who:msgs[i].who, message:msgs[i].message});\n\t\tvar ndoc = {\n\t\tmessage:msg.message,\n\t\twhen:msg.when,\n\t\twho:msg.who,\n\t\tgroup:msg.group,\n\t\tviewed_by:msg.viewed_by,\n\t\tlevel: level,\n\t\tdoc_id: doc._id,\n\t\tdoc_type: doc.doc_type,\n\t\tdoc_title: doc.name,\n\t\tcontext: context,\n\t\t};\n\n\t\tkeys = [msg.who, msg.when];\n\t\temit(keys, ndoc);\n\t};\n\n\t// vacation plan level messages\n\tif(doc.doc_type == 'PlanRoute') {\n\t\tkey = doc.staff_id;\n\n\t\t// route level messages\n\t\tif(doc.messages) \n\t\t\temit_all('', key, doc, doc.messages);\n\n\t\t// destination level messages\n\t\tif(doc.destinations) {\n\t\t\tfor(var i in doc.destinations) {\n\t\t\t\tif(doc.destinations[i].messages) {\n\t\t\t\t\tvar level = 'Destination ('+doc.destinations[i].destination_id+') on VP leg #' + doc.destinations[i].leg;\n\t\t\t\t\temit_all(level, key, doc, doc.destinations[i].messages);\n\t\t\t\t}\n\t\t\t\t// service level messages\n\t\t\t\tif(doc.destinations[i].services &amp;&amp; doc.destinations[i].services.length &gt; 0) {\n\t\t\t\t\tfor(var ii in doc.destinations[i].services) {\n\t\t\t\t\t\tif(doc.destinations[i].services[ii].messages) {\n\t\t\t\t\t\t\tvar level = doc.destinations[i].services[ii].desc;\n\t\t\t\t\t\t\temit_all(level, key, doc, doc.destinations[i].services[ii].messages, ii);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"&gt;&gt;, nil,[],[]}, {view,2,0,0, [&lt;&lt;"unviewed_by"&gt;&gt;], &lt;&lt;"function(doc) {\n\t\n\tvar key;\n\n\t// test if messages shoud be emitted\n\tvar test_and_emit = function(level, group_not, key, doc, messages) {\n\t\tfor(var i in messages) {\n\t\t\tif(messages[i].group != group_not &amp;&amp; messages[i].viewed_by.indexOf(key) == -1) {\n\t\t\t\t// key not in the list, emit this message and doc details\n\t\t\t\tdo_emit(level, key, doc, messages, i);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar do_emit = function(level, key, doc, msgs, idx) {\n\t\tmsg = msgs[idx];\n\t\tvar context = [];\n\t\tfor(i=0; i &lt; idx; i++)\n\t\tcontext.push({who:msgs[i].who, message:msgs[i].message});\n\t\tvar ndoc = {\n\t\tmessage:msg.message,\n\t\twhen:msg.when,\n\t\twho:msg.who,\n\t\tgroup:msg.group,\n\t\tviewed_by:msg.viewed_by,\n\t\tlevel: level,\n\t\tdoc_id: doc._id,\n\t\tdoc_type: doc.doc_type,\n\t\tdoc_title: doc.name,\n\t\tcontext: context,\n\t\t};\n\t\temit(key, ndoc);\n\t};\n\n\t// suggest level messages\n\tif(doc.doc_type == 'ReserveSuggest') {\n\t\tkey = doc.staff_id;\n\t\t\n\t\t// doc level messages\n\t\tif(doc.messages) \n\t\t\ttest_and_emit('','staff', key, doc, doc.messages);\n\t\n\t\t// suggest level messages\n\t\tif(doc.suggests) {\n\t\t\tfor(var i in doc.suggests) {\n\t\t\t\tif(doc.suggests[i].messages) {\n\t\t\t\t\tvar level = doc.suggests[i].desc;\n\t\t\t\t\ttest_and_emit(level, 'staff', key, doc, doc.suggests[i].messages, ii);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// vacation plan level messages\n\tif(doc.doc_type == 'PlanRoute') {\n\t\tkey = doc.staff_id;\n\n\t\t// route level messages\n\t\tif(doc.messages) \n\t\t\ttest_and_emit('','staff', key, doc, doc.messages);\n\n\t\t// destination level messages\n\t\tif(doc.destinations) {\n\t\t\tfor(var i in doc.destinations) {\n\t\t\t\tif(doc.destinations[i].messages) {\n\t\t\t\t\tvar level = 'Destination ('+doc.destinations[i].destination_id+') on VP leg #' + doc.destinations[i].leg;\n\t\t\t\t\ttest_and_emit(level, 'staff', key, doc, doc.destinations[i].messages);\n\t\t\t\t}\n\t\t\t\t// service level messages\n\t\t\t\tif(doc.destinations[i].services &amp;&amp; doc.destinations[i].services.length &gt; 0) {\n\t\t\t\t\tfor(var ii in doc.destinations[i].services) {\n\t\t\t\t\t\tif(doc.destinations[i].services[ii].messages) {\n\t\t\t\t\t\t\tvar level = 'Service (' + doc.destinations[i].services[ii].type + ')';\n\t\t\t\t\t\t\ttest_and_emit(level, 'staff', key, doc, doc.destinations[i].services[ii].messages, ii);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"&gt;&gt;, nil,[],[]}], {[]}, nil,0,0,nil,nil}}, {group, &lt;&lt;179,2,154,154,243,188,196,230,224,228,72,35,138, 126,255,36&gt;&gt;, &lt;0.1428.0&gt;,&lt;&lt;"_design/message"&gt;&gt;,&lt;&lt;"javascript"&gt;&gt;, [], [{view,0,503333,0,[], &lt;&lt;"function(doc) {\n\t\n\t// test if messages shoud be emitted\n\tvar emit_all = function(messages) {\n\t\tfor(var i in messages) {\n\t\t\tvar d = messages[i].when.split(\"-\");\n\t\t\tvar day = d[2].split(\"T\");\n\t\t\temit([d[0]+'-'+d[1]+'-'+day[0], messages[i].group, messages[i].who], 1);\n\t\t}\n\t};\n\n\n\t// vacation plan level messages\n\tif(doc.doc_type == 'PlanRoute') {\n\n\t\t// route level messages\n\t\tif(doc.messages) \n\t\t\temit_all(doc.messages);\n\n\t\t// destination level messages\n\t\tif(doc.destinations) {\n\t\t\tfor(var i in doc.destinations) {\n\t\t\t\tif(doc.destinations[i].messages) {\n\t\t\t\t\temit_all(doc.destinations[i].messages);\n\t\t\t\t}\n\t\t\t\t// service level messages\n\t\t\t\tif(doc.destinations[i].services) {\n\t\t\t\t\tfor(var ii in doc.destinations[i].services) {\n\t\t\t\t\t\tif(doc.destinations[i].services[ii].messages) {\n\t\t\t\t\t\t\temit_all(doc.destinations[i].services[ii].messages);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"&gt;&gt;, {btree,&lt;0.1428.0&gt;, {829460268,{128035,[128035]},6593177}, #Fun&lt;couch_btree.3.62781489&gt;, #Fun&lt;couch_btree.4.62781489&gt;, #Fun&lt;couch_view.less_json_ids.2&gt;, #Fun&lt;couch_view_group.10.74547581&gt;,snappy}, [{&lt;&lt;"by_date"&gt;&gt;, &lt;&lt;"function(keys, values) {\n\treturn sum(values)\n}"&gt;&gt;}], []}, {view,1,503333,0, [&lt;&lt;"sent_by"&gt;&gt;], &lt;&lt;"function(doc) {\n\t\n\tvar key;\n\n\t// test if messages shoud be emitted\n\tvar emit_all = function(level, key, doc, messages) {\n\t\tfor(var i in messages) {\n\t\t\tdo_emit(level, key, doc, messages, i);\n\t\t}\n\t};\n\n\tvar do_emit = function(level, key, doc, msgs, idx) {\n\t\tmsg = msgs[idx];\n\t\tvar context = [];\n\t\tfor(i=0; i &lt; idx; i++)\n\t\tcontext.push({who:msgs[i].who, message:msgs[i].message});\n\t\tvar ndoc = {\n\t\tmessage:msg.message,\n\t\twhen:msg.when,\n\t\twho:msg.who,\n\t\tgroup:msg.group,\n\t\tviewed_by:msg.viewed_by,\n\t\tlevel: level,\n\t\tdoc_id: doc._id,\n\t\tdoc_type: doc.doc_type,\n\t\tdoc_title: doc.name,\n\t\tcontext: context,\n\t\t};\n\n\t\tkeys = [msg.who, msg.when];\n\t\temit(keys, ndoc);\n\t};\n\n\t// vacation plan level messages\n\tif(doc.doc_type == 'PlanRoute') {\n\t\tkey = doc.staff_id;\n\n\t\t// route level messages\n\t\tif(doc.messages) \n\t\t\temit_all('', key, doc, doc.messages);\n\n\t\t// destination level messages\n\t\tif(doc.destinations) {\n\t\t\tfor(var i in doc.destinations) {\n\t\t\t\tif(doc.destinations[i].messages) {\n\t\t\t\t\tvar level = 'Destination ('+doc.destinations[i].destination_id+') on VP leg #' + doc.destinations[i].leg;\n\t\t\t\t\temit_all(level, key, doc, doc.destinations[i].messages);\n\t\t\t\t}\n\t\t\t\t// service level messages\n\t\t\t\tif(doc.destinations[i].services &amp;&amp; doc.destinations[i].services.length &gt; 0) {\n\t\t\t\t\tfor(var ii in doc.destinations[i].services) {\n\t\t\t\t\t\tif(doc.destinations[i].services[ii].messages) {\n\t\t\t\t\t\t\tvar level = doc.destinations[i].services[ii].desc;\n\t\t\t\t\t\t\temit_all(level, key, doc, doc.destinations[i].services[ii].messages, ii);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"&gt;&gt;, {btree,&lt;0.1428.0&gt;, {829552398,{108630,[]},204390994}, #Fun&lt;couch_btree.3.62781489&gt;, #Fun&lt;couch_btree.4.62781489&gt;, #Fun&lt;couch_view.less_json_ids.2&gt;, #Fun&lt;couch_view_group.10.74547581&gt;,snappy}, [],[]}, {view,2,503333,0, [&lt;&lt;"unviewed_by"&gt;&gt;], &lt;&lt;"function(doc) {\n\t\n\tvar key;\n\n\t// test if messages shoud be emitted\n\tvar test_and_emit = function(level, group_not, key, doc, messages) {\n\t\tfor(var i in messages) {\n\t\t\tif(messages[i].group != group_not &amp;&amp; messages[i].viewed_by.indexOf(key) == -1) {\n\t\t\t\t// key not in the list, emit this message and doc details\n\t\t\t\tdo_emit(level, key, doc, messages, i);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar do_emit = function(level, key, doc, msgs, idx) {\n\t\tmsg = msgs[idx];\n\t\tvar context = [];\n\t\tfor(i=0; i &lt; idx; i++)\n\t\tcontext.push({who:msgs[i].who, message:msgs[i].message});\n\t\tvar ndoc = {\n\t\tmessage:msg.message,\n\t\twhen:msg.when,\n\t\twho:msg.who,\n\t\tgroup:msg.group,\n\t\tviewed_by:msg.viewed_by,\n\t\tlevel: level,\n\t\tdoc_id: doc._id,\n\t\tdoc_type: doc.doc_type,\n\t\tdoc_title: doc.name,\n\t\tcontext: context,\n\t\t};\n\t\temit(key, ndoc);\n\t};\n\n\t// suggest level messages\n\tif(doc.doc_type == 'ReserveSuggest') {\n\t\tkey = doc.staff_id;\n\t\t\n\t\t// doc level messages\n\t\tif(doc.messages) \n\t\t\ttest_and_emit('','staff', key, doc, doc.messages);\n\t\n\t\t// suggest level messages\n\t\tif(doc.suggests) {\n\t\t\tfor(var i in doc.suggests) {\n\t\t\t\tif(doc.suggests[i].messages) {\n\t\t\t\t\tvar level = doc.suggests[i].desc;\n\t\t\t\t\ttest_and_emit(level, 'staff', key, doc, doc.suggests[i].messages, ii);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// vacation plan level messages\n\tif(doc.doc_type == 'PlanRoute') {\n\t\tkey = doc.staff_id;\n\n\t\t// route level messages\n\t\tif(doc.messages) \n\t\t\ttest_and_emit('','staff', key, doc, doc.messages);\n\n\t\t// destination level messages\n\t\tif(doc.destinations) {\n\t\t\tfor(var i in doc.destinations) {\n\t\t\t\tif(doc.destinations[i].messages) {\n\t\t\t\t\tvar level = 'Destination ('+doc.destinations[i].destination_id+') on VP leg #' + doc.destinations[i].leg;\n\t\t\t\t\ttest_and_emit(level, 'staff', key, doc, doc.destinations[i].messages);\n\t\t\t\t}\n\t\t\t\t// service level messages\n\t\t\t\tif(doc.destinations[i].services &amp;&amp; doc.destinations[i].services.length &gt; 0) {\n\t\t\t\t\tfor(var ii in doc.destinations[i].services) {\n\t\t\t\t\t\tif(doc.destinations[i].services[ii].messages) {\n\t\t\t\t\t\t\tvar level = 'Service (' + doc.destinations[i].services[ii].type + ')';\n\t\t\t\t\t\t\ttest_and_emit(level, 'staff', key, doc, doc.destinations[i].services[ii].messages, ii);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"&gt;&gt;, {btree,&lt;0.1428.0&gt;, {829591489,{139,[]},306902}, #Fun&lt;couch_btree.3.62781489&gt;, #Fun&lt;couch_btree.4.62781489&gt;, #Fun&lt;couch_view.less_json_ids.2&gt;, #Fun&lt;couch_view_group.10.74547581&gt;,snappy}, [],[]}], {[]}, {btree,&lt;0.1428.0&gt;, {829452501,[],6016985}, #Fun&lt;couch_btree.3.62781489&gt;, #Fun&lt;couch_btree.4.62781489&gt;, #Fun&lt;couch_btree.5.62781489&gt;,nil,snappy}, 503333,0,nil,nil}, &lt;0.1431.0&gt;,nil,false, [{{&lt;0.130.0&gt;,#Ref&lt;0.0.0.41069&gt;},509735}], &lt;0.1430.0&gt;,false} ** Reason for termination == ** {os_process_error,"OS process timed out."} [Sat, 22 Dec 2012 18:28:53 GMT] [error] [&lt;0.1427.0&gt;] {error_report,&lt;0.31.0&gt;, {&lt;0.1427.0&gt;,crash_report, [[{initial_call, {couch_view_group,init,['Argument__1']}}, {pid,&lt;0.1427.0&gt;}, {registered_name,[]}, {error_info, {exit, {os_process_error,"OS process timed out."}, [{gen_server,terminate,6, [{file,"gen_server.erl"},{line,737}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,227}]}]}}, {ancestors,[&lt;0.1426.0&gt;]}, {messages,[]}, {links,[&lt;0.1428.0&gt;,&lt;0.122.0&gt;]}, {dictionary,[]}, {trap_exit,true}, {status,running}, {heap_size,2584}, {stack_size,24}, {reductions,545}], []]}} [Sat, 22 Dec 2012 18:28:53 GMT] [error] [&lt;0.130.0&gt;] Uncaught server error: {os_process_error, &lt;&lt;"OS process timed out."&gt;&gt;} [Sat, 22 Dec 2012 18:28:53 GMT] [error] [&lt;0.1428.0&gt;] ** Generic server &lt;0.1428.0&gt; terminating ** Last message in was {'EXIT',&lt;0.1427.0&gt;, {os_process_error,"OS process timed out."}} ** When Server state == {file,{file_descriptor,prim_file,{#Port&lt;0.2941&gt;,101}}, 829595830} ** Reason for termination == ** {os_process_error,"OS process timed out."} [Sat, 22 Dec 2012 18:28:53 GMT] [error] [&lt;0.1428.0&gt;] {error_report,&lt;0.31.0&gt;, {&lt;0.1428.0&gt;,crash_report, [[{initial_call,{couch_file,init,['Argument__1']}}, {pid,&lt;0.1428.0&gt;}, {registered_name,[]}, {error_info, {exit, {os_process_error,"OS process timed out."}, [{gen_server,terminate,6, [{file,"gen_server.erl"},{line,737}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,227}]}]}}, {ancestors,[&lt;0.1427.0&gt;,&lt;0.1426.0&gt;]}, {messages,[{'EXIT',&lt;0.1430.0&gt;,shutdown}]}, {links,[]}, {dictionary,[]}, {trap_exit,true}, {status,running}, {heap_size,377}, {stack_size,24}, {reductions,1125}], []]}} </code></pre> <p>Also, I am frequently seeing this error in the logs, even though the associated request returns normally:</p> <pre><code>[Sat, 22 Dec 2012 19:20:28 GMT] [info] [&lt;0.3849.0&gt;] checkpointing view update at seq 232409 for xxxx _design/all_types [Sat, 22 Dec 2012 19:20:28 GMT] [error] [&lt;0.124.0&gt;] {error_report,&lt;0.31.0&gt;, {&lt;0.124.0&gt;,crash_report, [[{initial_call, {mochiweb_socket_server,init,['Argument__1']}}, {pid,&lt;0.124.0&gt;}, {registered_name,[]}, {error_info, {exit,eaddrinuse, [{gen_server,init_it,6, [{file,"gen_server.erl"},{line,313}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,227}]}]}}, {ancestors, [couch_secondary_services,couch_server_sup,&lt;0.32.0&gt;]}, {messages,[]}, {links,[&lt;0.93.0&gt;]}, {dictionary,[]}, {trap_exit,true}, {status,running}, {heap_size,987}, {stack_size,24}, {reductions,466}], []]}} </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload