From user-return-4834-apmail-couchdb-user-archive=couchdb.apache.org@couchdb.apache.org Fri May 15 21:04:50 2009 Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 85311 invoked from network); 15 May 2009 21:04:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 15 May 2009 21:04:50 -0000 Received: (qmail 19682 invoked by uid 500); 15 May 2009 21:04:49 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 19598 invoked by uid 500); 15 May 2009 21:04:49 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 19588 invoked by uid 99); 15 May 2009 21:04:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 May 2009 21:04:48 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ghosh.debasish@gmail.com designates 209.85.198.232 as permitted sender) Received: from [209.85.198.232] (HELO rv-out-0506.google.com) (209.85.198.232) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 May 2009 21:04:38 +0000 Received: by rv-out-0506.google.com with SMTP id g37so1012579rvb.35 for ; Fri, 15 May 2009 14:04:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:reply-to:in-reply-to :references:from:date:message-id:subject:to:cc:content-type; bh=fhJPoWoRc3T4oEf+FojXrvZuOudkFW/Ia5hsDDVH86Q=; b=iyuNwhygz4Qk5R/+SelmsvPibnrpQNO/nrAVNxmFbYMnhxAekp8E1HK+tnHyyStMqh bl9YK7/uILvuyEC4FWUYERRksHB4uCietA5jf4GYk9UVXaOI4VMEpC6WMpyhOa3tsWen HbJDbpyswD3yGug3QAkLEICa150RIAJBl0rus= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:reply-to:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; b=FCbEcztXDEyvOOHMPaRyMAd0toxqYMHerIPPxiL/lc2nyYHdbHir3tHJPHS/E4ISfy rX84Djj9iIreY9GqSzRuYbyn77QlRQFPpdiyHMFHnHKDfg2DkAxCPfcqYzeiLwitejgF mLJNmgwwFNy2rBwG3hDD+MNd2NbysmrAkbxAE= MIME-Version: 1.0 Received: by 10.141.176.4 with SMTP id d4mr1475777rvp.253.1242421457203; Fri, 15 May 2009 14:04:17 -0700 (PDT) Reply-To: dghosh@acm.org In-Reply-To: References: <8b1c89270905140533s71587e15pfa11d09f9201ba8e@mail.gmail.com> <8b1c89270905150055g129cfedtedbc2d07331e217a@mail.gmail.com> <8b1c89270905150605u5656c883q4e0884cccb1d0799@mail.gmail.com> From: Debasish Ghosh Date: Sat, 16 May 2009 02:33:57 +0530 Message-ID: <8b1c89270905151403u67ccd1fek97fea33f5c7b0169@mail.gmail.com> Subject: Re: View Server clarifications To: Paul Davis Cc: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=000e0cd14f6c9e33490469f9c9e4 X-Virus-Checked: Checked by ClamAV on apache.org --000e0cd14f6c9e33490469f9c9e4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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. Thanks for all the help. - Debasish On Fri, May 15, 2009 at 7:43 PM, Paul Davis 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 > 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 > >>> 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 > >>> > > >> > > > > > --000e0cd14f6c9e33490469f9c9e4--