From normalperson at yhbt.net Wed Jul 1 18:58:44 2009 From: normalperson at yhbt.net (Eric Wong) Date: Wed, 1 Jul 2009 15:58:44 -0700 Subject: [Mongrel-development] [ANN] unicorn 0.9.0 (experimental release) Message-ID: <20090701225843.GA7475@dcvr.yhbt.net> Unicorn is a Rack HTTP server for Unix, fast clients and nothing else[1] We now have support for "Transfer-Encoding: chunked" bodies in requests. Not only that, Rack applications reading input bodies get that data streamed off to the client socket on an as-needed basis. This allows the application to do things like upload progress notification and even tunneling of arbitrary stream protocols via bidirectional chunked encoding. See Unicorn::App::Inetd and examples/git.ru (including the comments) for an example of tunneling the git:// protocol over HTTP. This release also gives applications the ability to respond positively to "Expect: 100-continue" headers before being rerun without closing the socket connection. See Unicorn::App::Inetd for an example of how this is used. This release is NOT recommended for production use. Eric Wong (43): http_request: no need to reset the request http_request: StringIO is binary for empty bodies (1.9) http_request: fix typo for 1.9 Transfer-Encoding: chunked streaming input support Unicorn::App::Inetd: reinventing Unix, poorly :) README: update with mailing list info local.mk.sample: publish_doc gzips all html, js, css Put copyright text in new files, include GPL2 text examples/cat-chunk-proxy: link to proposed curl(1) patch Update TODO Avoid duplicating the "Z" constant Optimize body-less GET/HEAD requests (again) tee_input: Don't expose the @rd object as a return value exec_cgi: small cleanups README: another note about older Sinatra tee_input: avoid defining a @rd.size method Make TeeInput easier to use test_upload: add tests for chunked encoding GNUmakefile: more stringent error checking in tests test_upload: fix ECONNRESET with 1.9 GNUmakefile: allow TRACER= to be specified for tests test_rails: workaround long-standing 1.9 bug tee_input: avoid rereading fresh data "Fix" tests that break with stream_input=false inetd: fix broken constant references configurator: provide stream_input (true|false) option chunked_reader: simpler interface http_request: force BUFFER to be Encoding::BINARY ACK clients on "Expect: 100-continue" header Only send "100 Continue" when no body has been sent http_request: tighter Transfer-Encoding: "chunked" check Add trailer_parser for parsing trailers chunked_reader: Add test for chunk parse failure TeeInput: use only one IO for tempfile trailer_parser: set keys with "HTTP_" prefix TrailerParser integration into ChunkedReader Unbind listeners as before stopping workers Retry listen() on EADDRINUSE 5 times ever 500ms Re-add support for non-portable socket options Move "Expect: 100-continue" handling to the app tee_input: avoid ignoring initial body blob Force streaming input onto apps by default unicorn 0.9.0 * site: http://unicorn.bogomips.org/ * git: git://git.bogomips.org/unicorn.git * http+git: http://git.bogomips.org:8080/unicorn.git [1] * cgit: http://git.bogomips.org/cgit/unicorn.git/ * list: mongrel-unicorn at rubyforge.org [1] - Actually, most of the new features in this release should in fact work on non-Unix OSes so they can be adapted for other servers with wider audiences. [2] - This is the git:// protocol tunneled inside a bidirectional "Transfer-Encoding: chunked" request/response using this latest release of Unicorn. -- Eric Wong From evan at cloudbur.st Tue Jul 7 19:51:57 2009 From: evan at cloudbur.st (Evan Weaver) Date: Tue, 7 Jul 2009 16:51:57 -0700 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> Message-ID: http://github.com/fauna/mongrel/tree/spinoff Ragel 6.5 builds, and tests pass on 1.8 and 1.9, except for: test_deflate(HandlersTest): Zlib::DataError: incorrect header check /Volumes/Projects/fauna/mongrel/test/test_handlers.rb:109:in `block in test_deflate' Which I don't understand right now. Go nuts with the packaging; I'm still not sure what you're trying to accomplish exactly. Evan On Sun, Jun 28, 2009 at 11:26 PM, Luis Lavena wrote: > On Mon, Jun 29, 2009 at 2:41 AM, Evan Weaver wrote: >> Ugh, sorry. Mongrel is not dead, but rather severely neglected by me. >> > > And me. Been focusing a lot on RubyInstaller and the related tools. > >> We still use it at Twitter, for what it's worth. I will gather up the >> 1.9 bits I have and send you the details. >> > > Cool, you know my email already ;-) > >> What cross-compilation strategy did you want to use for MinGW? >> > > rake-compiler and fat binaries: > > http://github.com/luislavena/rake-compiler/tree/ > > Cheers, > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exup?ry > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From evan at cloudbur.st Tue Jul 7 19:56:22 2009 From: evan at cloudbur.st (Evan Weaver) Date: Tue, 7 Jul 2009 16:56:22 -0700 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> Message-ID: I think we should call this version 1.2, but that's the least of our concerns. I have a 1.2 branch in fauna but I don't know what's in it anymore...will audit. Evan On Tue, Jul 7, 2009 at 4:51 PM, Evan Weaver wrote: > http://github.com/fauna/mongrel/tree/spinoff > > Ragel 6.5 builds, and tests pass on 1.8 and 1.9, except for: > > test_deflate(HandlersTest): > Zlib::DataError: incorrect header check > ? ?/Volumes/Projects/fauna/mongrel/test/test_handlers.rb:109:in > `block in test_deflate' > > Which I don't understand right now. > > Go nuts with the packaging; I'm still not sure what you're trying to > accomplish exactly. > > Evan > > On Sun, Jun 28, 2009 at 11:26 PM, Luis Lavena wrote: >> On Mon, Jun 29, 2009 at 2:41 AM, Evan Weaver wrote: >>> Ugh, sorry. Mongrel is not dead, but rather severely neglected by me. >>> >> >> And me. Been focusing a lot on RubyInstaller and the related tools. >> >>> We still use it at Twitter, for what it's worth. I will gather up the >>> 1.9 bits I have and send you the details. >>> >> >> Cool, you know my email already ;-) >> >>> What cross-compilation strategy did you want to use for MinGW? >>> >> >> rake-compiler and fat binaries: >> >> http://github.com/luislavena/rake-compiler/tree/ >> >> Cheers, >> -- >> Luis Lavena >> AREA 17 >> - >> Perfection in design is achieved not when there is nothing more to add, >> but rather when there is nothing more to take away. >> Antoine de Saint-Exup?ry >> _______________________________________________ >> Mongrel-development mailing list >> Mongrel-development at rubyforge.org >> http://rubyforge.org/mailman/listinfo/mongrel-development >> > > > > -- > Evan Weaver > -- Evan Weaver From luislavena at gmail.com Tue Jul 7 20:03:53 2009 From: luislavena at gmail.com (Luis Lavena) Date: Tue, 7 Jul 2009 21:03:53 -0300 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> Message-ID: <71166b3b0907071703s3f0d2bd9l60134145697e5370@mail.gmail.com> On Tue, Jul 7, 2009 at 8:56 PM, Evan Weaver wrote: > I think we should call this version 1.2, but that's the least of our concerns. > Well, internally it didn't change a lot. Only packaging and cross compilation. It also disabled the dependencies on fastthread and cgi multipart, which means only work for >= 1.8.6 But maybe you're right, and we can call it 1.2 > I have a 1.2 branch in fauna but I don't know what's in it anymore...will audit. > Bummer, auditing sucks. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From luislavena at gmail.com Tue Jul 7 20:06:32 2009 From: luislavena at gmail.com (Luis Lavena) Date: Tue, 7 Jul 2009 21:06:32 -0300 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> Message-ID: <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> On Tue, Jul 7, 2009 at 8:51 PM, Evan Weaver wrote: > http://github.com/fauna/mongrel/tree/spinoff > > Ragel 6.5 builds, and tests pass on 1.8 and 1.9, except for: > > test_deflate(HandlersTest): > Zlib::DataError: incorrect header check > ? ?/Volumes/Projects/fauna/mongrel/test/test_handlers.rb:109:in > `block in test_deflate' > > Which I don't understand right now. > Me neither, since tested manually Zlib at IRB and the deflating worked without the header. > Go nuts with the packaging; I'm still not sure what you're trying to > accomplish exactly. > I'm trying to simplify the building and release of new gems. MinGW didn't work with 1.1.5 and catching up and build new releases for Mongrel got stuck in 2007/08. What I'm trying: allow mongrel "run" on 1.9, next version (1.2 or 2.0) can go nuts and do Rack and proper threading on 1.9... Right now, we just need it to "work". -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From evan at cloudbur.st Tue Jul 7 20:11:51 2009 From: evan at cloudbur.st (Evan Weaver) Date: Tue, 7 Jul 2009 17:11:51 -0700 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> Message-ID: Cursory view looks like the stable-1.2 branch had mostly packaging changes (many for Windows) and Rack support. Agree with ignoring Rack/threading in the interests of having a quick release. To be clear, I did not merge the stable-1.2 branch into fauna/spinoff. Stable-1.2 branch is dead and fauna/spinoff is my new HEAD based on your's and Matt Aimonett's. Evan On Tue, Jul 7, 2009 at 5:06 PM, Luis Lavena wrote: > On Tue, Jul 7, 2009 at 8:51 PM, Evan Weaver wrote: >> http://github.com/fauna/mongrel/tree/spinoff >> >> Ragel 6.5 builds, and tests pass on 1.8 and 1.9, except for: >> >> test_deflate(HandlersTest): >> Zlib::DataError: incorrect header check >> ? ?/Volumes/Projects/fauna/mongrel/test/test_handlers.rb:109:in >> `block in test_deflate' >> >> Which I don't understand right now. >> > > Me neither, since tested manually Zlib at IRB and the deflating worked > without the header. > >> Go nuts with the packaging; I'm still not sure what you're trying to >> accomplish exactly. >> > > I'm trying to simplify the building and release of new gems. MinGW > didn't work with 1.1.5 and catching up and build new releases for > Mongrel got stuck in 2007/08. > > What I'm trying: allow mongrel "run" on 1.9, next version (1.2 or 2.0) > can go nuts and do Rack and proper threading on 1.9... > > Right now, we just need it to "work". > > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exup?ry > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From luislavena at gmail.com Tue Jul 7 20:15:11 2009 From: luislavena at gmail.com (Luis Lavena) Date: Tue, 7 Jul 2009 21:15:11 -0300 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> Message-ID: <71166b3b0907071715r2c6cf5f5h6e0f92233ce9ce3@mail.gmail.com> On Tue, Jul 7, 2009 at 9:11 PM, Evan Weaver wrote: > Cursory view looks like the stable-1.2 branch had mostly packaging > changes (many for Windows) and Rack support. Agree with ignoring > Rack/threading in the interests of having a quick release. > So we agree :-) > To be clear, I did not merge the stable-1.2 branch into fauna/spinoff. > Stable-1.2 branch is dead and fauna/spinoff is my new HEAD based on > your's and Matt Aimonett's. > I don't like this commit: http://github.com/mattetti/mongrel/commit/7c9d988d4de2e08d67f95ca209196427fd89c9af I see a lot of changes there to be implemented in a point release. Need more time to actually check them, or maybe slice them. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From evan at cloudbur.st Tue Jul 7 20:18:37 2009 From: evan at cloudbur.st (Evan Weaver) Date: Tue, 7 Jul 2009 17:18:37 -0700 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: <71166b3b0907071715r2c6cf5f5h6e0f92233ce9ce3@mail.gmail.com> References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> <71166b3b0907071715r2c6cf5f5h6e0f92233ce9ce3@mail.gmail.com> Message-ID: It's not my favorite but there is some magic in there. Should be possible to slice out and look at one-by-one. Evan On Tue, Jul 7, 2009 at 5:15 PM, Luis Lavena wrote: > On Tue, Jul 7, 2009 at 9:11 PM, Evan Weaver wrote: >> Cursory view looks like the stable-1.2 branch had mostly packaging >> changes (many for Windows) and Rack support. Agree with ignoring >> Rack/threading in the interests of having a quick release. >> > > So we agree :-) > >> To be clear, I did not merge the stable-1.2 branch into fauna/spinoff. >> Stable-1.2 branch is dead and fauna/spinoff is my new HEAD based on >> your's and Matt Aimonett's. >> > > I don't like this commit: > > http://github.com/mattetti/mongrel/commit/7c9d988d4de2e08d67f95ca209196427fd89c9af > > I see a lot of changes there to be implemented in a point release. > > Need more time to actually check them, or maybe slice them. > > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exup?ry > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From evan at cloudbur.st Tue Jul 7 20:51:02 2009 From: evan at cloudbur.st (Evan Weaver) Date: Tue, 7 Jul 2009 17:51:02 -0700 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> <71166b3b0907071715r2c6cf5f5h6e0f92233ce9ce3@mail.gmail.com> Message-ID: Luis, What else do you need me to do/look at? Evan On Tue, Jul 7, 2009 at 5:18 PM, Evan Weaver wrote: > It's not my favorite but there is some magic in there. > > Should be possible to slice out and look at one-by-one. > > Evan > > On Tue, Jul 7, 2009 at 5:15 PM, Luis Lavena wrote: >> On Tue, Jul 7, 2009 at 9:11 PM, Evan Weaver wrote: >>> Cursory view looks like the stable-1.2 branch had mostly packaging >>> changes (many for Windows) and Rack support. Agree with ignoring >>> Rack/threading in the interests of having a quick release. >>> >> >> So we agree :-) >> >>> To be clear, I did not merge the stable-1.2 branch into fauna/spinoff. >>> Stable-1.2 branch is dead and fauna/spinoff is my new HEAD based on >>> your's and Matt Aimonett's. >>> >> >> I don't like this commit: >> >> http://github.com/mattetti/mongrel/commit/7c9d988d4de2e08d67f95ca209196427fd89c9af >> >> I see a lot of changes there to be implemented in a point release. >> >> Need more time to actually check them, or maybe slice them. >> >> -- >> Luis Lavena >> AREA 17 >> - >> Perfection in design is achieved not when there is nothing more to add, >> but rather when there is nothing more to take away. >> Antoine de Saint-Exup?ry >> _______________________________________________ >> Mongrel-development mailing list >> Mongrel-development at rubyforge.org >> http://rubyforge.org/mailman/listinfo/mongrel-development >> > > > > -- > Evan Weaver > -- Evan Weaver From luislavena at gmail.com Tue Jul 7 21:08:37 2009 From: luislavena at gmail.com (Luis Lavena) Date: Tue, 7 Jul 2009 22:08:37 -0300 Subject: [Mongrel-development] Mongrel for 1.9, for real? In-Reply-To: References: <71166b3b0906282146n647d9c09ke18f59204e01f76e@mail.gmail.com> <71166b3b0906282326r280ee292gd064fcfb768402e0@mail.gmail.com> <71166b3b0907071706r64f1f02en64a5f2e2ff956e11@mail.gmail.com> <71166b3b0907071715r2c6cf5f5h6e0f92233ce9ce3@mail.gmail.com> Message-ID: <71166b3b0907071808r78e828fbwff967e2c76c7e292@mail.gmail.com> On Tue, Jul 7, 2009 at 9:51 PM, Evan Weaver wrote: > Luis, > > What else do you need me to do/look at? > I think that from the spinoff branch we can do a 1.1.6 release. Let me outline the changes and by tomorrow let's see a checklist if something is missing. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From luislavena at gmail.com Wed Jul 8 08:23:27 2009 From: luislavena at gmail.com (Luis Lavena) Date: Wed, 8 Jul 2009 09:23:27 -0300 Subject: [Mongrel-development] TODO list for 1.1.6 release Message-ID: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Hey Evan and others watching this list. I would love to release an official small point release for Mongrel in the next couple of days. Mainly, the following things is what I'm aiming: * Basic Ruby 1.9 functionality This means "it just built and run", it doesn't mean anything optimized for 1.9. Bigger versions can address those details. There is a weird Zlib error I'm going to investigate. * Modernize infrastructure - Latest Ruby versions do not require fastthread, since has been integrated by default (1.8.6 greater than p114) - CGI has been patched since 1.8.6-p114 I believe those 2 dependencies can be dropped, and required_ruby_version of Mongrel itself bumped to 1.8.6 instead of 1.8.5, since due our changes in API compatibility may not build. Also, I've invested a couple of months creating rake-compiler: http://github.com/luislavena/rake-compiler Not a shameless self-promotion, but it has been working great for other projects and also removed the need to depend or require a Windows building environment to be able to release Windows gems. Add to that the concept of "fat binaries", and you get lot of happy Windows users on Ruby 1.8 or 1.9 :-) * Faster release cycles. Let's get serious. There was no release of Mongrel itself in the past YEAR. We all know Mongrel *is* stable, but things can get obsolete pretty easily in the software industry. I still use Mongrel on Windows for development and still deploy to Linux servers running it, or Windows intranets using mongrel_service. While some people had migrated to Passenger, there is still lot of value on Mongrel itself. So, ranting on a side, let's take the advantage of Git and GitHub, provide a working stable branch/master and start looking at quality patches. That is the purpose of the branch "spinoff" available in my fork: http://github.com/luislavena/mongrel/tree/spinoff Things that are missing there: * Steps to build the Java gem rake-compiler hasn't been extended to get Java extensions build, been waiting for some patches for that but no luck, so going to add a tasks/java.rake for now. * Ensure all tests pass, on all platforms. There are some weird tests that I just skipped on Windows, need further testing to see what is wrong with them, which is going to take me some time. Except from that and the 1.9 error described at the top of this email, everything passes on OSX and Linux. Something really weird I noticed is on threaded tests. They work differently with 1.8.6-p287 and 1.8.6-p368, I believe this is the main difference on the stalled tests. Going to do a multiruby pass and see the results (stay tuned). So, mainly, that is my reason for the spinoff branch, what do you guys think? Evan: I know you forked this branch, and committed some patches from mattetti, but while you see the value of those (specially one huge commit) I see a mess to trace back "what the heck" something was not working anymore. Let's keep this conversation and see if we can address those issues. I have a few days off from work that I want to take advantage of. Cheers, -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From evan at cloudbur.st Wed Jul 8 11:35:54 2009 From: evan at cloudbur.st (Evan Weaver) Date: Wed, 8 Jul 2009 08:35:54 -0700 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Message-ID: I'll bust up the mega-patch into discrete commits either today or Monday morning. What do you need re. Java? Just something in rake-compiler, or is there a problem in Mongrel? Did you already integrate the Ragel 6.5 fixes? Evan On Wed, Jul 8, 2009 at 5:23 AM, Luis Lavena wrote: > Hey Evan and others watching this list. > > I would love to release an official small point release for Mongrel in > the next couple of days. Mainly, the following things is what I'm > aiming: > > * Basic Ruby 1.9 functionality > > This means "it just built and run", it doesn't mean anything optimized > for 1.9. Bigger versions can address those details. > > There is a weird Zlib error I'm going to investigate. > > * Modernize infrastructure > > - Latest Ruby versions do not require fastthread, since has been > integrated by default (1.8.6 greater than p114) > - CGI has been patched since 1.8.6-p114 > > I believe those 2 dependencies can be dropped, and > required_ruby_version of Mongrel itself bumped to 1.8.6 instead of > 1.8.5, since due our changes in API compatibility may not build. > > Also, I've invested a couple of months creating rake-compiler: > > http://github.com/luislavena/rake-compiler > > Not a shameless self-promotion, but it has been working great for > other projects and also removed the need to depend or require a > Windows building environment to be able to release Windows gems. > > Add to that the concept of "fat binaries", and you get lot of happy > Windows users on Ruby 1.8 or 1.9 :-) > > * Faster release cycles. > > Let's get serious. There was no release of Mongrel itself in the past > YEAR. We all know Mongrel *is* stable, but things can get obsolete > pretty easily in the software industry. > > I still use Mongrel on Windows for development and still deploy to > Linux servers running it, or Windows intranets using mongrel_service. > > While some people had migrated to Passenger, there is still lot of > value on Mongrel itself. > > So, ranting on a side, let's take the advantage of Git and GitHub, > provide a working stable branch/master and start looking at quality > patches. > > That is the purpose of the branch "spinoff" available in my fork: > > http://github.com/luislavena/mongrel/tree/spinoff > > Things that are missing there: > > * Steps to build the Java gem > > rake-compiler hasn't been extended to get Java extensions build, been > waiting for some patches for that but no luck, so going to add a > tasks/java.rake for now. > > * Ensure all tests pass, on all platforms. > > There are some weird tests that I just skipped on Windows, need > further testing to see what is wrong with them, which is going to take > me some time. > Except from that and the 1.9 error described at the top of this email, > everything passes on OSX and Linux. > > Something really weird I noticed is on threaded tests. They work > differently with 1.8.6-p287 and 1.8.6-p368, I believe this is the main > difference on the stalled tests. > > Going to do a multiruby pass and see the results (stay tuned). > > So, mainly, that is my reason for the spinoff branch, what do you guys think? > > Evan: I know you forked this branch, and committed some patches from > mattetti, but while you see the value of those (specially one huge > commit) I see a mess to trace back "what the heck" something was not > working anymore. > > Let's keep this conversation and see if we can address those issues. I > have a few days off from work that I want to take advantage of. > > Cheers, > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exup?ry > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From luislavena at gmail.com Wed Jul 8 14:45:40 2009 From: luislavena at gmail.com (Luis Lavena) Date: Wed, 8 Jul 2009 15:45:40 -0300 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Message-ID: <71166b3b0907081145s724193c1nec1a217b445a2297@mail.gmail.com> On Wed, Jul 8, 2009 at 12:35 PM, Evan Weaver wrote: > I'll bust up the mega-patch into discrete commits either today or > Monday morning. Thank you. I know is a PITA, but really like to know what we are delivering with this new release. After assessing all the changes from History.txt, we can decide if it is forth a small point release or we bump the minor counter. > What do you need re. Java? Just something in rake-compiler, or is > there a problem in Mongrel? > I'm going to see if the java task can be executed from MRI or from JRuby, and better organize those in its own rakefile. Since I'm not a Java expert, will leave the integration with rake-compiler for later :-) > Did you already integrate the Ragel 6.5 fixes? > The fix I've in the spinoff branch already compile and build with latest Ragel, so guess everything is good there. Will double check just in case. > Evan > Thank you man and have a nice week. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From normalperson at yhbt.net Wed Jul 8 17:03:49 2009 From: normalperson at yhbt.net (Eric Wong) Date: Wed, 8 Jul 2009 14:03:49 -0700 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Message-ID: <20090708210349.GA15615@dcvr.yhbt.net> Luis Lavena wrote: > * Faster release cycles. > > Let's get serious. There was no release of Mongrel itself in the past > YEAR. We all know Mongrel *is* stable, but things can get obsolete > pretty easily in the software industry. > > I still use Mongrel on Windows for development and still deploy to > Linux servers running it, or Windows intranets using mongrel_service. > > While some people had migrated to Passenger, there is still lot of > value on Mongrel itself. Just another data point, some applications I deal with has been using the latest Mongrel SVN trunk revisions for well over a year now. Heck, it works even so well that nobody (besides myself) is even remotely interested in even trying them on anything else. -- Eric Wong From evan at cloudbur.st Wed Jul 8 18:00:47 2009 From: evan at cloudbur.st (Evan Weaver) Date: Wed, 8 Jul 2009 15:00:47 -0700 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: <20090708210349.GA15615@dcvr.yhbt.net> References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> <20090708210349.GA15615@dcvr.yhbt.net> Message-ID: Hmm...SVN trunk has the monster patch applied, but in individual commits. :-) I used git-svn and added it to http://github.com/fauna/mongrel/tree/trunk_from_svn, where it can lie unchanged for reference. Evan On Wed, Jul 8, 2009 at 2:03 PM, Eric Wong wrote: > Luis Lavena wrote: >> * Faster release cycles. >> >> Let's get serious. There was no release of Mongrel itself in the past >> YEAR. We all know Mongrel *is* stable, but things can get obsolete >> pretty easily in the software industry. >> >> I still use Mongrel on Windows for development and still deploy to >> Linux servers running it, or Windows intranets using mongrel_service. >> >> While some people had migrated to Passenger, there is still lot of >> value on Mongrel itself. > > Just another data point, some applications I deal with has been using > the latest Mongrel SVN trunk revisions for well over a year now. ?Heck, > it works even so well that nobody (besides myself) is even remotely > interested in even trying them on anything else. > > -- > Eric Wong > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From luislavena at gmail.com Wed Jul 8 18:37:05 2009 From: luislavena at gmail.com (Luis Lavena) Date: Wed, 8 Jul 2009 19:37:05 -0300 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> <20090708210349.GA15615@dcvr.yhbt.net> Message-ID: <71166b3b0907081537x592b0892l4a1ad667f0bbdb76@mail.gmail.com> On Wed, Jul 8, 2009 at 7:00 PM, Evan Weaver wrote: > Hmm...SVN trunk has the monster patch applied, but in individual commits. :-) > > I used git-svn and added it to > http://github.com/fauna/mongrel/tree/trunk_from_svn, where it can lie > unchanged for reference. > Awesome! thank you man, going to take a look tomorrow. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From normalperson at yhbt.net Thu Jul 9 05:56:24 2009 From: normalperson at yhbt.net (Eric Wong) Date: Thu, 9 Jul 2009 02:56:24 -0700 Subject: [Mongrel-development] [PATCH] always set FD_CLOEXEC on sockets post-accept() Message-ID: <20090709095624.GA2805@dcvr.yhbt.net> FD_CLOEXEC is not guaranteed to be inherited by the accept()-ed descriptors even if the listener socket has this set. This can be a problem with applications that fork+exec long running background processes and our client expects us to close a connection to signal a completed response: the connection would only be closed when the background process closed it (when it exited), not when Mongrel closes the socket. This issue was discovered with a server other than Mongrel but the issue here is applicable to Mongrel as well. --- This patch was based on the below branch (against c365ba16d12a14bdf1cc50a26f67dd3b45f5a4d8) > I used git-svn and added it to > http://github.com/fauna/mongrel/tree/trunk_from_svn, where it can lie > unchanged for reference. P.S.: I know I used to have a commit bit to the Mongrel SVN but I never really cared for it since I've always preferred the mailing-patches-around-for-review form of development. Let me know if pushing things to git://git.bogomips.org/mongrel.git for you to pull is preferable in the future. P.P.S: not sure if it's common around here, but I've long had mutt setup to pipe messages to "git am" directly from the index or pager and also diff syntax hilighting in the mutt pager. It all makes patch review/testing *much* nicer without having to context switch out of a terminal/screen. lib/mongrel.rb | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/lib/mongrel.rb b/lib/mongrel.rb index f09a617..0619abe 100644 --- a/lib/mongrel.rb +++ b/lib/mongrel.rb @@ -278,7 +278,11 @@ module Mongrel if defined?($tcp_cork_opts) and $tcp_cork_opts client.setsockopt(*$tcp_cork_opts) rescue nil end - + + if defined?(Fcntl::FD_CLOEXEC) + client.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) + end + worker_list = @workers.list if worker_list.length >= @num_processors -- Eric Wong From evan at cloudbur.st Mon Jul 13 18:34:26 2009 From: evan at cloudbur.st (Evan Weaver) Date: Mon, 13 Jul 2009 15:34:26 -0700 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: <71166b3b0907081537x592b0892l4a1ad667f0bbdb76@mail.gmail.com> References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> <20090708210349.GA15615@dcvr.yhbt.net> <71166b3b0907081537x592b0892l4a1ad667f0bbdb76@mail.gmail.com> Message-ID: Luis, how's it going so far? Evan On Wed, Jul 8, 2009 at 3:37 PM, Luis Lavena wrote: > On Wed, Jul 8, 2009 at 7:00 PM, Evan Weaver wrote: >> Hmm...SVN trunk has the monster patch applied, but in individual commits. :-) >> >> I used git-svn and added it to >> http://github.com/fauna/mongrel/tree/trunk_from_svn, where it can lie >> unchanged for reference. >> > > Awesome! thank you man, going to take a look tomorrow. > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exup?ry > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From luislavena at gmail.com Tue Jul 14 00:13:45 2009 From: luislavena at gmail.com (Luis Lavena) Date: Tue, 14 Jul 2009 01:13:45 -0300 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> <20090708210349.GA15615@dcvr.yhbt.net> <71166b3b0907081537x592b0892l4a1ad667f0bbdb76@mail.gmail.com> Message-ID: <71166b3b0907132113p2d58b219pe16f749defad0a36@mail.gmail.com> On Mon, Jul 13, 2009 at 7:34 PM, Evan Weaver wrote: > Luis, how's it going so far? > Lot of commits to review, will push to spinoff branch the upcoming days (returned to work today and lot to catchup after 1 week off). -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From evan at cloudbur.st Wed Jul 15 12:31:53 2009 From: evan at cloudbur.st (Evan Weaver) Date: Wed, 15 Jul 2009 09:31:53 -0700 Subject: [Mongrel-development] [PATCH] always set FD_CLOEXEC on sockets post-accept() In-Reply-To: <20090709095624.GA2805@dcvr.yhbt.net> References: <20090709095624.GA2805@dcvr.yhbt.net> Message-ID: Luis, is this one of the commits you already accepted for 1.1.6 and friends? Evan On Thu, Jul 9, 2009 at 2:56 AM, Eric Wong wrote: > FD_CLOEXEC is not guaranteed to be inherited by the accept()-ed > descriptors even if the listener socket has this set. ?This can > be a problem with applications that fork+exec long running > background processes and our client expects us to close > a connection to signal a completed response: the connection > would only be closed when the background process closed it > (when it exited), not when Mongrel closes the socket. > > This issue was discovered with a server other than Mongrel but > the issue here is applicable to Mongrel as well. > --- > > ?This patch was based on the below branch > ?(against c365ba16d12a14bdf1cc50a26f67dd3b45f5a4d8) > > ?> I used git-svn and added it to > ?> http://github.com/fauna/mongrel/tree/trunk_from_svn, where it can lie > ?> unchanged for reference. > > ?P.S.: I know I used to have a commit bit to the Mongrel SVN but I > ?never really cared for it since I've always preferred the > ?mailing-patches-around-for-review form of development. ?Let me know if > ?pushing things to git://git.bogomips.org/mongrel.git for you to > ?pull is preferable in the future. > > ?P.P.S: not sure if it's common around here, but I've long had mutt > ?setup to pipe messages to "git am" directly from the index or pager > ?and also diff syntax hilighting in the mutt pager. ?It all makes patch > ?review/testing *much* nicer without having to context switch out of a > ?terminal/screen. > > ?lib/mongrel.rb | ? ?6 +++++- > ?1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/lib/mongrel.rb b/lib/mongrel.rb > index f09a617..0619abe 100644 > --- a/lib/mongrel.rb > +++ b/lib/mongrel.rb > @@ -278,7 +278,11 @@ module Mongrel > ? ? ? ? ? ? ? if defined?($tcp_cork_opts) and $tcp_cork_opts > ? ? ? ? ? ? ? ? client.setsockopt(*$tcp_cork_opts) rescue nil > ? ? ? ? ? ? ? end > - > + > + ? ? ? ? ? ? ?if defined?(Fcntl::FD_CLOEXEC) > + ? ? ? ? ? ? ? ?client.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) > + ? ? ? ? ? ? ?end > + > ? ? ? ? ? ? ? worker_list = @workers.list > > ? ? ? ? ? ? ? if worker_list.length >= @num_processors > -- > Eric Wong > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From luislavena at gmail.com Wed Jul 15 19:13:40 2009 From: luislavena at gmail.com (Luis Lavena) Date: Wed, 15 Jul 2009 20:13:40 -0300 Subject: [Mongrel-development] [PATCH] always set FD_CLOEXEC on sockets post-accept() In-Reply-To: References: <20090709095624.GA2805@dcvr.yhbt.net> Message-ID: <71166b3b0907151613k4ebb22c4g253f53282f9860b0@mail.gmail.com> On Wed, Jul 15, 2009 at 1:31 PM, Evan Weaver wrote: > Luis, is this one of the commits you already accepted for 1.1.6 and friends? > I think is not. Will review, but everything will be reflected in the history file. > Evan > > On Thu, Jul 9, 2009 at 2:56 AM, Eric Wong wrote: >> FD_CLOEXEC is not guaranteed to be inherited by the accept()-ed >> descriptors even if the listener socket has this set. ?This can >> be a problem with applications that fork+exec long running >> background processes and our client expects us to close >> a connection to signal a completed response: the connection >> would only be closed when the background process closed it >> (when it exited), not when Mongrel closes the socket. >> >> This issue was discovered with a server other than Mongrel but >> the issue here is applicable to Mongrel as well. >> --- >> >> ?This patch was based on the below branch >> ?(against c365ba16d12a14bdf1cc50a26f67dd3b45f5a4d8) >> >> ?> I used git-svn and added it to >> ?> http://github.com/fauna/mongrel/tree/trunk_from_svn, where it can lie >> ?> unchanged for reference. >> >> ?P.S.: I know I used to have a commit bit to the Mongrel SVN but I >> ?never really cared for it since I've always preferred the >> ?mailing-patches-around-for-review form of development. ?Let me know if >> ?pushing things to git://git.bogomips.org/mongrel.git for you to >> ?pull is preferable in the future. >> >> ?P.P.S: not sure if it's common around here, but I've long had mutt >> ?setup to pipe messages to "git am" directly from the index or pager >> ?and also diff syntax hilighting in the mutt pager. ?It all makes patch >> ?review/testing *much* nicer without having to context switch out of a >> ?terminal/screen. >> >> ?lib/mongrel.rb | ? ?6 +++++- >> ?1 files changed, 5 insertions(+), 1 deletions(-) >> >> diff --git a/lib/mongrel.rb b/lib/mongrel.rb >> index f09a617..0619abe 100644 >> --- a/lib/mongrel.rb >> +++ b/lib/mongrel.rb >> @@ -278,7 +278,11 @@ module Mongrel >> ? ? ? ? ? ? ? if defined?($tcp_cork_opts) and $tcp_cork_opts >> ? ? ? ? ? ? ? ? client.setsockopt(*$tcp_cork_opts) rescue nil >> ? ? ? ? ? ? ? end >> - >> + >> + ? ? ? ? ? ? ?if defined?(Fcntl::FD_CLOEXEC) >> + ? ? ? ? ? ? ? ?client.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) >> + ? ? ? ? ? ? ?end >> + >> ? ? ? ? ? ? ? worker_list = @workers.list >> >> ? ? ? ? ? ? ? if worker_list.length >= @num_processors >> -- >> Eric Wong >> _______________________________________________ >> Mongrel-development mailing list >> Mongrel-development at rubyforge.org >> http://rubyforge.org/mailman/listinfo/mongrel-development >> > > > > -- > Evan Weaver > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry From evan at cloudbur.st Mon Jul 20 16:21:49 2009 From: evan at cloudbur.st (Evan Weaver) Date: Mon, 20 Jul 2009 13:21:49 -0700 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: <71166b3b0907132113p2d58b219pe16f749defad0a36@mail.gmail.com> References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> <20090708210349.GA15615@dcvr.yhbt.net> <71166b3b0907081537x592b0892l4a1ad667f0bbdb76@mail.gmail.com> <71166b3b0907132113p2d58b219pe16f749defad0a36@mail.gmail.com> Message-ID: Want me to work on this? I have some time this week. Evan On Mon, Jul 13, 2009 at 9:13 PM, Luis Lavena wrote: > On Mon, Jul 13, 2009 at 7:34 PM, Evan Weaver wrote: >> Luis, how's it going so far? >> > > Lot of commits to review, will push to spinoff branch the upcoming > days (returned to work today and lot to catchup after 1 week off). > > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exup?ry > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From wyhaines at gmail.com Mon Jul 20 16:52:19 2009 From: wyhaines at gmail.com (Kirk Haines) Date: Mon, 20 Jul 2009 14:52:19 -0600 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Message-ID: Hey guys. At EY, we have a minor fork of Mongrel that we are carrying around which has a couple features that would be nice to see pulled back into the main line of Mongrel. Key changes for our minor fork is that it drops the pid file immediately after daemonizing, and it returns a proper 400 response if the HTTP parser encounters bad HTTP, which lets it play more nicely with proxies. Would you guys like patches for these two little changes? Kirk Haines From evan at cloudbur.st Mon Jul 20 16:57:09 2009 From: evan at cloudbur.st (Evan Weaver) Date: Mon, 20 Jul 2009 13:57:09 -0700 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Message-ID: Yes please (at least for me). Evan On Mon, Jul 20, 2009 at 1:52 PM, Kirk Haines wrote: > Hey guys. At EY, we have a minor fork of Mongrel that we are carrying > around which has a couple features that would be nice to see pulled > back into the main line of Mongrel. ?Key changes for our minor fork is > that it drops the pid file immediately after daemonizing, and it > returns a proper 400 response if the HTTP parser encounters bad HTTP, > which lets it play more nicely with proxies. > > Would you guys like patches for these two little changes? > > > Kirk Haines > _______________________________________________ > Mongrel-development mailing list > Mongrel-development at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-development > -- Evan Weaver From luislavena at gmail.com Mon Jul 20 17:18:41 2009 From: luislavena at gmail.com (Luis Lavena) Date: Mon, 20 Jul 2009 18:18:41 -0300 Subject: [Mongrel-development] TODO list for 1.1.6 release In-Reply-To: References: <71166b3b0907080523r458a237btb6edb2ae9c219a72@mail.gmail.com> Message-ID: <71166b3b0907201418i493026f0y22b073754f88afad@mail.gmail.com> On Mon, Jul 20, 2009 at 5:52 PM, Kirk Haines wrote: > Hey guys. At EY, we have a minor fork of Mongrel that we are carrying > around which has a couple features that would be nice to see pulled > back into the main line of Mongrel. ?Key changes for our minor fork is > that it drops the pid file immediately after daemonizing, and it > returns a proper 400 response if the HTTP parser encounters bad HTTP, > which lets it play more nicely with proxies. > > Would you guys like patches for these two little changes? > Yes please, since EY mongrel fork didn't start from fauna's one -- so is not showing at GitHub network. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exup?ry