You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Wout Mertens <wm...@cisco.com> on 2009/02/11 00:22:20 UTC

badarg in browser?

Hi,

I'm trying to run the couchdb svn head and I'm not able to create  
documents or run the test suite using Futon. I tried both Safari and  
Firefox. Troubleshooting further I tried curl:

$ curl -X PUT -d '{"keys": ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
{"error":"error","reason":"badarg"}

This error is the same as what Safari and Firefox give me. CouchDB  
itself just says:
[error] [<0.155.0>] Uncaught error in HTTP request: {error,badarg}
[info] [<0.155.0>] 127.0.0.1 - - 'PUT' /test/foo 500

I'm running Erlang 5.6.0 and I tried several revisions, as far back as  
722100. I suppose it's something in the supporting infrastructure? Any  
ideas on what this could be and how to troubleshoot?

Note that it did work for me a couple of months ago, and I switched  
laptops since then, leading me to recompile erlang.

Thanks,

Wout.

Re: [user] Re: badarg in browser?

Posted by Wout Mertens <wm...@cisco.com>.
On Feb 11, 2009, at 2:12 PM, Jan Lehnardt wrote:

> On 11 Feb 2009, at 13:19, Wout Mertens wrote:
>>
>> And on the couchdb side:
>> $ couchdb
>> sh: line 0: exec: crypto_drv: not found
>
> Install Erlang with --enable-ssl

Right, although that didn't really cause the problem did it?

In any case, while I'm still not able to build Erlang reliably myself,  
I used the (older) Erlang that comes with CouchDB X and built svn  
trunk against that and ... it works.

So the problem was Erlang. Now I need to find out how to fix that in  
pkgsrc :-)

Thanks for your help all,

Wout.

Re: [user] Re: badarg in browser?

Posted by Jan Lehnardt <ja...@apache.org>.
On 11 Feb 2009, at 13:19, Wout Mertens wrote:
>
> And on the couchdb side:
> $ couchdb
> sh: line 0: exec: crypto_drv: not found

Install Erlang with --enable-ssl

Cheers
Jan
--


Re: [user] Re: badarg in browser?

Posted by Wout Mertens <wm...@cisco.com>.
On Feb 11, 2009, at 1:03 PM, Jan Lehnardt wrote:

