Hopbot log for 2009-04-05 - Helma IRC channel: #helma on irc.freenode.net

2009-04-05:

[6:34] <decke> hannesw: good morning... how about updating jetty for helma 1.7 ?
[6:36] <hannesw> good morning decke
[6:36] <hannesw> hm, minor update, or major one?
[6:38] <decke> hannesw: it's jetty 5.1 that is used at the moment i think... and jetty 6 would really be a great improvement performance wise..
[6:38] <hannesw> ok. jetty 6.1 is listed as stable here http://docs.codehaus.org/display/JETTY/Downloading+Jetty
[6:38] <hannesw> together with jetty 5.1
[6:38] <hannesw> i can see what would be involved.
[6:39] <decke> i've once come to that point
[6:39] <decke> when i thought about doing some sort of "part of the requests should be classified in the request queue"
[6:41] <decke> so there were some things to do in jetty to "tag" requests and reorder the waiting queue to prefer the tagged ones...
[6:43] <decke> short story short: jetty 6 is an performance improvement and also has a very different API and working scheme
[6:44] <decke> ah i called this "Request based Priority Queues" some sort of QoS
[6:56] <hannesw> ok, checking now.
[6:57] <decke> from looking at jetty's development the only alternative would be 6.1-stable
[6:59] <hannesw> hm, lots of compile errors unfortunately
[6:59] <hannesw> classes have moved quite a bit between jetty 5.1 and 6.1
[6:59] <decke> yeah that's what i meant with "jetty 6 has a different architecture"
[7:00] <decke> maybe i wasn't clear enough... there are HUGE differences between 5 and 6 ... they have completely restructured jetty
[7:01] <decke> i have already worked on a jetty6 patch a year ago and got it at least working somehow...
[7:02] <hannesw> i'll give it a try.
[7:02] <decke> doesn't helma-ng use a newer jetty version?
[7:03] <hannesw> yes, helma-ng uses jetty 6 (or 6.1)
[7:04] <hannesw> and we're using only the servlet api in ng :-)
[7:04] <hannesw> nope, wrong...
[7:04] <hannesw> but we don't have the deep dependencies like in helm a1
[7:06] <decke> i will try to find my helma vs. jetty6 experiments and generate a patch ... maybe it helps a bit (though it doesn't work yet)
[7:09] <hannesw> that would be great
[7:09] <hannesw> after trying a bit it looks like it's just too much changed.
[7:11] <decke> yeah the architecture is very different...
[7:11] <decke> but they also implemented a lot of nifty features like Filters
[7:11] <decke> Queues and things like that...
[7:12] <decke> that really helps you whenever you want to do something in the request queues... (which is why i probably should have a look at helma-ng)
[7:14] <decke> brb
[7:20] <hannesw> just trying to figure out where the ajp connector is in jetty 6.1.16.
[7:20] <hannesw> the sources are in extras/ajp
[7:20] <hannesw> but it doesn't seem to be in any jar file...
[7:20] <decke> i have here jetty-7.0.0pre1.jar and jetty-ajp-7.0.0pre1.jar
[7:21] <decke> and util
[7:21] <decke> so the tests were with jetty7 - but architecture between 6 and 7 hasn't changed that much... so it should be easier to switch to 6.1
[7:22] <hannesw> ok, found it in lib/ext.
[7:23] <hannesw> yes, if we make the step to 6.1 you can probably replace it with 7.
[7:25] <decke> no there are no good reasons to use 7 ... at least for me
[7:26] <decke> i have to merge the patch with helma-trunk first
[7:26] <decke> there are a few merge conflicts atm
[7:27] <decke> ah you have changed a few things in ApplicationManager.java yet
[7:27] <hannesw> yes. maybe wait a bit, I try if i can do it myself (once i have all dependencies in place)
[7:42] <hannesw> decke: I'm giving up (for now)
[7:42] <hannesw> If you have a patch I'll be happy to look at it.
[7:48] <decke> hannesw: the good thing... most of my conflicts are things you already improved in trunk...
[7:48] <decke> so the patch gets smaller and smaller...
[7:48] <hannesw> yep, that's good :-)
[7:54] <decke> hannesw: http://docs.codehaus.org/display/JETTY/Porting+to+jetty6 that helps a bit...
[8:12] <decke> hannesw: is it only me or do they really have dropped the AJP13 connector ?
[8:13] <hannesw> nope, this is in helma.main.JettyServer now.
[8:13] <decke> ah it looks like they dropped it for 6.0 and reimplemented it with 6.1
[8:14] <decke> yes i try to move my code fragments to JettyServer.java now ... but i have no replacement for AJP there...
[8:16] <hannesw> It's here: http://www.mortbay.org/apidocs/org/mortbay/jetty/ajp/Ajp13SocketConnector.html
[8:16] <decke> ah got it... SocketConnector
[8:16] <decke> +++
[8:16] <hannesw> packaged in a separate jar in lib/ext.
[9:18] <decke> hannesw: don't know if it helps anymore... but here is what is left - completely untested - http://home.bluelife.at/tmp/helma-jetty7-v1.patch
[9:19] <hannesw> thanks decke. looks not too bad.
[9:20] <decke> hannesw: but probably is... doesn't compile yet (context things aren't fixed yet)
[10:42] <decke> hannesw: look's like i'm triggering a bug in trunk (without the jetty6 patches)
[10:42] <decke> output when started with ./start.sh on FreeBSD is: Error: Server already running on this port: 0.0.0.0:8080
[10:42] <decke> but that's definitely not the case...
[10:57] <decke> hannesw: works fine with r9334 so r9335 is the bad one... https://dev.helma.org/trac/helma/changeset/9335
[11:14] <decke> hannesw: FIRST request handled with jetty 6.1 :o)
[11:35] <hannesw> decke: so the server check does not work on FreeBSD? You always get that error?
[11:36] <decke1> hannesw: yes i always get that error...
[11:36] <decke1> don't know for linux...
[11:46] <hannesw> decke: it works for me on linux. could you maybe check what the exception is we're catchin in line ~392?
[11:47] <hannesw> line 404 in current svn snapshot
[11:48] <decke> java.net.BindException: Can't assign requested address
[11:49] <hannesw> hm... can't assign requested address. whatever that means... :-)
[11:49] <hannesw> thanks
[11:50] <decke> PORT: 8080 Addr: chii.bluelife.at/10.9.1.14
[11:50] <decke> that are the parameters that are passed...
[11:50] <decke> the last one looks buggy ;o)
[11:51] <hannesw> and you don't have a server running on that port?
[11:51] <decke> ah okay that's your toString() of InetEndpoint
[11:52] <decke> no i don't ... doesn't matter what port i try
[11:52] <decke> checked netstat to be sure...
[11:56] <decke> hm the source of java.net.ServerSocket and java.net.plainSocketImpl would be interesting...
[11:58] <hannesw> don't you have it?
[12:01] <decke> hannesw: good that FreeBSD builds jdk16 from source... so yes i have it ... i'm already looking at it...
[12:15] <decke> hannesw: works with 127.0.0.1 and 0.0.0.0 but not with 10.9.1.14 (which is the LAN IP address)
[12:16] <decke> ah another part of the puzzle...
[12:18] <decke> somewhere helma tries to figure out the host's IP and it decides that "chii.bluelife.at" is the hosts name and looks up that name and gets 10.9.1.14 as IP for it
[12:19] <decke> but now i'm sitting in the sun connected by WLAN - so i have an other IP Address
[12:19] <decke> and helma tries to bind() to the LAN ip address which the system doesn't know
[12:19] <decke> so that's the reason why all this fails...
[12:20] <hannesw> decke: ok. what do you define as web server address/port?
[12:21] <hannesw> chii.bluelife.at:8080?
[12:21] <decke> but one could argue that this is a DNS problem and my laptop should point to it's correct address when he is asked for it...
[12:21] <decke> currently it's started with the default start.sh
[12:21] <decke> so whatever is in there or helma does automagically
[12:24] <decke> hm there is something not quite right i guess.. but it's a bit of a bug of my configuration too...
[12:24] <decke> he reports "Server already running on this port: 0.0.0.0:8080" where he means 10.9.1.14:8080
[12:30] <decke> is there a way to tell helma on which IP it should bind?
[12:32] <decke> ah okay the port parameters can start with an ip address...
[12:33] <decke> mhm when setting 10.9.2.14:8080 it works....
[12:34] <decke> but when using 0.0.0.0:8080 in the config it does not work because what actually is send to the bind parameter isn't 0.0.0.0 but 10.9.1.14 because helma somewhere looked up 0.0.0.0 => 10.9.1.14
[12:36] <hannesw> decke: I just committed a fix, can you check (with your wlan setup) if it fixes the problem?
[12:36] <hannesw> (hope it's not too hard with you already patched source code :-)
[12:43] <decke> hannesw: it was worth it! - works as expected now
[12:44] <hannesw> great. thanks a lot!
[12:44] <hannesw> also got rid of the custom InetEndpoint class
[12:47] <decke> okay now back to jetty...
[12:48] <decke> hm... looks like i got it ...
[12:49] <decke> first real request served with jetty 6.1.16
[12:52] <hannesw> yippie!
[12:54] <decke> http://home.bluelife.at/tmp/helma-jetty6-v2.patch
[12:56] <decke> there are a few things missing - especially context things
[12:56] <decke> but it already does something
[17:22] <decke> i'm very proud to announce, that i have succeeded... i can serve the welcome app (and probably more) with jetty 6.1
[17:22] <decke> http://home.bluelife.at/tmp/helma-jetty6-v3.patch
[17:22] <decke> for those of you that love screenshots: http://home.bluelife.at/tmp/helma-jetty6-success.png
[17:23] <decke> hannesw , zumbrunn @ knock knock
[17:23] <hannesw> yep?
[17:23] <hannesw> oh, cool :-)
[17:23] <decke> http://home.bluelife.at/tmp/helma-jetty6-success.png
[17:24] <hannesw> nice. I'll look at it.
[17:24] <hannesw> was it a lot of work?
[17:24] <decke> no just one day *g*
[17:25] <hannesw> thanks!
[17:25] <decke> there are a few sharp edges but it actually works...
[17:26] <hannesw> what are the sharp edges?
[17:26] <decke> more testing is of course needed but well not today *g*
[17:26] <decke> getContext() / addContext()
[17:26] <decke> and getPathPattern() can probably be removed i think...
[17:27] <decke> those patterns are not used anymore
[17:27] <decke> and i had to reorder application/servlet and static/resource binding
[17:27] <decke> because the app binds to / and static to /static
[17:27] <decke> so the app ended up serving all requests
[17:29] <decke> and the ajp13 connector hasn't been testet at all yet..
[17:29] <hannesw> i see
[17:29] <hannesw> i'll test it, maybe tomorrow.
[17:30] <decke> would be cool :o)
[17:53] <decke> possible spam: http://www.bluelife.at/articles/158/
[17:54] <zumbrunn> definitely *not* spam :-)
[17:55] <decke> zumbrunn: i've (nearly) finished it :o)
[17:55] <decke> it needed about a year of bitrotting before i got my ass up and updated the patch...
[17:56] <zumbrunn> :-)
[17:56] <zumbrunn> yeah, I've been lurking here all along today

 

 

In the channel now:

Logs by date: