[ 
https://issues.apache.org/jira/browse/COUCHDB-2758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14646852#comment-14646852
 ] 

Robert Kowalski commented on COUCHDB-2758:
------------------------------------------

[~nolanlawson] which version of couchdb?

> Deleting non-existent _local doc in _bulk_docs causes 500
> ---------------------------------------------------------
>
>                 Key: COUCHDB-2758
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-2758
>             Project: CouchDB
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: Database Core
>            Reporter: Nolan Lawson
>         Attachments: couch-2758.sh
>
>
> Normally you should be able to update/add/delete {{_local}} docs in a 
> {{_bulk_docs}} request, but if the {{_local}} doc doesn't exist (or if the 
> provided {{_rev}} is wrong), then the database throws an error.
> Attached is a bash script using cURL to reproduce. Notice I'm adding two 
> normal docs ({{mothra}} and {{rodan}}) and then I attempt to delete those two 
> in a {{_bulk_docs}} along with a nonexistent {{_local}} doc called 
> {{_local/godzilla}}. (Sorry for the goofy theme; I've been getting tired of 
> foo and bar.)
> I expect to get back an array of results describing the 2 docs that succeeded 
> as well as the 1 doc that failed. Instead I get an error report:
> {code}
>                           {proc_lib,init_p_do_apply,3,
>                            [{file,"proc_lib.erl"},{line,237}]}]}}
> ** When Server state == {db,<0.3217.15>,<0.3218.15>,nil,
>                             <<"1438060201861904">>,<0.3216.15>,<0.3136.15>,
>                             <0.3220.15>,
>                             {db_header,6,0,0,nil,nil,nil,0,nil,nil,1000},
>                             0,
>                             {btree,<0.3136.15>,
>                                 {316,{2,0,78},116},
>                                 #Fun<couch_db_updater.10.11117096>,
>                                 #Fun<couch_db_updater.11.11117096>,
>                                 #Fun<couch_btree.5.131744168>,
>                                 #Fun<couch_db_updater.12.11117096>,snappy},
>                             {btree,<0.3136.15>,
>                                 {432,2,103},
>                                 #Fun<couch_db_updater.13.11117096>,
>                                 #Fun<couch_db_updater.14.11117096>,
>                                 #Fun<couch_btree.5.131744168>,
>                                 #Fun<couch_db_updater.15.11117096>,snappy},
>                             {btree,<0.3136.15>,nil,
>                                 #Fun<couch_btree.3.131744168>,
>                                 #Fun<couch_btree.4.131744168>,
>                                 #Fun<couch_btree.5.131744168>,nil,snappy},
>                             2,<<"testdb">>,
>                             "/usr/local/var/lib/couchdb/testdb.couch",[],[],
>                             nil,
>                             {user_ctx,null,[],undefined},
>                             #Ref<0.0.16.194130>,1000,
>                             [before_header,after_header,on_file_open],
>                             [create,
>                              {user_ctx,
>                                  {user_ctx,null,
>                                      [<<"_admin">>],
>                                      <<"{couch_httpd_auth, 
> default_authentication_handler}">>}}],
>                             snappy,nil,nil}
> ** Reason for termination == 
> ** {function_clause,
>        [{couch_db_updater,'-update_local_docs/2-fun-0-',
>             [{<0.3111.15>,
>               {{doc,<<"_local/godzilla">>,{1,[<<"fake">>]},{[]},[],true,[]},
>                #Ref<0.0.16.194164>}},
>              not_found],
>             [{file,"couch_db_updater.erl"},{line,730}]},
>         {lists,zipwith,3,[{file,"lists.erl"},{line,449}]},
>         {couch_db_updater,update_local_docs,2,
>             [{file,"couch_db_updater.erl"},{line,729}]},
>         {couch_db_updater,update_docs_int,5,
>             [{file,"couch_db_updater.erl"},{line,695}]},
>         {couch_db_updater,handle_info,2,
>             [{file,"couch_db_updater.erl"},{line,235}]},
>         {gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,593}]},
>         {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,659}]},
>         {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]}
> [Tue, 28 Jul 2015 05:10:01 GMT] [error] [<0.3217.15>] {error_report,<0.30.0>,
>                        {<0.3217.15>,crash_report,
>                         [[{initial_call,{couch_db,init,['Argument__1']}},
>                           {pid,<0.3217.15>},
>                           {registered_name,[]},
>                           {error_info,
>                            {exit,
>                             {function_clause,
>                              [{couch_db_updater,
>                                '-update_local_docs/2-fun-0-',
>                                [{<0.3111.15>,
>                                  {{doc,<<"_local/godzilla">>,
>                                    {1,[<<"fake">>]},
>                                    {[]},
>                                    [],true,[]},
>                                   #Ref<0.0.16.194164>}},
>                                 not_found],
>                                [{file,"couch_db_updater.erl"},{line,730}]},
>                               {lists,zipwith,3,
>                                [{file,"lists.erl"},{line,449}]},
>                               {couch_db_updater,update_local_docs,2,
>                                [{file,"couch_db_updater.erl"},{line,729}]},
>                               {couch_db_updater,update_docs_int,5,
>                                [{file,"couch_db_updater.erl"},{line,695}]},
>                               {couch_db_updater,handle_info,2,
>                                [{file,"couch_db_updater.erl"},{line,235}]},
>                               {gen_server,try_dispatch,4,
>                                [{file,"gen_server.erl"},{line,593}]},
>                               {gen_server,handle_msg,5,
>                                [{file,"gen_server.erl"},{line,659}]},
>                               {proc_lib,init_p_do_apply,3,
>                                [{file,"proc_lib.erl"},{line,237}]}]},
>                             [{gen_server,terminate,7,
>                               [{file,"gen_server.erl"},{line,804}]},
>                              {proc_lib,init_p_do_apply,3,
>                               [{file,"proc_lib.erl"},{line,237}]}]}},
>                           {ancestors,[<0.3214.15>]},
>                           {messages,[]},
>                           {links,[<0.84.0>]},
>                           {dictionary,[]},
>                           {trap_exit,true},
>                           {status,running},
>                           {heap_size,1598},
>                           {stack_size,27},
>                           {reductions,403}],
>                          []]}}
> [Tue, 28 Jul 2015 05:10:01 GMT] [error] [<0.3111.15>] Uncaught error in HTTP 
> request: {exit,
>                                                        {function_clause,
>                                                         [{couch_db_updater,
>                                                           
> '-update_local_docs/2-fun-0-',
>                                                           [{<0.3111.15>,
>                                                             {{doc,
>                                                               
> <<"_local/godzilla">>,
>                                                               
> {1,[<<"fake">>]},
>                                                               {[]},
>                                                               [],true,[]},
>                                                              
> #Ref<0.0.16.194164>}},
>                                                            not_found],
>                                                           [{file,
>                                                             
> "couch_db_updater.erl"},
>                                                            {line,730}]},
>                                                          {lists,zipwith,3,
>                                                           [{file,"lists.erl"},
>                                                            {line,449}]},
>                                                          {couch_db_updater,
>                                                           update_local_docs,2,
>                                                           [{file,
>                                                             
> "couch_db_updater.erl"},
>                                                            {line,729}]},
>                                                          {couch_db_updater,
>                                                           update_docs_int,5,
>                                                           [{file,
>                                                             
> "couch_db_updater.erl"},
>                                                            {line,695}]},
>                                                          {couch_db_updater,
>                                                           handle_info,2,
>                                                           [{file,
>                                                             
> "couch_db_updater.erl"},
>                                                            {line,235}]},
>                                                          {gen_server,
>                                                           try_dispatch,4,
>                                                           [{file,
>                                                             "gen_server.erl"},
>                                                            {line,593}]},
>                                                          {gen_server,
>                                                           handle_msg,5,
>                                                           [{file,
>                                                             "gen_server.erl"},
>                                                            {line,659}]},
>                                                          {proc_lib,
>                                                           init_p_do_apply,3,
>                                                           [{file,
>                                                             "proc_lib.erl"},
>                                                            {line,237}]}]}}
> [Tue, 28 Jul 2015 05:10:01 GMT] [error] [<0.84.0>] Unexpected exit of 
> database process <0.3217.15> [<<"testdb">>]: {function_clause,
>                                                                               
>       [{couch_db_updater,
>                                                                               
>         '-update_local_docs/2-fun-0-',
>                                                                               
>         [{<0.3111.15>,
>                                                                               
>           {{doc,
>                                                                               
>             <<"_local/godzilla">>,
>                                                                               
>             {1,
>                                                                               
>              [<<"fake">>]},
>                                                                               
>             {[]},
>                                                                               
>             [],
>                                                                               
>             true,
>                                                                               
>             []},
>                                                                               
>            #Ref<0.0.16.194164>}},
>                                                                               
>          not_found],
>                                                                               
>         [{file,
>                                                                               
>           "couch_db_updater.erl"},
>                                                                               
>          {line,
>                                                                               
>           730}]},
>                                                                               
>        {lists,
>                                                                               
>         zipwith,
>                                                                               
>         3,
>                                                                               
>         [{file,
>                                                                               
>           "lists.erl"},
>                                                                               
>          {line,
>                                                                               
>           449}]},
>                                                                               
>        {couch_db_updater,
>                                                                               
>         update_local_docs,
>                                                                               
>         2,
>                                                                               
>         [{file,
>                                                                               
>           "couch_db_updater.erl"},
>                                                                               
>          {line,
>                                                                               
>           729}]},
>                                                                               
>        {couch_db_updater,
>                                                                               
>         update_docs_int,
>                                                                               
>         5,
>                                                                               
>         [{file,
>                                                                               
>           "couch_db_updater.erl"},
>                                                                               
>          {line,
>                                                                               
>           695}]},
>                                                                               
>        {couch_db_updater,
>                                                                               
>         handle_info,
>                                                                               
>         2,
>                                                                               
>         [{file,
>                                                                               
>           "couch_db_updater.erl"},
>                                                                               
>          {line,
>                                                                               
>           235}]},
>                                                                               
>        {gen_server,
>                                                                               
>         try_dispatch,
>                                                                               
>         4,
>                                                                               
>         [{file,
>                                                                               
>           "gen_server.erl"},
>                                                                               
>          {line,
>                                                                               
>           593}]},
>                                                                               
>        {gen_server,
>                                                                               
>         handle_msg,
>                                                                               
>         5,
>                                                                               
>         [{file,
>                                                                               
>           "gen_server.erl"},
>                                                                               
>          {line,
>                                                                               
>           659}]},
>                                                                               
>        {proc_lib,
>                                                                               
>         init_p_do_apply,
>                                                                               
>         3,
>                                                                               
>         [{file,
>                                                                               
>           "proc_lib.erl"},
>                                                                               
>          {line,
>                                                                               
>           237}]}]}
> [Tue, 28 Jul 2015 05:10:01 GMT] [info] [<0.3111.15>] Stacktrace: 
> [{couch_db,collect_results,3,
>                                       [{file,"couch_db.erl"},{line,833}]},
>                                   {couch_db,write_and_commit,4,
>                                       [{file,"couch_db.erl"},{line,845}]},
>                                   {couch_db,update_docs,4,
>                                       [{file,"couch_db.erl"},{line,782}]},
>                                   {couch_httpd_db,db_req,2,
>                                       [{file,"couch_httpd_db.erl"},
>                                        {line,330}]},
>                                   {couch_httpd_db,do_db_req,2,
>                                       [{file,"couch_httpd_db.erl"},
>                                        {line,234}]},
>                                   {couch_httpd,handle_request_int,5,
>                                       [{file,"couch_httpd.erl"},{line,318}]},
>                                   {mochiweb_http,headers,5,
>                                       [{file,"mochiweb_http.erl"},{line,94}]},
>                                   {proc_lib,init_p_do_apply,3,
>                                       [{file,"proc_lib.erl"},{line,237}]}]
> [Tue, 28 Jul 2015 05:10:01 GMT] [error] [<0.3111.15>] {error_report,<0.30.0>,
>                        {<0.3111.15>,crash_report,
>                         [[{initial_call,
>                            {mochiweb_acceptor,init,
>                             ['Argument__1','Argument__2','Argument__3']}},
>                           {pid,<0.3111.15>},
>                           {registered_name,[]},
>                           {error_info,
>                            {error,badarg,
>                             [{erlang,list_to_binary,
>                               [[{couch_db_updater,
>                                  '-update_local_docs/2-fun-0-',
>                                  [{<0.3111.15>,
>                                    {{doc,<<"_local/godzilla">>,
>                                      {1,[<<"fake">>]},
>                                      {[]},
>                                      [],true,[]},
>                                     #Ref<0.0.16.194164>}},
>                                   not_found],
>                                  [{file,"couch_db_updater.erl"},{line,730}]},
>                                 {lists,zipwith,3,
>                                  [{file,"lists.erl"},{line,449}]},
>                                 {couch_db_updater,update_local_docs,2,
>                                  [{file,"couch_db_updater.erl"},{line,729}]},
>                                 {couch_db_updater,update_docs_int,5,
>                                  [{file,"couch_db_updater.erl"},{line,695}]},
>                                 {couch_db_updater,handle_info,2,
>                                  [{file,"couch_db_updater.erl"},{line,235}]},
>                                 {gen_server,try_dispatch,4,
>                                  [{file,"gen_server.erl"},{line,593}]},
>                                 {gen_server,handle_msg,5,
>                                  [{file,"gen_server.erl"},{line,659}]},
>                                 {proc_lib,init_p_do_apply,3,
>                                  [{file,"proc_lib.erl"},{line,237}]}]],
>                               []},
>                              {couch_httpd,error_info,1,
>                               [{file,"couch_httpd.erl"},{line,818}]},
>                              {couch_httpd,send_error,2,
>                               [{file,"couch_httpd.erl"},{line,925}]},
>                              {couch_httpd,handle_request_int,5,
>                               [{file,"couch_httpd.erl"},{line,368}]},
>                              {mochiweb_http,headers,5,
>                               [{file,"mochiweb_http.erl"},{line,94}]},
>                              {proc_lib,init_p_do_apply,3,
>                               [{file,"proc_lib.erl"},{line,237}]}]}},
>                           {ancestors,
>                            [couch_httpd,couch_secondary_services,
>                             couch_server_sup,<0.31.0>]},
>                           {messages,[]},
>                           {links,[<0.101.0>,#Port<0.320113>]},
>                           {dictionary,
>                            [{mochiweb_request_body,
>                              
> <<"{\"new_edits\":true,\"docs\":[{\"_id\":\"mothra\",\"_rev\":\"1-967a00dff5e02add41819138abb3284d\",\"_deleted\":true},{\"_id\":\"_local/godzilla\",\"_rev\":\"1-fake\",\"_deleted\":true},{\"_id\":\"rodan\",\"_rev\":\"1-967a00dff5e02add41819138abb3284d\",\"_deleted\":true}]}">>},
>                             {couch_rewrite_count,0},
>                             {mochiweb_request_recv,true},
>                             {mochiweb_request_cookie,[]}]},
>                           {trap_exit,false},
>                           {status,running},
>                           {heap_size,4185},
>                           {stack_size,27},
>                           {reductions,11631}],
>                          []]}}
> [Tue, 28 Jul 2015 05:10:38 GMT] [info] [<0.3198.15>] 127.0.0.1 - - DELETE 
> /testdb/ 200
> [Tue, 28 Jul 2015 05:10:38 GMT] [info] [<0.3047.15>] 127.0.0.1 - - PUT 
> /testdb/ 201
> [Tue, 28 Jul 2015 05:10:38 GMT] [info] [<0.3049.15>] 127.0.0.1 - - PUT 
> /testdb/mothra 201
> [Tue, 28 Jul 2015 05:10:38 GMT] [info] [<0.3221.15>] 127.0.0.1 - - PUT 
> /testdb/rodan 201
> [Tue, 28 Jul 2015 05:10:38 GMT] [info] [<0.3227.15>] 127.0.0.1 - - POST 
> /testdb/_bulk_docs?_nonce=1438060065251 201
> {code}
> Related to [PouchDB issue 4086 | 
> https://github.com/pouchdb/pouchdb/issues/4086].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to