incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Anderson <jch...@apache.org>
Subject Re: View Server clarifications
Date Sat, 16 May 2009 00:30:57 GMT
On Fri, May 15, 2009 at 2:03 PM, Debasish Ghosh
<ghosh.debasish@gmail.com> wrote:
> Paul -
> I already did a grep and checked that neither my script nor any of my
> libraries was writing on the stdout. The one stuff which I did not check was
> the Scala source. Eventually I digged into the Scala source and found that
> the Scala interpreter writes some stuff on the stdout and strangely one of
> them was "!!!". The writing can be configured by supplying a different
> reporter to the Scala Interpreter settings. However, what I did was to do
> away with the interpreter version and having the view server as a compiled
> image. Besides solving the problem, it also makes things run fast now.
> Incidentally I have been working on a Scala client for CouchDB (
> http://code.google.com/p/scouchdb), which is now available as an open
> source. Soon I plan to add the Scala view server as well.
>

Very cool. Do note that the list api will be changing for 0.10.0. I
owe dev@ a mail explaining the changes (need to write the code first
so I can explain it correctly...) Anyway, I'd just suggest writing the
list handler last, maybe I'll have the changes in by the time you get
to it.

Cheers,
Chris

> Thanks for all the help.
> - Debasish
>
> On Fri, May 15, 2009 at 7:43 PM, Paul Davis <paul.joseph.davis@gmail.com>wrote:
>
>> It looks like your script is printing "!!!" somehwere to standard out
>> and CouchDB is joking on it which is to be expected since !!! isn't
>> valid JSON.
>>
>> Make sure that your logging output goes to stderr and you should be fine.
>>
>> On Fri, May 15, 2009 at 9:05 AM, Debasish Ghosh
>> <ghosh.debasish@gmail.com> wrote:
>> > Ok .. after some more debugging sessions, it looks like the problem is
>> with
>> > launching of the view server script. I tried with some debug statements
>> > (even something that writes to a file), but got nothing. The couchdb log
>> > shows references to the script, but I think it cannot do a launch of it.
>> The
>> > script is written in Scala and begins with the usual stuff of shell
>> > invocation ..
>> >
>> > #!/bin/sh
>> > exec ~/software/scala/scala-2.7.4.final/bin/scala -classpath
>> > ~/projects/util/lib/dispatch.jar -nocompdaemon "$0" "$@"
>> > !#
>> > //.. scala code here
>> >
>> > The script runs ok when I invoke it from shell. But looks like it gets
>> into
>> > some problem when invoked by CouchDB. Futon also comes up with the
>> following
>> > error ..
>> >
>> > Error: badmatch
>> >
>> > {{nocatch,{invalid_json,<<"!!!">>}},
>> >  [{couch_os_process,prompt,2},
>> >   {couch_query_servers,'-start_doc_map/2-fun-0-',2},
>> >   {lists,foreach,2},
>> >   {couch_query_servers,start_doc_map,2},
>> >   {couch_view_updater,view_compute,2},
>> >   {couch_view_updater,update,1}]}
>> >
>> > And here are some more errors from couch.log ..
>> >
>> > [Fri, 15 May 2009 12:29:50 GMT] [error] [<0.3878.1>]
>> {error_report,<0.22.0>,
>> >               {<0.3878.1>,supervisor_report,
>> >                [{supervisor,{local,couch_secondary_services}},
>> >                 {errorContext,child_terminated},
>> >                 {reason,{{nocatch,{invalid_json,<<"!!!">>}},
>> >                          [{couch_os_process,prompt,2},
>> >
>> {couch_query_servers,'-start_doc_map/2-fun-0-',2},
>> >                           {lists,foreach,2},
>> >                           {couch_query_servers,start_doc_map,2},
>> >                           {couch_view_updater,view_compute,2},
>> >                           {couch_view_updater,update,1}]}},
>> >                 {offender,[{pid,<0.3879.1>},
>> >                            {name,view_manager},
>> >                            {mfa,{couch_view,start_link,[]}},
>> >                            {restart_type,permanent},
>> >                            {shutdown,brutal_kill},
>> >                            {child_type,worker}]}]}}
>> >
>> > [Fri, 15 May 2009 12:29:50 GMT] [error] [<0.4645.1>] Uncaught error in
>> HTTP
>> > request: {error,
>> >                                  {case_clause,
>> >                                   {{nocatch,{invalid_json,<<"!!!">>}},
>> >                                    [{couch_os_process,prompt,2},
>> >                                     {couch_query_servers,
>> >                                      '-start_doc_map/2-fun-0-',2},
>> >                                     {lists,foreach,2},
>> >
>> {couch_query_servers,start_doc_map,2},
>> >                                     {couch_view_updater,view_compute,2},
>> >                                     {couch_view_updater,update,1}]}}}
>> >
>> > Any help will be greatly appreciated.
>> >
>> > Thanks.
>> > - Debasish
>> >
>> > On Fri, May 15, 2009 at 1:25 PM, Debasish Ghosh <
>> ghosh.debasish@gmail.com>
>> > wrote:
>> >>
>> >> Thanks for the response. I have removed buffered stream calls .. the
>> >> process time out error is no more. But now I am getting an illegal JSON
>> >> error as the following .. (from couch.log)
>> >>
>> >> ** Last message in was {'EXIT',<0.15838.0>,
>> >>                            {{nocatch,{invalid_json,<<"!!!">>}},
>> >>                             [{couch_os_process,prompt,2},
>> >>
>> >> {couch_query_servers,'-start_doc_map/2-fun-0-',2},
>> >>                              {lists,foreach,2},
>> >>                              {couch_query_servers,start_doc_map,2},
>> >>                              {couch_view_updater,view_compute,2},
>> >>                              {couch_view_updater,update,1}]}}
>> >>
>> >> The strange part is that the script runs ok when I run from the command
>> >> prompt and supply inputs like ["reset"]\n etc. manually. Is there any
>> way I
>> >> can poke into what commands are actually being exchanged between CouchDB
>> and
>> >> the view server ?
>> >>
>> >> Thanks for the help.
>> >> - Debasish
>> >>
>> >> On Thu, May 14, 2009 at 9:09 PM, Paul Davis <
>> paul.joseph.davis@gmail.com>
>> >> wrote:
>> >>>
>> >>> The most likely cause is buffering. If you're not getting any input,
>> >>> then I'm guessing that getLines.forEach is doing some buffering to try
>> >>> and make reading from files faster. If you get one line and nothing
>> >>> else, your stdout stream is probably buffered.
>> >>>
>> >>> HTH,
>> >>> Paul Davis
>> >>>
>> >>> On Thu, May 14, 2009 at 8:33 AM, Debasish Ghosh
>> >>> <ghosh.debasish@gmail.com> wrote:
>> >>> > Hi -
>> >>> >
>> >>> > I was trying to play around with query servers using Scala as the
>> >>> > language.
>> >>> > I have registered Scala as the language in local.ini .. it shows
up
>> in
>> >>> > Futon
>> >>> > as well. I have a Scala script registered that reads from the
>> standard
>> >>> > input
>> >>> > and writes into the standard output. Here is a snippet from the
>> script
>> >>> > ..
>> >>> >
>> >>> >  scala.io.Source.fromInputStream(System.in).getLines.foreach {l
=>
>> >>> >     //.. expecting to get stuff like "add_fun", "map_doc", "reset"
>> etc.
>> >>> > here ..
>> >>> >
>> >>> > But I am not getting anything within this loop, though the process
>> gets
>> >>> > kicked off when the view server launches. After some time it comes
>> out
>> >>> > with
>> >>> > the exception ..
>> >>> >
>> >>> >  {"error":"case_clause","reason":"{{nocatch,{os_process_error,\"OS
>> >>> > process
>> >>> > timed out.\"}},\n [{couch_os_process,prompt,2},\n
>> >>> > {couch_query_servers,'-start_doc_map/2-fun-0-',2},\n
>> >>> >  {lists,foreach,2},\n
>> >>> > {couch_query_servers,start_doc_map,2},\n
>> >>> > {couch_view_updater,view_compute,2},\n
>> >>> >  {couch_view_updater,update,1}]}"}
>> >>> >
>> >>> > Am I assuming anything which is not correct ? Please help.
>> >>> >
>> >>> > Thanks.
>> >>> > - Debasish
>> >>> >
>> >>
>> >
>> >
>>
>



-- 
Chris Anderson
http://jchrisa.net
http://couch.io

Mime
View raw message