rack-devel archive mirror (unofficial) https://groups.google.com/group/rack-devel
 help / color / mirror / code / Atom feed
* Rack-compatible server issues
@ 2009-12-05  2:04 Kevin Williams
  2009-12-05  6:42 ` Matt Todd
  2009-12-05  6:43 ` Michael Fellinger
  0 siblings, 2 replies; 8+ messages in thread
From: Kevin Williams @ 2009-12-05  2:04 UTC (permalink / raw)
  To: rack-devel

I'm implementing a Rack-compatible server for JRuby. I'm having issues
with complex apps returning bad data. Simple lambda apps run fine, but
when a Rack::Builder -created app is used, weird stuff happens.

http://gist.github.com/249506

If I pass just the lambda, my server runs fine, but if I pass the
whole builder-created app (any combination of middleware), I get one
of the middleware classes returned from the #call(env) method.

I thought once my server makes the top @app.call(env) call, it's all
Rack middleware and the user's app chained together. Shouldn't I get
the result of the user's app back to my server no matter what? What
could I be doing wrong that would cause this odd result?

Kevin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05  2:04 Rack-compatible server issues Kevin Williams
@ 2009-12-05  6:42 ` Matt Todd
  2009-12-05 15:51   ` Kevin Williams
  2009-12-05  6:43 ` Michael Fellinger
  1 sibling, 1 reply; 8+ messages in thread
From: Matt Todd @ 2009-12-05  6:42 UTC (permalink / raw)
  To: rack-devel

[-- Attachment #1: Type: text/plain, Size: 598 bytes --]

>
> http://gist.github.com/249506
>
> If I pass just the lambda, my server runs fine, but if I pass the
> whole builder-created app (any combination of middleware), I get one
> of the middleware classes returned from the #call(env) method.
>

In that code, you're calling a use after the lambda... that lambda is
essentially disappearing. You should return that lambda.

If it's any value, I've never liked using the builder personally.

Matt



-- 
Matt Todd
Highgroove Studios
www.highgroove.com
cell: 404-314-2612
blog: maraby.org

Scout - Web Monitoring and Reporting Software
www.scoutapp.com

[-- Attachment #2: Type: text/html, Size: 1225 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05  2:04 Rack-compatible server issues Kevin Williams
  2009-12-05  6:42 ` Matt Todd
@ 2009-12-05  6:43 ` Michael Fellinger
  2009-12-05 16:00   ` Kevin Williams
  1 sibling, 1 reply; 8+ messages in thread
From: Michael Fellinger @ 2009-12-05  6:43 UTC (permalink / raw)
  To: rack-devel

Structure it like this:

http://pastr.it/16475


On Sat, Dec 5, 2009 at 11:04 AM, Kevin Williams <kevwil@gmail.com> wrote:
> I'm implementing a Rack-compatible server for JRuby. I'm having issues
> with complex apps returning bad data. Simple lambda apps run fine, but
> when a Rack::Builder -created app is used, weird stuff happens.
>
> http://gist.github.com/249506
>
> If I pass just the lambda, my server runs fine, but if I pass the
> whole builder-created app (any combination of middleware), I get one
> of the middleware classes returned from the #call(env) method.
>
> I thought once my server makes the top @app.call(env) call, it's all
> Rack middleware and the user's app chained together. Shouldn't I get
> the result of the user's app back to my server no matter what? What
> could I be doing wrong that would cause this odd result?
>
> Kevin
>



-- 
Michael Fellinger
CTO, The Rubyists, LLC
972-996-5199

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05  6:42 ` Matt Todd
@ 2009-12-05 15:51   ` Kevin Williams
  2009-12-05 20:49     ` Iñaki Baz Castillo
  0 siblings, 1 reply; 8+ messages in thread
From: Kevin Williams @ 2009-12-05 15:51 UTC (permalink / raw)
  To: rack-devel

On Fri, Dec 4, 2009 at 11:42 PM, Matt Todd <chiology@gmail.com> wrote:
>> http://gist.github.com/249506
>>
>> If I pass just the lambda, my server runs fine, but if I pass the
>> whole builder-created app (any combination of middleware), I get one
>> of the middleware classes returned from the #call(env) method.
>
> In that code, you're calling a use after the lambda... that lambda is
> essentially disappearing. You should return that lambda.
> If it's any value, I've never liked using the builder personally.
> Matt

That makes sense. I can't say I'm a big fan of Builder either, but
I'll have to make it work for Rack apps that want to be created that
way. I haven't even come close to making the URLMap work, either.

The Rack docs say to run Rack::Lint before and after. Is that just an
old statement, or is there a better way to run Lint?

Kevin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05  6:43 ` Michael Fellinger
@ 2009-12-05 16:00   ` Kevin Williams
  2009-12-05 17:05     ` Kevin Williams
  0 siblings, 1 reply; 8+ messages in thread
From: Kevin Williams @ 2009-12-05 16:00 UTC (permalink / raw)
  To: rack-devel

Thanks for the clean example!!!

What I get as output is:

200
Content-Typetext/plain
#<Rack::CommonLogger:0x1235db0>

I expect to see 'OK' instead of the CommonLogger instance as the 3rd
element in the returned array.

I seem to always have either that problem, or I get a Rack::Lint
returned as the only element returned. This is really problematic as I
expect a 'status' number as the first element.