> On 11 Feb 2009, at 12:55, Wout Mertens wrote:
>
>> On Feb 11, 2009, at 12:46 PM, Jan Lehnardt wrote:
>>
>>> On 11 Feb 2009, at 00:22, Wout Mertens wrote:
>>>
>>>> I'm trying to run the couchdb svn head and I'm not able to create  
>>>> documents or run the test suite using Futon. I tried both Safari  
>>>> and Firefox. Troubleshooting further I tried curl:
>>>>
>>>> $ curl -X PUT -d '{"keys": ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
>>>> {"error":"error","reason":"badarg"}
>>>
>>> What Paul said or use POST without `_id`.
>>> You also need `-H "Content-Type: application/json"` at least.
>>
>> Ok now I tried
>> $ curl -X POST -H "Content-Type: application/json" -d '{"keys":  
>> ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
>> {"error":"badmatch","reason":"{\"application/json\",[]}"}
>>
>> Which gives this at debug level:
>> [error] [<0.57.0>] Uncaught error in HTTP request: {error,{badmatch, 
>> {"application/json",[]}}}
>> [debug] [<0.57.0>] Stacktrace: [{mochiweb_multipart,get_boundary,1},
>
> Seems like there's a multipart request going on? Can you add the -v  
> option?

$ curl -X PUT http://127.0.0.1:5984/test
{"ok":true}
$ curl -vX POST -H "Content-Type: application/json" -d '{"keys":  
["param1", "param2", "paramN"]}' http://127.0.0.1:5984/test
* About to connect() to 127.0.0.1 port 5984 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 5984 (#0)
 > POST /test HTTP/1.1
 > User-Agent: curl/7.17.1 (i386-apple-darwin9) libcurl/7.17.1 OpenSSL/ 
0.9.7l zlib/1.2.3 libidn/1.0
 > Host: 127.0.0.1:5984
 > Accept: */*
 > Content-Type: application/json
 > Content-Length: 40
 >
< HTTP/1.1 500 Internal Server Error
< Server: CouchDB/0.9.0a743122-incubating (Erlang OTP/R12B)
< Date: Wed, 11 Feb 2009 12:16:45 GMT
< Content-Type: text/plain;charset=utf-8
< Content-Length: 35
< Cache-Control: must-revalidate
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
{"error":"error","reason":"badarg"}



And on the couchdb side:
$ couchdb
sh: line 0: exec: crypto_drv: not found

=INFO REPORT==== 11-Feb-2009::13:16:34 ===
     application: crypto
     exited: {shutdown,{crypto_app,start,[normal,[]]}}
     type: temporary
Apache CouchDB 0.9.0a743122-incubating (LogLevel=debug) is starting.
Configuration Settings ["/local/pkg/etc/couchdb/default.ini",
                         "/local/pkg/etc/couchdb/local.ini"]:
   [couchdb] database_dir="/local/pkg/var/lib/couchdb"
   [couchdb] max_dbs_open="100"
   [couchdb] max_document_size="4294967296"
   [couchdb] util_driver_dir="/local/pkg/lib/couchdb/erlang/lib/ 
couch-0.9.0a743122-incubating/priv/lib"
   [couchdb] view_timeout="5000"
   [daemons] db_update_notifier="{couch_db_update_notifier_sup,  
start_link, []}"
   [daemons] external_manager="{couch_external_manager, start_link, []}"
   [daemons] httpd="{couch_httpd, start_link, []}"
   [daemons] query_servers="{couch_query_servers, start_link, []}"
   [daemons] view_manager="{couch_view, start_link, []}"
   [httpd] WWW-Authenticate="Basic realm=\"administrator\""
   [httpd] authentication_handler="{couch_httpd,  
default_authentication_handler}"
   [httpd] bind_address="127.0.0.1"
   [httpd] port="5984"
   [httpd_db_handlers] _list="{couch_httpd_show, handle_view_list_req}"
   [httpd_db_handlers] _show="{couch_httpd_show, handle_doc_show_req}"
   [httpd_db_handlers] _temp_view="{couch_httpd_view,  
handle_temp_view_req}"
   [httpd_db_handlers] _view="{couch_httpd_view, handle_view_req}"
   [httpd_global_handlers] /="{couch_httpd_misc_handlers,  
handle_welcome_req, <<\"Welcome\">>}"
   [httpd_global_handlers] _active_tasks="{couch_httpd_misc_handlers,  
handle_task_status_req}"
   [httpd_global_handlers] _all_dbs="{couch_httpd_misc_handlers,  
handle_all_dbs_req}"
   [httpd_global_handlers] _config="{couch_httpd_misc_handlers,  
handle_config_req}"
   [httpd_global_handlers] _replicate="{couch_httpd_misc_handlers,  
handle_replicate_req}"
   [httpd_global_handlers] _restart="{couch_httpd_misc_handlers,  
handle_restart_req}"
   [httpd_global_handlers] _stats="{couch_httpd_misc_handlers,  
handle_stats_req}"
   [httpd_global_handlers] _utils="{couch_httpd_misc_handlers,  
handle_utils_dir_req, \"/local/pkg/share/couchdb/www\"}"
   [httpd_global_handlers] _uuids="{couch_httpd_misc_handlers,  
handle_uuids_req}"
   [httpd_global_handlers] favicon.ico="{couch_httpd_misc_handlers,  
handle_favicon_req, \"/local/pkg/share/couchdb/www\"}"
   [log] file="/local/pkg/var/log/couchdb/couch.log"
   [log] level="debug"
   [query_servers] javascript="/local/pkg/bin/couchjs /local/pkg/share/ 
couchdb/server/main.js"

=INFO REPORT==== 11-Feb-2009::13:16:34 ===
     application: crypto
     exited: {shutdown,{crypto_app,start,[normal,[]]}}
     type: temporary
sh: line 0: exec: crypto_drv: not found
Apache CouchDB has started. Time to relax.
[debug] [<0.57.0>] 'PUT' /test {1,1}
Headers: [{'Accept',"*/*"},
           {'Host',"127.0.0.1:5984"},
           {'User-Agent',"curl/7.17.1 (i386-apple-darwin9) libcurl/ 
7.17.1 OpenSSL/0.9.7l zlib/1.2.3 libidn/1.0"}]
[info] [<0.57.0>] 127.0.0.1 - - 'PUT' /test 201
[debug] [<0.59.0>] 'POST' /test {1,1}
Headers: [{'Accept',"*/*"},
           {'Content-Length',"40"},
           {'Content-Type',"application/json"},
           {'Host',"127.0.0.1:5984"},
           {'User-Agent',"curl/7.17.1 (i386-apple-darwin9) libcurl/ 
7.17.1 OpenSSL/0.9.7l zlib/1.2.3 libidn/1.0"}]
[error] [<0.59.0>] Uncaught error in HTTP request: {error,badarg}
[debug] [<0.59.0>] Stacktrace: [{ets,lookup,[crypto_server_table,port]},
              {crypto,control,2},
              {couch_util,new_uuid,0},
              {couch_httpd_db,db_req,2},
              {couch_httpd_db,do_db_req,2},
              {couch_httpd,handle_request,3},
              {mochiweb_http,headers,4},
              {proc_lib,init_p,5}]
[debug] [<0.59.0>] HTTPd 500 error response:
  {"error":"error","reason":"badarg"}
[info] [<0.59.0>] 127.0.0.1 - - 'POST' /test 500


Still struggling with pkgsrc to get Erlang 12B-5 in there ;)

Wout.

Re: [user] Re: badarg in browser?

Posted by Jan Lehnardt <ja...@apache.org>.
On 11 Feb 2009, at 12:55, Wout Mertens wrote:

> On Feb 11, 2009, at 12:46 PM, Jan Lehnardt wrote:
>
>> On 11 Feb 2009, at 00:22, Wout Mertens wrote:
>>
>>> I'm trying to run the couchdb svn head and I'm not able to create  
>>> documents or run the test suite using Futon. I tried both Safari  
>>> and Firefox. Troubleshooting further I tried curl:
>>>
>>> $ curl -X PUT -d '{"keys": ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
>>> {"error":"error","reason":"badarg"}
>>
>> What Paul said or use POST without `_id`.
>> You also need `-H "Content-Type: application/json"` at least.
>
> Ok now I tried
> $ curl -X POST -H "Content-Type: application/json" -d '{"keys":  
> ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
> {"error":"badmatch","reason":"{\"application/json\",[]}"}
>
> Which gives this at debug level:
> [error] [<0.57.0>] Uncaught error in HTTP request: {error,{badmatch, 
> {"application/json",[]}}}
> [debug] [<0.57.0>] Stacktrace: [{mochiweb_multipart,get_boundary,1},

Seems like there's a multipart request going on? Can you add the -v  
option?

Here's my output:

jan@dahlia ~> curl -X PUT http://127.0.0.1:5984/test
{"ok":true}jan@dahlia ~>
jan@dahlia ~>
jan@dahlia ~>
jan@dahlia ~> curl -vX POST -H "Content-Type: application/json" -d  
'{"keys": ["param1", "param2", "paramN"]}' http://127.0.0.1:5984/test
* About to connect() to 127.0.0.1 port 5984 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 5984 (#0)
 > POST /test HTTP/1.1
 > User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3  
OpenSSL/0.9.7l zlib/1.2.3
 > Host: 127.0.0.1:5984
 > Accept: */*
 > Content-Type: application/json
 > Content-Length: 40
 >
< HTTP/1.1 201 Created
< Server: CouchDB/0.9.0a737015-incubating (Erlang OTP/R12B)
< Date: Wed, 11 Feb 2009 12:02:31 GMT
< Content-Type: text/plain;charset=utf-8
< Content-Length: 70
< Cache-Control: must-revalidate
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
{"ok 
":true 
,"id":"4a905d8c19d657344323ae5921da1f2f","rev":"2489901775"}jan@dahlia  
~>

Cheers
Jan
--


Re: [user] Re: badarg in browser?

Posted by Wout Mertens <wm...@cisco.com>.
On Feb 11, 2009, at 12:46 PM, Jan Lehnardt wrote:

> On 11 Feb 2009, at 00:22, Wout Mertens wrote:
>
>> I'm trying to run the couchdb svn head and I'm not able to create  
>> documents or run the test suite using Futon. I tried both Safari  
>> and Firefox. Troubleshooting further I tried curl:
>>
>> $ curl -X PUT -d '{"keys": ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
>> {"error":"error","reason":"badarg"}
>
> What Paul said or use POST without `_id`.
> You also need `-H "Content-Type: application/json"` at least.

Ok now I tried
$ curl -X POST -H "Content-Type: application/json" -d '{"keys":  
["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
{"error":"badmatch","reason":"{\"application/json\",[]}"}

Which gives this at debug level:
[error] [<0.57.0>] Uncaught error in HTTP request: {error,{badmatch, 
{"application/json",[]}}}
[debug] [<0.57.0>] Stacktrace: [{mochiweb_multipart,get_boundary,1},
              {mochiweb_multipart,parse_multipart_request,2},
              {mochiweb_multipart,parse_form,2},
              {couch_httpd_db,db_doc_req,3},
              {couch_httpd_db,do_db_req,2},
              {couch_httpd,handle_request,3},
              {mochiweb_http,headers,4},
              {proc_lib,init_p,5}]
[debug] [<0.57.0>] HTTPd 500 error response:
  {"error":"badmatch","reason":"{\"application/json\",[]}"}
[info] [<0.57.0>] 127.0.0.1 - - 'POST' /test/foo 500

>> I'm running Erlang 5.6.0
>
> Try 5.6.5.

I'll try that now.

> And fresh checkouts of CouchDB trunk as well.

They are :-( and going back doesn't change things either.

Wout.

Re: badarg in browser?

Posted by Jan Lehnardt <ja...@apache.org>.
Hi,

On 11 Feb 2009, at 00:22, Wout Mertens wrote:

> I'm trying to run the couchdb svn head and I'm not able to create  
> documents or run the test suite using Futon. I tried both Safari and  
> Firefox. Troubleshooting further I tried curl:
>
> $ curl -X PUT -d '{"keys": ["param1", "param2", "paramN"]}' http://localhost:5984/test/foo
> {"error":"error","reason":"badarg"}

What Paul said or use POST without `_id`.
You also need `-H "Content-Type: application/json"` at least.


> This error is the same as what Safari and Firefox give me. CouchDB  
> itself just says:
> [error] [<0.155.0>] Uncaught error in HTTP request: {error,badarg}
> [info] [<0.155.0>] 127.0.0.1 - - 'PUT' /test/foo 500

Set the log level to `debug` in your local ini.

> I'm running Erlang 5.6.0

Try 5.6.5. And fresh checkouts of CouchDB trunk as well.

Cheers
Jan
--

Re: badarg in browser?

Posted by Paul Davis <pa...@gmail.com>.
You'll have to check the Document api to see if I'm right or not, but
when you PUT a document to a url, is it required to have the
appropriate _id attribute? Something like:

$ curl -X PUT -d '{"_id": "foo", "keys": ["param1", "param2",
"paramN"]}' http://localhost:5984/test/foo

Other than that, you could turn on debug output and see if the stack
trace is informative at all.

This is definitely an odd one. Maybe someone else has run into it?

HTH,
Paul Davis

On Tue, Feb 10, 2009 at 6:22 PM, Wout Mertens <wm...@cisco.com> wrote:
> Hi,
>
> I'm trying to run the couchdb svn head and I'm not able to create documents
> or run the test suite using Futon. I tried both Safari and Firefox.
> Troubleshooting further I tried curl:
>
> $ curl -X PUT -d '{"keys": ["param1", "param2", "paramN"]}'
> http://localhost:5984/test/foo
> {"error":"error","reason":"badarg"}
>
> This error is the same as what Safari and Firefox give me. CouchDB itself
> just says:
> [error] [<0.155.0>] Uncaught error in HTTP request: {error,badarg}
> [info] [<0.155.0>] 127.0.0.1 - - 'PUT' /test/foo 500
>
> I'm running Erlang 5.6.0 and I tried several revisions, as far back as
> 722100. I suppose it's something in the supporting infrastructure? Any ideas
> on what this could be and how to troubleshoot?
>
> Note that it did work for me a couple of months ago, and I switched laptops
> since then, leading me to recompile erlang.
>
> Thanks,
>
> Wout.
>