2012-12-22 4 views
5

J'ai trois vues spécifiques qui ont soudainement commencé à se bloquer après avoir travaillé en douceur pendant deux ans. Les autres vues sur la même base de données sont très bien. C'est l'erreur dans futon:Les vues couchdb spécifiques commencent soudainement à expirer

Error: os_process_error 
OS process timed out. 

La version de Couchdb est 1.2.0.

Voici les journaux de rapport d'accident:

[Sat, 22 Dec 2012 18:28:53 GMT] [error] [<0.1434.0>] OS Process Error <0.1331.0> :: {os_process_error, 
               "OS process timed out."} 
[Sat, 22 Dec 2012 18:28:53 GMT] [error] [emulator] Error in process <0.1434.0> 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] [<0.1427.0>] ** Generic server <0.1427.0> terminating 
** Last message in was {'EXIT',<0.1431.0>, 
         {{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,<<"anypy_suggest">>, 
        {"/usr/src/build-couchdb/build/var/lib/couchdb", 
         <<"anypy_suggest">>, 
         {group, 
         <<179,2,154,154,243,188,196,230,224,228,72,35,138, 
         126,255,36>>, 
         nil,<<"_design/message">>,<<"javascript">>,[], 
         [{view,0,0,0,[], 
         <<"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}">>, 
         nil, 
         [{<<"by_date">>, 
          <<"function(keys, values) {\n\treturn sum(values)\n}">>}], 
         []}, 
         {view,1,0,0, 
         [<<"sent_by">>], 
         <<"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 < 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 && doc.destinations[i].services.length > 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}">>, 
         nil,[],[]}, 
         {view,2,0,0, 
         [<<"unviewed_by">>], 
         <<"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 && 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 < 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 && doc.destinations[i].services.length > 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}">>, 
         nil,[],[]}], 
         {[]}, 
         nil,0,0,nil,nil}}, 
        {group, 
         <<179,2,154,154,243,188,196,230,224,228,72,35,138, 
         126,255,36>>, 
         <0.1428.0>,<<"_design/message">>,<<"javascript">>, 
         [], 
         [{view,0,503333,0,[], 
         <<"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}">>, 
         {btree,<0.1428.0>, 
         {829460268,{128035,[128035]},6593177}, 
         #Fun<couch_btree.3.62781489>, 
         #Fun<couch_btree.4.62781489>, 
         #Fun<couch_view.less_json_ids.2>, 
         #Fun<couch_view_group.10.74547581>,snappy}, 
         [{<<"by_date">>, 
          <<"function(keys, values) {\n\treturn sum(values)\n}">>}], 
         []}, 
         {view,1,503333,0, 
         [<<"sent_by">>], 
         <<"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 < 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 && doc.destinations[i].services.length > 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}">>, 
         {btree,<0.1428.0>, 
         {829552398,{108630,[]},204390994}, 
         #Fun<couch_btree.3.62781489>, 
         #Fun<couch_btree.4.62781489>, 
         #Fun<couch_view.less_json_ids.2>, 
         #Fun<couch_view_group.10.74547581>,snappy}, 
         [],[]}, 
         {view,2,503333,0, 
         [<<"unviewed_by">>], 
         <<"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 && 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 < 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 && doc.destinations[i].services.length > 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}">>, 
         {btree,<0.1428.0>, 
         {829591489,{139,[]},306902}, 
         #Fun<couch_btree.3.62781489>, 
         #Fun<couch_btree.4.62781489>, 
         #Fun<couch_view.less_json_ids.2>, 
         #Fun<couch_view_group.10.74547581>,snappy}, 
         [],[]}], 
         {[]}, 
         {btree,<0.1428.0>, 
         {829452501,[],6016985}, 
         #Fun<couch_btree.3.62781489>, 
         #Fun<couch_btree.4.62781489>, 
         #Fun<couch_btree.5.62781489>,nil,snappy}, 
         503333,0,nil,nil}, 
        <0.1431.0>,nil,false, 
        [{{<0.130.0>,#Ref<0.0.0.41069>},509735}], 
        <0.1430.0>,false} 
** Reason for termination == 
** {os_process_error,"OS process timed out."} 

[Sat, 22 Dec 2012 18:28:53 GMT] [error] [<0.1427.0>] {error_report,<0.31.0>, 
        {<0.1427.0>,crash_report, 
        [[{initial_call, 
         {couch_view_group,init,['Argument__1']}}, 
        {pid,<0.1427.0>}, 
        {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,[<0.1426.0>]}, 
        {messages,[]}, 
        {links,[<0.1428.0>,<0.122.0>]}, 
        {dictionary,[]}, 
        {trap_exit,true}, 
        {status,running}, 
        {heap_size,2584}, 
        {stack_size,24}, 
        {reductions,545}], 
        []]}} 
[Sat, 22 Dec 2012 18:28:53 GMT] [error] [<0.130.0>] Uncaught server error: {os_process_error, 
             <<"OS process timed out.">>} 
[Sat, 22 Dec 2012 18:28:53 GMT] [error] [<0.1428.0>] ** Generic server <0.1428.0> terminating 
** Last message in was {'EXIT',<0.1427.0>, 
          {os_process_error,"OS process timed out."}} 
** When Server state == {file,{file_descriptor,prim_file,{#Port<0.2941>,101}}, 
          829595830} 
** Reason for termination == 
** {os_process_error,"OS process timed out."} 

[Sat, 22 Dec 2012 18:28:53 GMT] [error] [<0.1428.0>] {error_report,<0.31.0>, 
        {<0.1428.0>,crash_report, 
        [[{initial_call,{couch_file,init,['Argument__1']}}, 
        {pid,<0.1428.0>}, 
        {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,[<0.1427.0>,<0.1426.0>]}, 
        {messages,[{'EXIT',<0.1430.0>,shutdown}]}, 
        {links,[]}, 
        {dictionary,[]}, 
        {trap_exit,true}, 
        {status,running}, 
        {heap_size,377}, 
        {stack_size,24}, 
        {reductions,1125}], 
        []]}} 

Aussi, je vois souvent cette erreur dans les journaux, même si la demande associée retourne normalement:

[Sat, 22 Dec 2012 19:20:28 GMT] [info] [<0.3849.0>] checkpointing view update at seq 232409 for xxxx _design/all_types 
[Sat, 22 Dec 2012 19:20:28 GMT] [error] [<0.124.0>] {error_report,<0.31.0>, 
       {<0.124.0>,crash_report, 
        [[{initial_call, 
        {mochiweb_socket_server,init,['Argument__1']}}, 
        {pid,<0.124.0>}, 
        {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,<0.32.0>]}, 
        {messages,[]}, 
        {links,[<0.93.0>]}, 
        {dictionary,[]}, 
        {trap_exit,true}, 
        {status,running}, 
        {heap_size,987}, 
        {stack_size,24}, 
        {reductions,466}], 
        []]}} 

Répondre

4

Pendant la vue index updation CouchDB exécute les mises à jour des vues pour le document de conception spécifié. Cela signifie également que l'erreur de dépassement de délai s'applique à l'ensemble de ce groupe et non à la fonction de vue spécifique. Pour votre cas, cette erreur signifie que votre groupe de vues ne fonctionne plus aussi rapidement qu'avant pour certains documents (un document unique s'applique à tout le groupe) - probablement, ils ont quelque chose de grand pour l'instant.

Cependant, cette erreur n'est pas fatale, c'est juste une restriction pour laisser le serveur de requêtes ne pas fonctionner trop longtemps et vous motiver à écrire des fonctions rapides et optimisées (processus rapide -> réponse rapide). Je vois des boucles «pour» dans vos opinions - il est probablement possible de réduire leur complexité pour la liste des gros messages? Quoi qu'il en soit, vous pouvez toujours étendre délai d'attente de processus OS en mettant à jour config CouchDB:

curl -X PUT http://localhost:5984/_config/couchdb/os_process_timeout -d '"35000"' 

Remplacer 3500 avec votre numéro que vous aimez. Cette valeur définit le nombre de millisecondes pendant lequel le serveur de requête peut traiter les commandes CouchDB (voir l'indexation, l'exécution de la fonction de document de conception, la validation, les filtres, etc.) avant de terminer le délai. En réponse à la demande de curl, vous obtiendrez votre ancienne valeur de configuration.

Modifier: remplacez query_servers_config/os_process_limit par couchdb/os_process_timeout. Il s'agit de deux options différentes: la première contrôle la quantité de processus du serveur de requêtes qui peuvent être exécutés pour un langage ddoc unique tandis que la seconde spécifie la limite d'exécution réelle.

+0

Merci, j'ai essayé votre solution. Quelque chose d'autre est le problème, comme l'erreur apparaît dans les journaux presque immédiatement, pas après l'ancienne limite de processus 25s ou nouveau 55s. – Tony

+0

C'est bizarre. Par ailleurs, juste noté deuxième journal, erreur «eaddrinuse» signifie qu'il existe un autre processus qui a utilisé votre hôte CouchDB: paire de ports. Vérifiez avec 'netstat -l' pour un autre processus sur le port 5984 (si vous n'avez pas modifié le port par défaut) Peut-être est-ce la racine du temps mort? – Kxepal

+1

J'aime cette réponse dans l'ensemble, mais c'est actuellement faux! Le paramètre est "os_process_timeout" (en millisecondes) PAS "os_process_limit" (qui contrôle la taille du pool de travail). – natevw

Questions connexes