Hi,

I've attached the NIO patch and everything still seems to work. Maybe I 
should try with your critical-patch too?

/O

At 16:58 2006-06-16, you wrote:
>It certainly could be in my environment, or it could be my nio patch was 
>not correctly removed when I tested again. Maybe you could try applying 
>the NIO patch and see what happens?
>
>On 6/16/06, Ola Bini <<mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]> wrote:
>Now this is strange. It works flowlessly (and REALLY fast) for me.
>I'm wondering what's different in my source tree...
>Now, what's different in my source code tree from HEAD, right now? If I
>remove all my testing files and stuff like that, that CANNOT influence, I
>get this:
>
>? lib/plaincharset.jar
>? src/builtin/zlib.rb
>? src/org/jruby/RubySignal.java
>? src/org/jruby/RubyStringIO.java
>? src/org/jruby/RubyZlib.java
>? src/org/jruby/libraries/StringIOLibrary.java
>? src/org/jruby/libraries/ZlibLibrary.java
>? src/org/jruby/util/DummySignalHandler.java
>? src/org/jruby/util/ISignal.java
>? src/org/jruby/util/SunSignalHandler.java
>M bin/jruby.bat
>M src/builtin/etc.rb
>M src/builtin/java/collections.rb
>M src/org/jruby/IRuby.java
>M src/org/jruby/Ruby.java
>M src/org/jruby/RubyKernel.java
>M src/org/jruby/util/IOInputStream.java
>M src/org/jruby/util/IOOutputStream.java
>M test/testStringIO.rb
>M test/testZlib.rb
>
>where most of the changed files are for StringIO and Signal.
>
>/O
>
>At 09:54 2006-06-16, you wrote:
> >Ah, ouch. I'll take a look at it later. I saw it when I created the
> >original Zlib too. It's probably something small, though.
> >
> >/O
> >
> >At 09:36 2006-06-16, you wrote:
> > >Also FYI, with or without my NIO fix, I'm getting the following error
> > >while installing RubyGems:
> > >
> > >   Successfully built RubyGem
> > >   Name: sources
> > >   Version: 0.0.1
> > >   File: sources-0.0.1.gem
> > >hook /home/headius/rubygems- 0.8.11/./post-install.rb failed:
> > >java.io.EOFException: Unexpected end of ZLIB input stream
> > >
> > >Perhaps something small?
> > >
> > >On 6/16/06, Charles O Nutter
> > ><<mailto:[EMAIL PROTECTED]><mailto:[EMAIL PROTECTED]> 
> [EMAIL PROTECTED]> wrote:
> > >FYI, I went ahead and committed the plaincharset.jar file, since the patch
> > >seems to have mangled it.
> > >
> > >
> > >On 6/16/06, Charles O Nutter <
> > ><mailto:[EMAIL PROTECTED]><mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED] 
> .com> wrote:
> > >So we all know our friend Ola has contributed some great pieces of work
> > >over the past several months. As another JRubyist put it, "Ola is a f'n
> > >machine". StringIO, YAML, and Zlib are now mostly Java and far, far faster
> > >than they were. These contributions have made RubyGems far, far faster.
> > > From the original install time on this Opteron 2.6G of almost an hour
> > >(sans rdoc, mind you), we get this:
> > >
> > >real    5m35.341s
> > >user    0m36.379s
> > >sys     0m5.195s
> > >
> > >Impressive, by any measure. Ok, so I don't remember whether it was exactly
> > >an hour to install before, but it was bloody long enough to hit the
> > >drive-in for lunch. Grotesquely slow. Ola's changes alone dropped that
> > >time down to comparatively nothing. I went through the pains this evening
> > >of applying all his patches, cleaning up conflicts between them (since I
> > >didn't have a complete picture), and tidying up a few minor things. 
> Then I
> > >ran a full Rails install. The time was impressive, no doubt about it.
> > >However, something really, really bothered me. In the time between gem
> > >download and gem install, the machine was sitting there, doing *nothing*.
> > >No network traffic, 0% CPU utilization. Zippo.
> > >
> > >Then it hit me.
> > >
> > >You've all heard the story about the timeout library. net/http calls
> > >net/protocol which reads in 1024-byte chunks from the stream with a
> > >timeout thread for each one. I cried about this on my blog too, since it
> > >seemed to be the source of a terrible performance problem. It turns out
> > >that once again, Java has already optimized our troubles away, in this
> > >case the cost of spinning up hundreds of threads.
> > >
> > >Our NIO-based IO handler had a tiny flaw when it came to Socket IO: it was
> > >blocking. That meant that for the last read from the stream, the last few
> > >bytes of a gem file, it would sit and wait to fill up net/protocol's
> > >1024-byte buffer. I am no NIO expert, but channels appear to behave
> > >somewhat differently when doing File versus Socket IO. At the end of a
> > >File, the stream is empty and read(ByteBuffer) will immediately return -1.
> > >With a Socket, however, if there are not enough bytes to fill the buffer
> > >and the socket is still open, it will block. Such is the case here. The
> > >HTTP get of a gem seems to leave the channel open. I'm not sure if this is
> > >intentional in RubyGems (for retrieving multiple gems) or a bug
> > >(potentially in JRuby) but leaving the Socket in blocking mode 
> resulted in
> > >that last chunk of bytes waiting until timeout kicked in.
> > >
> > >My fix (in the form of a patch to IOHandlerNIO) may or may not be correct;
> > >like I said, I'm no NIO expert. However, it seems to work well enough:
> > >
> > >Attempting local installation of 'rails'
> > >Local gem file not found: rails*.gem
> > >Attempting remote installation of 'rails'
> > >Updating Gem source index for:
> > >< 
> <http://gems.rubyforge.org>http://gems.rubyforge.org>http://gems.rubyforge.org
> > >Successfully installed rails-1.1.2
> > >Successfully installed rake-0.7.1
> > >Successfully installed activesupport-1.3.1
> > >Successfully installed activerecord-1.14.2
> > >Successfully installed actionpack-1.12.1
> > >Successfully installed actionmailer-1.2.1
> > >Successfully installed actionwebservice-1.1.2
> > >
> > >real    1m3.751s
> > >user    0m53.817s
> > >sys     0m5.722s
> > >
> > >For sake of comparison, Ruby installs Rails and its dependencies in about
> > >25 seconds on my system. It's probably safe to say that we're only 2x
> > >slower for non-rdoc gem installations, which seems pretty good to me.
> > >
> > >The NIO patch alone is attached, as is a complete patch with everything
> > >changed on my system, including:
> > >
> > >- All Ola's stuff (stringio, zlib, and signal)
> > >- My unrelated simplifications to Thread.critical= (not as deterministic
> > >as before but less likely or unlikely to deadlock...needs a bit more
> > testing)
> > >- My NIO fix
> > >
> > >It will be nice to say that not only have we gotten RubyGems working, but
> > >it's been sped up by perhaps an order of magnitude since we first 
> started.
> > >
> > >--
> > >Charles Oliver Nutter @ 
> <<http://headius.blogspot.com>http://headius.blogspot.com><http://headius.blogspot.com>headius.blogspot.com
> > >JRuby Developer @ < 
> <http://jruby.sourceforge.net>http://jruby.sourceforge.net><http://jruby.sourceforge.net>jruby.sourceforge.net
> > >Application Architect @ 
> <<http://www.ventera.com>http://www.ventera.com >www.ventera.com
> > >
> > >
> > >
> > >
> > >--
> > >Charles Oliver Nutter @ 
> <<http://headius.blogspot.com>http://headius.blogspot.com ><http://headius 
> .blogspot.com>headius.blogspot.com
> > >JRuby Developer @ 
> <<http://jruby.sourceforge.net>http://jruby.sourceforge.net><http://jruby.sourceforge.net>jruby.sourceforge.net
>  
>
> > >Application Architect @ 
> <<http://www.ventera.com>http://www.ventera.com>www.ventera.com
> > >
> > >
> > >
> > >
> > >--
> > >Charles Oliver Nutter @ 
> <<http://headius.blogspot.com>http://headius.blogspot.com><http://headius.blogspot.com>headius.blogspot.com
> > >JRuby Developer @ < http://jruby.sourceforge.net>jruby.sourceforge.net
> > >Application Architect @ 
> <<http://www.ventera.com>http://www.ventera.com> www.ventera.com
> > >_______________________________________________
> > >Jruby-devel mailing list
> > ><mailto:Jruby-devel@lists.sourceforge.net>[EMAIL PROTECTED] 
> .net
> > >https://lists.sourceforge.net/lists/listinfo/jruby-devel
> >
> >
> >
> >
> >
> >_______________________________________________
> >Jruby-devel mailing list
> ><mailto:Jruby-devel@lists.sourceforge.net>Jruby-devel@lists.sourceforge.net
> >https://lists.sourceforge.net/lists/listinfo/jruby-devel
>
>
>
>
>
>
>--
>Charles Oliver Nutter @ <http://headius.blogspot.com>headius.blogspot.com
>JRuby Developer @ <http://jruby.sourceforge.net>jruby.sourceforge.net
>Application Architect @ <http://www.ventera.com>www.ventera.com
>_______________________________________________
>Jruby-devel mailing list
>Jruby-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/jruby-devel





_______________________________________________
Jruby-devel mailing list
Jruby-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jruby-devel

Reply via email to