Camelia, the Perl 6 bug

IRC log for #mojo, 2010-07-24

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:35 xantus_ http://wiki.livedoor.jp/mojolicious/
00:35 garfield [ Mojolicious�ɥ������������ܸ����ץ������� - livedoor Wiki�ʥ������� ]
01:01 ask joined #mojo
01:34 dotan left #mojo
01:38 fod joined #mojo
02:42 janus joined #mojo
03:20 su-bzero joined #mojo
03:37 Alias_ joined #mojo
03:40 zakame sri: how do I give you debug output? also updated the issue just now, I see only 1 test failing now
03:41 zakame the very last test in fact, kinda puzzling too, I feel like there's some encoding funk going on
04:04 tholen42 joined #mojo
04:20 ask joined #mojo
04:56 ashleydev joined #mojo
06:20 Foxcool joined #mojo
06:33 pid joined #mojo
06:51 abqar_ joined #mojo
06:52 pid left #mojo
07:37 yko joined #mojo
07:45 Alias joined #mojo
08:02 spleenjack joined #mojo
09:30 zoo-zed joined #mojo
09:37 dotan joined #mojo
10:18 dotan joined #mojo
10:28 sri zakame: not possible
10:28 sri the problem was fixed yesterday, you must be doing something wrong
10:29 dotan joined #mojo
10:52 vti sri: if i do async client request how do i get decoded json answer? $client->res->json?
10:53 sri just like you would for a sync request
10:54 sri you are just forced to use the callback
10:54 sri otherwise there are really no differences
11:56 vti sri: speaking about websocket proxing... should i create another loop for the client that is connection inside of a websocket to another websocket?
11:57 vti looks like that original websocket is blocked, but backend websocket connection works ok
11:58 sri separate loops would block each other
11:58 sri they all have to use the same, or you are screwed
11:59 sri $self->client->async and you should be fine
12:00 vti i get this warning and then original connection is closed Use of uninitialized value in string eq at /Users/vti/dev/showmetheshell.com/script/​../extlib/mojo/lib/Mojo/Server/Daemon.pm line 342.
12:00 vti that checks 101 response code
12:01 sri no idea, you are possibly doing something wrong
12:01 vti i know that :D
12:01 vti i wouldn't ask
12:04 vti sri: https://gist.github.com/2bf62237efb34b84e8d2
12:07 sri i don't see anything obvious
12:11 GitHub34 joined #mojo
12:11 GitHub34 mojo: master Sebastian Riedel * c40eba1 (8 files in 1 dirs): pod cleanup - http://bit.ly/aozkIl
12:11 GitHub34 left #mojo
12:13 vti looks like that as soon the internal websocket client is connected external disconnects
12:14 vti but finished callback is not called... hm
12:15 vti i think i got it
12:16 vti sri: is there smth like connected callback that is similar to finished but works of course opposite way? :)
12:17 sri huh?
12:17 sri the client callback *is* a connected callback
12:18 vti ok, ignore me
12:18 * sri ignores vti
13:03 vti sri: controller method is called before handshake is finished? because if i connect in receive_message callback it works flawlessly, but this way i have to send smth like "ping" or "init" command from a browser, just to wake it up
13:05 * sri can't follow
13:06 yko In wich way i can set up some priority to route? for example i have '/text' and '/:id' routes and i want '/:id' match everything except '/text' ?
13:06 sri yko: fifo
13:06 sri just put /text before /:id
13:07 vti if i understand the problem right, i think that if i connect to remote websocket inside a websocket it does it too early, res code is not yet available, and the main connection fails, but if i connect to remote webscoket in receive_message callback (i do that only on the first arrived message) the first handshake is done correctly
13:08 vti and both connection are established
13:09 sri vti: have you verified that? because it seems rather impossible
13:10 sri if the client is async, the only way to trigger the client callback early would be a connect() fail
13:10 sri the ioloop never ticks, so there is no data exchanged
13:10 sri the handshake can't happen
13:11 vti that's why i asked about connected callback, where i can register some stuff as soon as handshake is done in a controller
13:11 sri your $self->finish seems rather naive though
13:12 sri if the connection fails you would want to rather deny the handshake
13:12 sri not shutdown everything
13:12 sri vti: as far as i can see you have everything you need
13:12 sri you just don't use it right
13:14 vti not the backend but the main websocket connection fails
13:15 sri i don't understand, please get the facts straight and turn it into a solid proposal
13:15 yko thanx. that's my bug then
13:15 sri (if you think there is a limitation in the design)
13:17 sri and especially no more wall of text pastes...just test cases we can all benefit from
13:17 sri so much wasted energy...
13:17 * yko need a tool to test routes :\
13:18 vti i waste energy too
13:19 sri yes you do
13:21 yko waypoint('/')->route('/test') vs route('/:groovy') -- groovy gets priority :( huh
13:22 sri you know the drill, if you think there is a bug make a test case
13:23 sri people get lazy around here, i'll demand test cases again from now on for every question ;p
13:25 sri number of contributions is going down while the number of questions goes up exponentially, don't like that :S
13:31 GitHub143 joined #mojo
13:31 GitHub143 mojo: master Sebastian Riedel * 743e604 (1 files in 1 dirs): pod cleanup - http://bit.ly/dpfc4z
13:31 GitHub143 left #mojo
13:32 sri vti: that warning is for you
13:44 yko :))
13:46 yko everybody lies (c) House MD
13:46 yko everybody lazy (c) sri
13:47 * yko hides in shadow.
13:48 yko strange... no blastwaves today
13:50 marcus hi
13:51 * marcus has internet after a week in the irish countryside
13:52 sri oh noes
13:53 * sri takes ykos sniper rifle and hides it somewhere
13:57 marcus sri: did anything interesting this week?
13:57 sri not much besides melting
13:58 sri oh yea, we picked a code name scheme for mojolicious :)
13:58 vti ok, i found two problems, fixed them and it works flawlessly
13:58 sri majot releases are now named after unicode chars
13:58 sri vti: show
13:58 vti i don't have a test case
13:59 sri thats not so nice but show anyway, i've found a problem too and have a test case without a fix :)
14:00 vti 1. 101 response code is set *after* dispatching, setting it inside a controller before doing an async connection fixes it
14:00 sri hmm
14:01 vti 2. websocket object inside of a second websocket connection gets fucked up, i had to save $tx object to be able to call send_message
14:02 sri that doesn't sound right
14:02 vti but now i have a working two way "proxy" websocket connection
14:02 sri but you're doing it wrong
14:04 vti hard to argue :D
14:08 vti probably the problem is deeper
14:09 sri if there actually is a problem
14:09 sri you've not even presented a unit test yet
14:10 marcus o/' we've only just begun o/'
14:11 vti sri: i am on my way, i was just telling what i've came up with so far, if you don't want any discussion i won't write anything
14:11 spleenjack joined #mojo
14:11 sri vti: i would be happy to discuss if there was anything to discuss -.-
14:13 marcus KILL ALL HUMANS
14:13 sri !
14:14 vti is it only me who gets this kind of attitude =/ i'll be back with a test case
14:14 vti left #mojo
14:14 marcus ouch.
14:14 sri Oo
14:16 sri what the hell am i supposed to do if i don't understand someone? :(
14:16 marcus write a people-parser?
14:16 sri i really need to stop interpreting questions and just ask for better ones :/
14:17 sri only makes me sound rude
14:17 marcus yepp
14:17 sri the sad thing is i just meant to help :,(
14:19 marcus yeah, that is pretty sad. What about enslaving humanity?
14:20 sri yea...screw helping... back to world domination plans!
14:28 zakame sri: I did that off a fresh clone, with no previous mojo installed
14:28 sri zakame: esskar tested it yesterday and everything passed
14:29 sri on windows
14:29 sri i don't think esskar screwed up
14:29 sri his reports were very detailed
14:29 sri debug logs and everything
14:30 zakame how do I do a debug log?
14:30 sri MOJO_LOG_LEVEL=debug
14:37 vti joined #mojo
14:37 vti https://gist.github.com/25a565df562fbee7aedc
14:37 vti test passes when line32 is uncommented
14:39 marcus vti++
14:59 ashleydev joined #mojo
15:51 ashleydev_ joined #mojo
16:14 Alias joined #mojo
16:51 GitHub55 joined #mojo
16:51 GitHub55 mojo: master Sebastian Riedel * 5a2293b (4 files in 3 dirs): fixed a websocket finished callback bug
16:51 GitHub55 mojo: master Sebastian Riedel * ef39ede (5 files in 5 dirs): fixed a websocket subrequest bug
16:51 GitHub55 mojo: master commits 743e604...ef39ede - http://bit.ly/9L03ld
16:51 GitHub55 left #mojo
16:51 sri vti: thats something i can work with :)
16:53 vti sri: thank you
16:53 sri it was actually a very tricky loop scheduling bug... no way to get even close to it without a test
16:55 sri btw. if you really want a connected callback there is a trick i'm testing now
16:55 sri $self->tx->handshake->finished(sub { $handshake += 2 });
16:55 sri this one will fire after the handshake transaction finishes
16:55 sri but you shouldn't need it
16:56 vti my scenario works now flawlessly
16:56 sri \o/
16:56 vti i just removed that 101 hack
16:57 sri if you can think of any more untested scenarios, please send a patch
16:58 sri vti: i didn't mean to be rude earlier, was just trying to get the neccessary information out of you to actually help :(
16:59 vti that's ok, i needed to cool down too =/
16:59 sri from now on i'll just step back and ask for better explanations
17:01 sri btw. as a result the daemon code got a lot more readable, i think it's actually pretty now :)
17:02 sri very flat and simple, hope we can get the client there too
17:04 vti using websockets instead of pipes or socket pairs is damn simple :D
17:05 sri websockets are awesome, dunno why there is so much hate
17:05 sri well, ok, the handshake challenge crap needs to die...
17:13 dotan joined #mojo
17:40 vti ok, i am ready to record a temporary screencast
17:47 vel joined #mojo
17:48 vti sri: http://core.org.ua/~vti/tmp/showmetheshell.com.m4v
17:48 garfield http://xrl.us/bhube9
17:48 vti revolution is close!
17:50 sri vti: wow, looks very good
17:51 sri htop is a nice example
18:30 noah joined #mojo
18:42 noah IO::Socket::SSL works ok while Mojo::Client can't access https sites, no matter use carets.pem or not
18:43 noah carets
18:43 sri noah: you shouldn't have to use any certs
18:44 sri noah: could it be an ipv6 problem?
18:44 noah sorry, typo. forget about that...I tried not use cacerts.pem, but not works
18:45 sri and what makes you sure IO::Socket::SL doesn't work?
18:45 sri umm...does work
18:45 sri do tests pass if you enable TEST_TLS=1?
18:46 noah IO::Socket::SSL works ok, LWP::UserAgent too. MoJo::client doesn't work
18:46 sri do the tests pass if you enable tls tests?
18:47 sri also, which version are you using?
18:47 noah Sorry, I'll give u s
18:47 sri why did you come here then?
18:48 noah damn mibbit... sorry I will give u details tomorrow, it's 3:00am here and I am using iPod touch
18:49 sri hmm, ok
18:49 noah have a nice day, thanks:)
18:51 noah joined #mojo
18:54 marcus vti: sweet video
19:01 vti marcus: think of a way how people can trust this service! :D
19:02 marcus vti: ssh
19:02 marcus https even
19:02 marcus and running on their own web servers
19:02 noah sri: I decided to get up and run the test as you suggested, with TEST_TLS, websocket_proxy_lite_app.t failed
19:02 noah getpeername() on closed socket GEN6 <--- error
19:02 vti marcus: right... :)
19:03 sri noah: ipv6 error
19:03 marcus vti: sell it to dreamhost
19:05 sri noah: how did you confirm that IO::Socket::SSL works?
19:06 sri noah: MOJO_NO_IPV6=1 might fix it
19:07 sri ok, think i'll disable ipv6 now by default
19:07 noah sri: I tried use IO::Socket::SSL directly in perl one-liner, it get the  content from https site
19:08 sri noah: ipv6 or ipv4?
19:08 noah sri: ipv4, ipv6 is disabled on my linux
19:08 sri thats not auto magic
19:09 sri please try MOJO_NO_IPV6=1
19:09 dotan joined #mojo
19:09 noah sri: let me try.. wait a sec
19:10 sri all these ipv6 problems are so annoying
19:10 sri i'll disable it in the next release
19:11 noah TEST_CLIENT=1 TEST_TLS=1 MOJO_NO_IPV6=1 make test <---- more errors, and still get getpeername() on closed socket GEN6
19:12 sri yea, test will fail anyway
19:12 sri please just make a client request
19:12 sri the server will always try to use ipv6 :(
19:13 noah you use google.de in client.t, but within different country, google will redirect users to different hosts, so client.t test will fail in this situation
19:13 noah ok
19:13 sri but i'm going to kill ipv6 support anyway
19:14 noah sri:I tried this, MOJO_NO_IPV6=1 perl -MMojo::Client -le 'print Mojo::Client->new->get("https://gmail.com")->res->body;'
19:14 noah no luck though
19:14 noah still no content
19:14 noah without https, it works ok
19:15 sri well, it is ipv6
19:15 sri why do you have IO::Socket::INET6 installed if ipv6 is disabled on your system anyway?
19:16 noah sri: I am not sure I installed it..., maybe this perl I am using are compiled automaticlly with default options...
19:16 noah s/are/is/
19:16 sri it's a cpan module
19:17 sri whatever, no point arguing...ipv6 needs to die
19:18 noah sri: I have checked my system, IO::Socket::INET6 is not installed
19:20 spleenjack noah: may be use IO::Socket::SSL 'debug3' give more info
19:22 sri interesting
19:22 sri ok, then i'm out of ideas
19:29 noah sri: I modified IOLoop.pm, use debug3 as spleenjack suggested, log is here: http://is.gd/dEMBd
19:29 garfield [ Paste Code ]
19:32 noah still using this oneliner for test: MOJO_NO_IPV6=1 perl -MMojo::Client -le 'print Mojo::Client->new->get("https://gmail.com")->res->body;'
19:34 noah both tried this on linode(ubuntu9.10) vps and my laptop(gentoo), both using perl 5.12
19:36 noah just tested it on Perl 5.11, failed again.
19:36 noah Mojolicious and IO::Socket::SSL both are the latest build
19:39 noah I will stick to LWP::UserAgent until Mojo::Client works for SSL connection, almost 4:00am here now, gotta sleep, thanks anyway, bye
19:43 GitHub60 joined #mojo
19:43 GitHub60 mojo: master Sebastian Riedel * b2e88c7 (2 files in 2 dirs): enable tls tests by default and disable ipv6 reliably - http://bit.ly/8Y1Gdd
19:43 GitHub60 left #mojo
19:43 sri ok, i want to see more reports
19:49 sri wait, wasn't tls broken in the cpan version?
19:49 sri ohoh
19:49 sri lol
19:49 sri "- Fixed poll + tls support."
19:49 sri yea, i should read my Changes entries -.-
19:50 sri oh well, at least i found a more reliable way to enforce ipv4
19:53 dotan joined #mojo
19:53 dotan left #mojo
19:59 sri guess hunting bugs you've already fixed recently is a sure sign you need a break :)
20:13 dotan joined #mojo
20:13 dotan left #mojo
20:42 marcus sri: did you talk to memowe about new things to test?
20:43 sri marcus: nope
21:18 marcus memowe: sigh?
21:50 marcus sri: need to get a mojo article in on perl.com now ;)
21:51 sri well volunteered :D
21:52 marcus ;)
21:53 marcus "Mojo - The real LWP NG"
21:54 marcus http://www.perl.com/pub/2002/08/20/perlandlwp.html - redone with mojo? ;)
21:54 garfield [ Web Basics with LWP - Perl.com ]
21:54 garfield http://xrl.us/bhubuh
21:54 sri "Mojo - HTTP is hard, lets go shopping"
21:55 marcus </perl barbie>
22:07 doubi joined #mojo
22:21 dotan joined #mojo
22:46 vti sri: fixing that bug actually made my websocket console working
22:47 sri :)
22:47 vti it was so long there
22:47 sri was a complicated one that could theoretically cause countless different side effects
22:48 sri not just for websockets
22:48 sri everything async
22:52 sri http://groups.google.com/group/comp.lang.java​script/browse_thread/thread/ab729e7cd6ee78f6 # wow, people really don't like sencha :o
22:52 garfield http://xrl.us/bhubw2
23:01 sri vti: more tests welcome ;)
23:01 sri i would actually love to get more *working* test cases -.-
23:01 * sri pokes memowe
23:03 sri Zzz
23:07 vti sri: wait
23:07 vti a sec
23:07 vti oh, well :)
23:07 * sri wakes up again... *grumpy*
23:07 vti sri: http://core.org.ua/~vti/tmp/websocket-console.m4v
23:08 sri some eyecandy could soothe me
23:09 vti does the job!!
23:09 vti good night :)
23:10 sri hey, thats cool
23:10 * sri wants
23:10 sri nn!
23:10 sri Zzz
23:22 vti websocket console source code http://github.com/vti/wsconsole!
23:40 Getty joined #mojo
23:40 Getty left #mojo
23:43 stephan48 getty == sees cat && poe && moose as worlds allheilsl�sung(sry cant tranalate)
23:51 dotan sri: the sencha rant is by a David Mark, whom the Hacker News posters remind us is a bit of a troll. Deeper in the Sencha Touch post he off-handedly dismisses every Javascript framework (jQuery, dojo, mootools...) as crap

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary