You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Christopher O'Connell (JIRA)" <ji...@apache.org> on 2009/11/02 01:06:59 UTC

[jira] Created: (COUCHDB-551) couch_log crashes on external process return

couch_log crashes on external process return
--------------------------------------------

                 Key: COUCHDB-551
                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
             Project: CouchDB
          Issue Type: Bug
          Components: Infrastructure
    Affects Versions: 0.10.1
         Environment: CentOS 5.3, Erlang R12
            Reporter: Christopher O'Connell
            Priority: Minor
             Fix For: 0.10.1


When an external process returns a value, the couch_log process crashes.

A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).

To replicate this, setup an external process and make a call to it using the mapped url.

This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).

External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
Couchdb URL: .../_exj?hello=world&abc=123
Couchdb Response: {"hello":"world","abc":"123"}
***** Log *****
Apache CouchDB 0.10.0 (LogLevel=info) is starting.
Apache CouchDB has started. Time to relax.
[info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
[info] [<0.73.0>] EXTERNAL: Starting process for: exj
[info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj

=ERROR REPORT==== 1-Nov-2009::23:44:24 ===
** gen_event handler couch_log crashed.
** Was installed in error_logger
** Last event was: {info_report,<0.22.0>,
                                {<0.60.0>,couch_info,
                                 {"~s - - ~p ~s ~B",
                                  ["72.211.148.58",'GET',
                                   "/airport_data/_exj?hello=world&abc=123",
                                   <<"200">>]}}}
** When handler state == {<0.46.0>,2}
** Reason == {badarg,[{io_lib,format,
                              ["~s - - ~p ~s ~B",
                               ["72.211.148.58",'GET',
                                "/airport_data/_exj?hello=world&abc=123",
                                <<"200">>]]},
                      {couch_log,log,5},
                      {couch_log,handle_event,2},
                      {gen_event,server_update,4},
                      {gen_event,server_notify,4},
                      {gen_event,handle_msg,5},
                      {proc_lib,init_p_do_apply,3}]}

=ERROR REPORT==== 1-Nov-2009::23:44:24 ===
** Generic server couch_log terminating
** Last message in was {gen_event_EXIT,couch_log,
                        {'EXIT',
                         {badarg,
                          [{io_lib,format,
                            ["~s - - ~p ~s ~B",
                             ["72.211.148.58",'GET',
                              "/airport_data/_exj?hello=world&abc=123",
                              <<"200">>]]},
                           {couch_log,log,5},
                           {couch_log,handle_event,2},
                           {gen_event,server_update,4},
                           {gen_event,server_notify,4},
                           {gen_event,handle_msg,5},
                           {proc_lib,init_p_do_apply,3}]}}}
** When Server state == {error_logger,couch_log}
** Reason for termination ==
** {'EXIT',{badarg,[{io_lib,format,
                            ["~s - - ~p ~s ~B",
                             ["72.211.148.58",'GET',
                              "/airport_data/_exj?hello=world&abc=123",
                              <<"200">>]]},
                    {couch_log,log,5},
                    {couch_log,handle_event,2},
                    {gen_event,server_update,4},
                    {gen_event,server_notify,4},
                    {gen_event,handle_msg,5},
                    {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-551) couch_log crashes when external process returns status code as string

Posted by "Adam Kocoloski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Kocoloski updated COUCHDB-551:
-----------------------------------

    Assignee: Adam Kocoloski
     Summary: couch_log crashes when external process returns status code as string  (was: couch_log crashes on external process return)

> couch_log crashes when external process returns status code as string
> ---------------------------------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.11
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Assignee: Adam Kocoloski
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: ExternalProcesses.txt
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-551) couch_log crashes on external process return

Posted by "Adam Kocoloski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Kocoloski updated COUCHDB-551:
-----------------------------------

    Affects Version/s:     (was: 0.10)
                       0.11
        Fix Version/s:     (was: 0.10.1)

I don't think _external logging is in 0.10.0

> couch_log crashes on external process return
> --------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.11
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Priority: Minor
>             Fix For: 0.11
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (COUCHDB-551) couch_log crashes on external process return

Posted by "Adam Kocoloski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12772392#action_12772392 ] 

Adam Kocoloski commented on COUCHDB-551:
----------------------------------------

Hi Christopher, can you confirm that the crash does not occur if the external returns the status code as an integer instead of a string?  Regardless, we should do a patch to cast the status code as appropriate for logging purposes.

> couch_log crashes on external process return
> --------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.10
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Priority: Minor
>             Fix For: 0.10.1, 0.11
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (COUCHDB-551) couch_log crashes when external process returns status code as string

Posted by "Adam Kocoloski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Kocoloski resolved COUCHDB-551.
------------------------------------

    Resolution: Fixed

> couch_log crashes when external process returns status code as string
> ---------------------------------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.11
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Assignee: Adam Kocoloski
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: ExternalProcesses.txt
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-551) couch_log crashes on external process return

Posted by "Adam Kocoloski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Kocoloski updated COUCHDB-551:
-----------------------------------

        Fix Version/s: 0.11
    Affects Version/s:     (was: 0.10.1)
                       0.10

> couch_log crashes on external process return
> --------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.10
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Priority: Minor
>             Fix For: 0.10.1, 0.11
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (COUCHDB-551) couch_log crashes on external process return

Posted by "Christopher O'Connell (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12772400#action_12772400 ] 

Christopher O'Connell commented on COUCHDB-551:
-----------------------------------------------

Adam, my bad, it does NOT occur if the external returns the status code as a number. I'll add a note to the ExternalProcess wiki page

> couch_log crashes on external process return
> --------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.11
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Priority: Minor
>             Fix For: 0.11
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-551) couch_log crashes on external process return

Posted by "Christopher O'Connell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christopher O'Connell updated COUCHDB-551:
------------------------------------------

    Attachment: ExternalProcesses.txt

ExternalProcess wiki page with edits. Same as my wiki page on COUCHDB-552

> couch_log crashes on external process return
> --------------------------------------------
>
>                 Key: COUCHDB-551
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-551
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: 0.11
>         Environment: CentOS 5.3, Erlang R12
>            Reporter: Christopher O'Connell
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: ExternalProcesses.txt
>
>
> When an external process returns a value, the couch_log process crashes.
> A couchdb external process is created which returns well formed json as identified below. Whenever the process' url is accessed, couchdb correctly returns the result, however, the couch_log process crashes (log below).
> To replicate this, setup an external process and make a call to it using the mapped url.
> This has been observed on CentOS 5.3 with the most recent version of the 0.10 branch, using a java external process as described below. Similar behavior has also been observed on Ubuntu 9.10 using a php external process (log not included).
> External Program Input: { "path":[],"query":{"hello":"world","abc":123},"verb":"GET" }
> External Program Output: {"headers":{"content-type":"text/plain"},"json":{"hello":"world","abc":123},"code":"200"}
> Couchdb URL: .../_exj?hello=world&abc=123
> Couchdb Response: {"hello":"world","abc":"123"}
> ***** Log *****
> Apache CouchDB 0.10.0 (LogLevel=info) is starting.
> Apache CouchDB has started. Time to relax.
> [info] [<0.1.0>] Apache CouchDB has started on http://127.0.0.1:5984/
> [info] [<0.73.0>] EXTERNAL: Starting process for: exj
> [info] [<0.73.0>] COMMAND: /usr/bin/java -cp /root/geoc externalj
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** gen_event handler couch_log crashed.
> ** Was installed in error_logger
> ** Last event was: {info_report,<0.22.0>,
>                                 {<0.60.0>,couch_info,
>                                  {"~s - - ~p ~s ~B",
>                                   ["72.211.148.58",'GET',
>                                    "/airport_data/_exj?hello=world&abc=123",
>                                    <<"200">>]}}}
> ** When handler state == {<0.46.0>,2}
> ** Reason == {badarg,[{io_lib,format,
>                               ["~s - - ~p ~s ~B",
>                                ["72.211.148.58",'GET',
>                                 "/airport_data/_exj?hello=world&abc=123",
>                                 <<"200">>]]},
>                       {couch_log,log,5},
>                       {couch_log,handle_event,2},
>                       {gen_event,server_update,4},
>                       {gen_event,server_notify,4},
>                       {gen_event,handle_msg,5},
>                       {proc_lib,init_p_do_apply,3}]}
> =ERROR REPORT==== 1-Nov-2009::23:44:24 ===
> ** Generic server couch_log terminating
> ** Last message in was {gen_event_EXIT,couch_log,
>                         {'EXIT',
>                          {badarg,
>                           [{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                            {couch_log,log,5},
>                            {couch_log,handle_event,2},
>                            {gen_event,server_update,4},
>                            {gen_event,server_notify,4},
>                            {gen_event,handle_msg,5},
>                            {proc_lib,init_p_do_apply,3}]}}}
> ** When Server state == {error_logger,couch_log}
> ** Reason for termination ==
> ** {'EXIT',{badarg,[{io_lib,format,
>                             ["~s - - ~p ~s ~B",
>                              ["72.211.148.58",'GET',
>                               "/airport_data/_exj?hello=world&abc=123",
>                               <<"200">>]]},
>                     {couch_log,log,5},
>                     {couch_log,handle_event,2},
>                     {gen_event,server_update,4},
>                     {gen_event,server_notify,4},
>                     {gen_event,handle_msg,5},
>                     {proc_lib,init_p_do_apply,3}]}}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.