2010-10-29 43 views
0

我有一个使用apache前端的glassfish-gem部署的jruby应用程序。当我做一个文件的表单文章时,文件大小超过了cert的大小,似乎在800k左右。如果它有帮助,该错误在下面。对于大于800k左右的文件,jruby multipart post失败

glassfish.yml是生成的,没有改变默认以外,增加一些java内存设置。

我已绕过Apache并直接进入应用程序,但仍有问题。在rails中启用线程会使问题变得更糟。

INFO: /!\ FAILSAFE /!\ Fri Oct 29 04:54:17 +0000 2010 
Status: 500 Internal Server Error 
Stream closed 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/rack-1.1.0/lib/rack/utils.rb:466:in `parse_multipart' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/rack-1.1.0/lib/rack/request.rb:268:in `parse_multipart' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/rack-1.1.0/lib/rack/request.rb:146:in `POST' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/facebooker-1.0.75/lib/rack/facebook.rb:38:in `call' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/actionpack-2.3.10/lib/action_controller/session/cookie_store.rb:100:in `call' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/actionpack-2.3.10/lib/action_controller/failsafe.rb:26:in `call' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/rack-1.1.0/lib/rack/lock.rb:11:in `call' 
/var/www/LocalHabit/shared/bundle/jruby/1.8/gems/actionpack-2.3.10/lib/action_controller/dispatcher.rb:106:in `call' 
/usr/local/rvm/gems/jruby-head/gems/glassfish-1.0.3.dev-universal-java/lib/../lib/rack/adapter/rails.rb:133:in `call' 
/usr/local/rvm/gems/jruby-head/gems/glassfish-1.0.3.dev-universal-java/lib/../lib/rack/handler/grizzly.rb:55:in `call' 
:1 

Oct 29, 2010 4:54:17 AM com.sun.grizzly.http.SocketChannelOutputBuffer flushChannel 
FINEST: flushChannel isAsyncHttpWriteEnabled=false bb=java.nio.HeapByteBuffer[pos=0 lim=1088 cap=33368] 
+0

千里达或平原Webrick的行为有什么不同?可能是Glassfish中的一个错误,我们可能无法修复。 – 2010-11-03 02:11:14

+0

我已经为此暂时搁置了。 JRuby 1.4.1的作品。我在挖掘互联网的过程中发现的唯一情况是它可能与Neo4j有关。使用浏览器时也只会出错。我可以用apache基准测试来证明它没有问题。 – 2010-11-11 19:56:47

回答

0

原来有JRuby中1.5.1版推出了一个错误,那就是所谓固定在1.5.6,但我忘记了对错误的详细信息。它实际上与jruby中的一个后期问题有关。