eclipse-ee4j / glassfish

Eclipse GlassFish
https://eclipse-ee4j.github.io/glassfish/
376 stars 143 forks source link

v3 gem: Blank page returned if no Rails instance is available #3966

Closed glassfishrobot closed 16 years ago

glassfishrobot commented 16 years ago

Requests made to the process launched using

jruby -S glassfish_rails

are not being queued up. Hence if there is no rails instance available to satisfy the request, then the next request is returned with a blank page. This has already been reported by the users with the earlier gem.

This is also reported at:

http://weblogs.java.net/blog/arungupta/archive/2007/09/announcing_glas.html#comments

Environment

Operating System: All Platform: Macintosh

Affected Versions

[V3]

glassfishrobot commented 5 years ago
glassfishrobot commented 16 years ago

@glassfishrobot Commented arungupta said: Updating the title

glassfishrobot commented 16 years ago

@glassfishrobot Commented jfarcand said: Is the test using Grizzly Jruby/Rail extension or GoldSpike? Also do you know which version of v3 the gem is build on?

I'm asking because in Grizzly/JRuby 1.7.0, Comet is used to suspend requests when rails instance are unavailable.

Thanks

--Jeanfrancois

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: Hi JeanFrancois When I listed out the issues with the gem, I had created the gem using Grizzly/JRuby 1.6.1. Also I was using Grizzly/JRuby extension and NOT Goldspike, as I wanted to test the native deployment of a Rails application.

From what you have stated, this should not be an issue with 1.7.0 version of Grizzly/JRuby, am I right? Was having some build issue with 1.7.0 which were being addressed by Jerome last week. If those are fixed I could check against the latest build to confirm this behavior.

Pramod

glassfishrobot commented 16 years ago

@glassfishrobot Commented jfarcand said: Hi Pramod,

you are right. 1.7.0 shouldn't have the issue. As for the build issue, we wrongly updated to 1.1b1 (which force jdk 1.6), so I've rolled back to 1.0. Download the latest artifacts from Maven and you should get the 1.7.0 working.

Thanks!

– Jeanfrancois

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: I was able to get the gem built using the 1.7.0_01 grizzly-jruby bits and was able to create and use the gem as well as the standalone glassfish instance. I was testing using Jruby 1.0.3 bits.

So I guess I could checkin the corresponding pom.xml changes.

JeanFrancois : I am still seeing the issue where requests more that available Rails instances are returning with a blank page and

https://glassfish.dev.java.net/issues/show_bug.cgi?id=3966

On the command prompt where the glassfish V3 server (or jruby instance) is running I see the following error :

com.sun.grizzly.standalone.DynamicContentAdapter service SEVERE: null

Thanks Pramod

glassfishrobot commented 16 years ago

@glassfishrobot Commented jfarcand said: Hi Pramod,

I don't see that problem when I use Grizzly/JRuby extension, but maybe I'm not testing it correctly. Can you tell me how you tested it?

Thanks!

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: Created an attachment (id=1299) application jar file

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: This is the email that I had sent JeanFrancois. Not able to add gem as it is > 2MB. But adding the sample application as an attachment to this issue.

Hi JeanFrancois I have attached the sample application to this email as well as the gem. This gem has been created using the 1.7.0_01 jruby bits. First install the gem using the "gem install" command pointing to this gem. Then unzip the sample (hello.jar and then from a directory above "hello" start the server using the command "jruby -S glassfish_rails hello".

Then from 2 command prompts try : curl http://localhost:8080/hello/say/slow before you launch curl http://localhost:8080/hello/say/hello

The first one (/say/slow) has a loop and hence would ensure that the subsequent request are waiting.

Thanks Pramod

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: Some more information on why I think the requests are not getting pooled. In com.sun.grizzly.standalone.DynamicContentAdapter I added a printStackTrace() to see what was the exception thrown that was causing the null being thrown.

Found the following stack trace : java.lang.IllegalStateException at com.sun.grizzly.jruby.RailsAdapter.serviceDynamicContent(RailsAdapter.java:89) at com.sun.grizzly.standalone.DynamicContentAdapter.service(DynamicContentAdapter.java:118) at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) at com.sun.enterprise.v3.services.impl.GrizzlyAdapter.service(GrizzlyAdapter.java:252) at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:599) at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:530) at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:774) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:130) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:90) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:68) at com.sun.grizzly.http.SelectorThread$1.execute(SelectorThread.java:637) at com.sun.grizzly.ProtocolChainContextTask.call(ProtocolChainContextTask.java:61) at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:179)

The com.sun.grizzly.jruby.RailsAdapter code where the lllegalStateException is being thrown is the point where it looking at the runtime from pool.bollowRuntime and it gets a null.

Pramod

glassfishrobot commented 16 years ago

@glassfishrobot Commented harpreet said: assigning target milestone as v3

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: Changing the subcategory

glassfishrobot commented 16 years ago

@glassfishrobot Commented mzh777 said: Found the same issue on glassfish V3 gem 0.1.1 hosting the Depot app. Loaded the default port 3000 and got a blank page when V3 started and was loading Depot app: Feb 14, 2008 6:59:43 PM com.sun.grizzly.standalone.StaticResourcesAdapter INFO: New Servicing page from: /opt/tmp/Depot/public Feb 14, 2008 6:59:43 PM com.sun.enterprise.rails.RailsDeployer load INFO: Loading application Depot at / Starting Rails instances Feb 14, 2008 6:59:48 PM com.sun.grizzly.standalone.DynamicContentAdapter service SEVERE: null ...

The Depot app worked after the loading is done.

glassfishrobot commented 16 years ago

@glassfishrobot Commented pramodgo said: Issue has been resolved as part of the release of gem v0.1.2 and grizzly-jruby-0.1.2.jar. But this is a temporary fix, in the sense that I am blocking on the pool of runtime. The actual fix would have to be put into place when Jeanfrancois adds support for suspend/resume of requests.

glassfishrobot commented 16 years ago

@glassfishrobot Commented File: hello.jar Attached By: pramodgo

glassfishrobot commented 16 years ago

@glassfishrobot Commented Was assigned to pramodgo

glassfishrobot commented 7 years ago

@glassfishrobot Commented This issue was imported from java.net JIRA GLASSFISH-3966

glassfishrobot commented 16 years ago

@glassfishrobot Commented Reported by arungupta

glassfishrobot commented 16 years ago

@glassfishrobot Commented Marked as fixed on Thursday, March 13th 2008, 11:59:30 am