On Fri, Dec 4, 2009 at 11:43 PM, Michael Fellinger
<m.fellinger@gmail.com> wrote:
> Structure it like this:
>
> http://pastr.it/16475
>
>
> On Sat, Dec 5, 2009 at 11:04 AM, Kevin Williams <kevwil@gmail.com> wrote:
>> I'm implementing a Rack-compatible server for JRuby. I'm having issues
>> with complex apps returning bad data. Simple lambda apps run fine, but
>> when a Rack::Builder -created app is used, weird stuff happens.
>>
>> http://gist.github.com/249506
>>
>> If I pass just the lambda, my server runs fine, but if I pass the
>> whole builder-created app (any combination of middleware), I get one
>> of the middleware classes returned from the #call(env) method.
>>
>> I thought once my server makes the top @app.call(env) call, it's all
>> Rack middleware and the user's app chained together. Shouldn't I get
>> the result of the user's app back to my server no matter what? What
>> could I be doing wrong that would cause this odd result?
>>
>> Kevin
>>
>
>
>
> --
> Michael Fellinger
> CTO, The Rubyists, LLC
> 972-996-5199
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05 16:00   ` Kevin Williams
@ 2009-12-05 17:05     ` Kevin Williams
  0 siblings, 0 replies; 8+ messages in thread
From: Kevin Williams @ 2009-12-05 17:05 UTC (permalink / raw)
  To: rack-devel

replying to myself ....

My server code hasn't been handling the body correctly. I re-wrote the
body handling code to comply with the spec (respond to :each and yield
only Strings). Once I did that, these Rack middlewares and
Rack::Builder suddenly worked.


On Sat, Dec 5, 2009 at 9:00 AM, Kevin Williams <kevwil@gmail.com> wrote:
> Thanks for the clean example!!!
>
> What I get as output is:
>
> 200
> Content-Typetext/plain
> #<Rack::CommonLogger:0x1235db0>
>
> I expect to see 'OK' instead of the CommonLogger instance as the 3rd
> element in the returned array.
>
> I seem to always have either that problem, or I get a Rack::Lint
> returned as the only element returned. This is really problematic as I
> expect a 'status' number as the first element.
>
>
> On Fri, Dec 4, 2009 at 11:43 PM, Michael Fellinger
> <m.fellinger@gmail.com> wrote:
>> Structure it like this:
>>
>> http://pastr.it/16475
>>
>>
>> On Sat, Dec 5, 2009 at 11:04 AM, Kevin Williams <kevwil@gmail.com> wrote:
>>> I'm implementing a Rack-compatible server for JRuby. I'm having issues
>>> with complex apps returning bad data. Simple lambda apps run fine, but
>>> when a Rack::Builder -created app is used, weird stuff happens.
>>>
>>> http://gist.github.com/249506
>>>
>>> If I pass just the lambda, my server runs fine, but if I pass the
>>> whole builder-created app (any combination of middleware), I get one
>>> of the middleware classes returned from the #call(env) method.
>>>
>>> I thought once my server makes the top @app.call(env) call, it's all
>>> Rack middleware and the user's app chained together. Shouldn't I get
>>> the result of the user's app back to my server no matter what? What
>>> could I be doing wrong that would cause this odd result?
>>>
>>> Kevin
>>>
>>
>>
>>
>> --
>> Michael Fellinger
>> CTO, The Rubyists, LLC
>> 972-996-5199
>>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05 15:51   ` Kevin Williams
@ 2009-12-05 20:49     ` Iñaki Baz Castillo
  2009-12-05 22:55       ` Scytrin dai Kinthra
  0 siblings, 1 reply; 8+ messages in thread
From: Iñaki Baz Castillo @ 2009-12-05 20:49 UTC (permalink / raw)
  To: rack-devel

El Sábado, 5 de Diciembre de 2009, Kevin Williams escribió:
> That makes sense. I can't say I'm a big fan of Builder either

Perhaps I miss something but, which is the other way to create a Rack app 
without using Builder? 


-- 
Iñaki Baz Castillo <ibc@aliax.net>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Rack-compatible server issues
  2009-12-05 20:49     ` Iñaki Baz Castillo
@ 2009-12-05 22:55       ` Scytrin dai Kinthra
  0 siblings, 0 replies; 8+ messages in thread
From: Scytrin dai Kinthra @ 2009-12-05 22:55 UTC (permalink / raw)
  To: rack-devel

Starting the script directly, rackup is only one way to do things.

On Sat, Dec 5, 2009 at 12:49, Iñaki Baz Castillo <ibc@aliax.net> wrote:
> El Sábado, 5 de Diciembre de 2009, Kevin Williams escribió:
>> That makes sense. I can't say I'm a big fan of Builder either
>
> Perhaps I miss something but, which is the other way to create a Rack app
> without using Builder?
>
>
> --
> Iñaki Baz Castillo <ibc@aliax.net>
>



-- 
stadik.net

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-12-05 22:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-05  2:04 Rack-compatible server issues Kevin Williams
2009-12-05  6:42 ` Matt Todd
2009-12-05 15:51   ` Kevin Williams
2009-12-05 20:49     ` Iñaki Baz Castillo
2009-12-05 22:55       ` Scytrin dai Kinthra
2009-12-05  6:43 ` Michael Fellinger
2009-12-05 16:00   ` Kevin Williams
2009-12-05 17:05     ` Kevin Williams

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/rack.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).