Conversation with #inferno at Fri Oct 31 18:26:06 2008 on powerman-asdf@irc.freenode.net (irc) (18:26:06) #inferno: The topic for #inferno is: Inferno and Limbo | Website: http://www.vitanuova.com/inferno/index.html | Documentation: http://www.vitanuova.com/inferno/docs.html | Wiki: http://canto.hopto.org/wiki/1/index.html | Tutorial: http://www.resc.rdg.ac.uk/twiki/bin/view/Resc/InfernoTutorial | Mailing list archives: http://dir.gmane.org/gmane.os.inferno.general (18:33:01) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (18:33:32) newmanbe [n=btdn@138.74.131.25] entered the room. (18:56:29) btdn [n=btdn@138.74.131.25] entered the room. (19:15:19) newmanbe left the room (quit: Read error: 110 (Connection timed out)). (19:36:59) btdn left the room (quit: Read error: 110 (Connection timed out)). (21:21:30) btdn [n=btdn@138.74.131.25] entered the room. (03:26:03) underspecified left the room (quit: ). (04:35:49) underspecified [n=eric@isa7-dhcp-116-122.naist.jp] entered the room. (08:29:10) underspecified left the room (quit: ). (08:47:17) underspecified [n=eric@isa7-dhcp-116-122.naist.jp] entered the room. (09:06:34) anothy left the room (quit: Read error: 110 (Connection timed out)). (09:22:37) btdn left the room (quit: Read error: 110 (Connection timed out)). (10:15:29) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (10:16:27) KillerX left the room (quit: Read error: 54 (Connection reset by peer)). (11:10:54) underspecified left the room (quit: ). (12:36:18) underspecified [n=eric@softbank220043052011.bbtec.net] entered the room. (13:56:21) btdn [n=btdn@138.74.131.25] entered the room. (14:18:23) btdn left the room (quit: Read error: 110 (Connection timed out)). (14:44:39) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (15:28:53) anothy [n=a@c-98-221-104-176.hsd1.nj.comcast.net] entered the room. (16:15:44) ***powerman wonder is there any somethingfs service in Inferno which able to support concurrent operations... (16:17:32) powerman: there styxflush.m, but it's not used by even single app (16:18:06) powerman: the styxservers.m use 3 threads to serve non-concurrent blocking I/O... (16:18:53) powerman: the ftpfs.b Tflush handler leave no chances it support concurrent requests too... (16:23:30) powerman: Maybe I miss something and support for concurrent requests is something redundant and/or needless and considered harmful because it lead to overcomplicated implementation? (16:24:48) powerman: In this case, can anybody enlighten me and give me any idea how to design servicefs I need to develop right now without support for concurrent requests? (17:02:30) anothy: look at the dns server. it supports multiple outstanding (concurrent) requests. (17:03:18) anothy: (i'm pretty sure, because i wrote the first draft of it) (17:03:41) powerman: anothy: dns doesn't do styx :) it do file2chan (17:04:36) anothy: it's all styx. that's how all file access is done. (17:05:40) powerman: I know. But question is how to write service which able to serve a little more than just r/w for one file... (17:09:53) anothy: well, there's lots of things which support concurrent access. just scanning through the index of section 4 for ideas, there's 9660srv, dossrv, and factotum that certainly do. others likely do, depending on what exactly you mean. (17:13:31) powerman: anothy: no one of them support concurrent access. (17:13:55) powerman: 9660srv: (17:13:55) powerman: rflush(t: ref Tmsg.Flush): ref Rmsg (17:13:55) powerman: { (17:13:55) powerman: return ref Rmsg.Flush(t.tag); (17:13:55) powerman: } (17:14:08) powerman: dossrv: same thing (17:14:48) powerman: factotum: I think it use keyfs, which use styxservers.m, which doesn't support concurrent access (17:16:41) powerman: actually there a little reason for, say, 9660srv or dossrv or even keyfs to support concurrent access - they all should be able to serve incoming requests without delays (and, especially, delays for unpredictable time like when using network in ftpfs) (17:20:45) powerman: I may, in theory, also avoid needs in concurrent styx by using file2chan, but, sadly, I need directory listing (and so files in it) created and updated on-the-fly, based on information from network. (17:24:13) powerman: I've network service, which serve two types of requests: 1) get list of currently available applications and 2) run application by it name. I wish to provide access to that service from Inferno. The idea was: mount my appfs in some directory, on directory read request do "get list" and return available application names and file names in that directory; on file open+read request do "run application" and return data from that application as file content. (17:25:05) powerman: And it should be possible to open+read many files in that directory in parallel, to have many application running at same time. (17:26:49) powerman: Without requirement for dynamic directory listings, with stable list of available applications, it should be possible to have this done with file2chan (there about 800 apps, and I hope so many file2chan's isn't a problem for Inferno). But list of available apps is dynamic, so... (17:27:09) anothy: maybe i don't understand what you mean by concurrent access. (17:28:34) powerman: I mean if I run: cat /mnt/appfs/app1 & cat /mnt/appfs/app2 & then both files should be opened in parallel (and so my network service should receive 2 requests and start both apps in parallel). (17:29:31) powerman: Current styxservers.m implementation require Rmsg send after receiving Tmsg. It will not receive next Tmsg before Rmsg to prev Tmsg will be sent. (17:31:49) powerman: That, it turn, mean, after my appfs will receive Tmsg.Read from 'cat /mnt/appfs/app1' it will block waiting from reply from my network service which actually run that app and will not be able to receive Tmsg.Read from 'cat /mnt/appfs/app2' until app1 will be finished and network service will send it reply. (17:32:45) powerman: But the goal is to have both app1 and app2 running in parallel by that network service if I start two such 'cat' processes in Inferno. (17:33:59) anothy: i don't have time to check this right now (trying to get something done before noon), but i think you're wrong. (17:34:12) anothy: rebuild dossrv (for example) with a 10 second sleep before it replies to things. (17:34:17) powerman: I will be happy if I wrong. :) (17:34:48) anothy: i think you'll find "cat /n/dosdisk/a && cat /n/dosdisk/b" works fine still (assuming both files exist) (17:35:07) anothy: if i'm right, you're noting that it's single-threaded *per fd*, which you get a new one of per open. (17:35:37) powerman: I will try it, but I think rudimentary Tflush handlers are make things clear enough. (17:35:40) anothy: that's how the file2chan stuff tracks it, anyway, and i think it's the same for more "full-featured" styx implementations. (17:36:44) anothy: anyway, back to work for me. catch me tomorrow or monday and i'm happy to help if you've still not got it sorted. (17:42:19) acmeuser [n=acmeuser@host81-159-96-222.range81-159.btcentralplus.com] entered the room. (17:43:13) acmeuser left the room. (17:54:07) powerman: anothy: I did this test. (17:54:21) powerman: Everything works as I expected - non-concurrent. (17:54:51) powerman: Look: (17:54:51) powerman: ; ./dossrv -f disk -m /n/local (17:54:51) powerman: ; ls -l /n/local (17:54:51) powerman: --rw-rw-rw- M 6 dos srv 2 Nov 01 18:48 /n/local/file1 (17:54:51) powerman: --rw-rw-rw- M 6 dos srv 2 Nov 01 18:48 /n/local/file2 (17:54:51) powerman: ; grep . /n/local/* (17:54:51) powerman: /n/local/file1: 1 (17:54:51) powerman: /n/local/file2: 2 (17:54:51) powerman: ; time cat /n/local/file1 (17:54:51) powerman: 1 (17:54:51) powerman: 0.009l 10r 10.01t (17:55:44) powerman: (it took 10 seconds because I added sys->sleep(5000) before return ref Rmsg.Read(t.tag, data[0:r]); line, so this delay happens twice - when returning file content and when returning eof, I think. (17:56:07) powerman: And now I run two cat's in parallel: (17:56:07) powerman: ; time cat /n/local/file1 & time cat /n/local/file2 & (17:56:07) powerman: ; 1 (17:56:07) powerman: 0l 10r 10t (17:56:07) powerman: 2 (17:56:07) powerman: 0.002l 19.98r 19.98t (18:58:23) anothy left the room (quit: "Leaving."). (20:04:01) ***powerman send this question to mail list, but don't really expect any answers, as usually :( (21:32:34) anothy [n=a@c-98-221-26-115.hsd1.nj.comcast.net] entered the room. (22:58:01) anothy left the room (quit: "Leaving."). (23:08:07) C-Keen [i=ckeen@pestilenz.org] entered the room. (03:19:41) KillerX left the room (quit: ). (05:54:51) uriel__ [n=uriel@84-216-52-47.sprayadsl.telenor.se] entered the room. (05:56:36) uriel left the room (quit: Read error: 60 (Operation timed out)). (08:15:27) uriel_ is now known as uriel (09:53:35) paigeadele left the room (quit: Client Quit). (12:25:18) vt3 [n=vt3@m016020.ppp.asahi-net.or.jp] entered the room. (12:26:30) vt3 left the room (quit: "Leaving"). (16:23:10) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (21:41:18) powerman: one more nasty bug with #p :( http://code.google.com/p/inferno-os/issues/detail?id=147 (21:45:15) mycroftiv left the room. (21:56:32) mycroftiv [n=infernus@h69-128-47-243.mdsnwi.dedicated.static.tds.net] entered the room. (00:49:42) KillerX left the room (quit: Success). (02:39:35) paigeadele [i=erratic@75.146.55.252] entered the room. (03:40:51) anothy [n=a@c-98-221-104-176.hsd1.nj.comcast.net] entered the room. (05:11:08) ooooo [i=none@201.80.219.33] entered the room. (06:32:51) underspecified left the room (quit: ). (08:17:05) underspecified [n=eric@isa7-dhcp-116-122.naist.jp] entered the room. (08:56:41) powerman: is anybody know how qproduce (emu/port/qio.c) designed to be used? (08:57:32) powerman: looks like it return -1 on error, but no one caller of qproduce try to check for this error and handle it in some way... (08:57:51) powerman: so, messages which should be added into queue are just lost (08:59:31) powerman: ... thus result in unreliable behaviour. Like that bug with /prog/pid/wait. :( (09:00:16) powerman: that very sad... (12:57:00) underspecified left the room (quit: ). (13:49:32) underspecified [n=eric@softbank220043052011.bbtec.net] entered the room. (17:10:05) anothy left the room (quit: wolfe.freenode.net irc.freenode.net). (17:11:22) anothy [n=a@c-98-221-104-176.hsd1.nj.comcast.net] entered the room. (17:23:59) npe [n=npe@32.97.110.64] entered the room. (17:33:14) npe_ [n=npe@32.97.110.64] entered the room. (17:33:14) npe_ left the room (quit: Read error: 104 (Connection reset by peer)). (17:34:29) anothy left the room (quit: wolfe.freenode.net irc.freenode.net). (17:34:53) anothy [n=a@c-98-221-104-176.hsd1.nj.comcast.net] entered the room. (17:38:05) uriel_ [n=uriel@84-216-52-47.sprayadsl.telenor.se] entered the room. (17:41:33) npe left the room (quit: Connection timed out). (17:42:26) npe [n=npe@32.97.110.64] entered the room. (17:42:26) npe left the room (quit: Connection reset by peer). (17:50:54) uriel__ left the room (quit: Read error: 110 (Connection timed out)). (17:51:38) npe [n=npe@32.97.110.64] entered the room. (17:52:15) npe_ [n=npe@32.97.110.64] entered the room. (17:52:15) npe_ left the room (quit: Success). (18:01:27) npe_ [n=npe@32.97.110.64] entered the room. (18:03:02) npe_ left the room (quit: Read error: 60 (Operation timed out)). (18:09:23) npe left the room (quit: Connection timed out). (18:10:38) npe [n=npe@32.97.110.64] entered the room. (18:19:49) npe_ [n=npe@32.97.110.64] entered the room. (18:19:49) npe_ left the room (quit: Read error: 104 (Connection reset by peer)). (18:26:57) npe left the room (quit: Read error: 110 (Connection timed out)). (18:29:00) npe [n=npe@32.97.110.64] entered the room. (18:30:33) npe_ [n=npe@32.97.110.64] entered the room. (18:39:46) npe__ [n=npe@32.97.110.64] entered the room. (18:45:23) npe left the room (quit: Connection timed out). (18:47:57) npe_ left the room (quit: Connection timed out). (18:49:03) npe [n=npe@32.97.110.64] entered the room. (18:49:03) npe left the room (quit: Connection reset by peer). (18:57:23) npe__ left the room (quit: Connection timed out). (18:58:14) npe [n=npe@32.97.110.64] entered the room. (18:58:14) npe left the room (quit: Connection reset by peer). (19:07:26) npe [n=npe@32.97.110.64] entered the room. (19:07:26) npe left the room (quit: Connection reset by peer). (19:16:37) npe [n=npe@32.97.110.64] entered the room. (19:33:51) npe left the room (quit: Connection timed out). (20:26:43) mjl-: evening (21:44:16) anothy_lite [n=user@ool-44c4fe31.dyn.optonline.net] entered the room. (21:48:01) npe [n=npe@32.97.110.64] entered the room. (21:48:37) npe: test (21:51:41) olegfink: passed. (21:56:33) npe left the room (quit: Connection reset by peer). (21:57:10) anothy_lit1 [n=user@ool-44c4fe31.dyn.optonline.net] entered the room. (21:57:13) npe [n=npe@32.97.110.64] entered the room. (21:57:13) npe left the room (quit: Read error: 104 (Connection reset by peer)). (21:58:47) npe [n=npe@32.97.110.64] entered the room. (21:58:55) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (21:59:06) KillerX left the room (quit: Remote closed the connection). (22:03:13) npe left the room (quit: Read error: 60 (Operation timed out)). (22:03:53) npe [n=npe@32.97.110.64] entered the room. (22:06:19) anothy_lite left the room (quit: Read error: 110 (Connection timed out)). (22:08:38) anothy_lit1 left the room (quit: Read error: 104 (Connection reset by peer)). (22:13:07) npe_ [n=npe@32.97.110.64] entered the room. (22:13:07) npe_ left the room (quit: Connection reset by peer). (22:21:15) npe left the room (quit: Connection timed out). (22:22:19) npe [n=npe@32.97.110.64] entered the room. (22:25:43) npe left the room (quit: Read error: 60 (Operation timed out)). (22:26:23) npe [n=npe@32.97.110.64] entered the room. (22:26:23) npe left the room (quit: Connection reset by peer). (22:35:35) npe [n=npe@32.97.110.64] entered the room. (22:35:35) npe left the room (quit: Read error: 104 (Connection reset by peer)). (22:43:42) ooooo left the room (quit: Remote closed the connection). (04:11:31) anothy left the room (quit: wolfe.freenode.net irc.freenode.net). (04:11:35) anothy [n=a@c-98-221-104-176.hsd1.nj.comcast.net] entered the room. (05:40:45) C-Keen left the room (quit: Read error: 110 (Connection timed out)). (07:19:23) npe [n=npe@66.112.249.148] entered the room. (08:23:47) npe left the room (quit: ). (09:38:14) C-Keen [i=ckeen@pestilenz.org] entered the room. (12:58:16) C-Keen left the room (quit: Read error: 60 (Operation timed out)). (13:54:52) mjl-: howdy (14:45:34) C-Keen [i=ckeen@pestilenz.org] entered the room. (15:39:26) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (17:07:17) npe [n=npe@32.97.110.64] entered the room. (17:16:30) npe_ [n=npe@32.97.110.64] entered the room. (17:22:00) npe_ left the room (quit: Read error: 60 (Operation timed out)). (17:22:48) npe_ [n=npe@32.97.110.64] entered the room. (17:22:48) npe_ left the room (quit: Read error: 104 (Connection reset by peer)). (17:25:14) npe left the room (quit: Connection timed out). (17:31:59) npe [n=npe@32.97.110.64] entered the room. (17:41:10) npe_ [n=npe@32.97.110.64] entered the room. (17:41:10) npe_ left the room (quit: Connection reset by peer). (17:48:18) npe left the room (quit: Read error: 110 (Connection timed out)). (17:50:22) npe [n=npe@32.97.110.64] entered the room. (17:50:22) npe left the room (quit: Connection reset by peer). (17:59:33) npe [n=npe@32.97.110.64] entered the room. (18:08:46) npe_ [n=npe@32.97.110.64] entered the room. (18:12:23) npe_ left the room (quit: Read error: 60 (Operation timed out)). (18:13:03) npe_ [n=npe@32.97.110.64] entered the room. (18:13:03) npe_ left the room (quit: Read error: 104 (Connection reset by peer)). (18:16:49) npe left the room (quit: Connection timed out). (18:22:14) npe [n=npe@32.97.110.64] entered the room. (18:31:25) npe_ [n=npe@32.97.110.64] entered the room. (18:36:40) npe_ left the room (quit: Read error: 60 (Operation timed out)). (18:37:25) npe_ [n=npe@32.97.110.64] entered the room. (18:38:44) npe left the room (quit: Connection timed out). (18:45:56) npe_ left the room (quit: Connection reset by peer). (18:46:36) npe [n=npe@32.97.110.64] entered the room. (18:55:47) npe_ [n=npe@32.97.110.64] entered the room. (18:55:48) npe_ left the room (quit: Connection reset by peer). (19:02:49) npe left the room (quit: Connection timed out). (19:04:58) npe [n=npe@32.97.110.64] entered the room. (19:08:53) npe left the room (quit: Read error: 60 (Operation timed out)). (19:09:33) npe [n=npe@32.97.110.64] entered the room. (19:18:47) npe_ [n=npe@32.97.110.64] entered the room. (19:27:10) npe left the room (quit: Connection timed out). (19:28:02) npe [n=npe@32.97.110.64] entered the room. (19:32:50) npe left the room (quit: Read error: 60 (Operation timed out)). (19:36:18) npe_ left the room (quit: Connection timed out). (19:37:12) npe [n=npe@32.97.110.64] entered the room. (19:41:23) npe left the room (quit: Operation timed out). (19:42:04) npe [n=npe@32.97.110.64] entered the room. (19:51:14) npe_ [n=npe@32.97.110.64] entered the room. (19:58:20) npe left the room (quit: Connection timed out). (22:53:59) uriel__ [n=uriel@84-216-52-47.sprayadsl.telenor.se] entered the room. (22:56:18) uriel_ left the room (quit: Read error: 60 (Operation timed out)). (00:12:22) npe_ left the room (quit: ). (03:08:27) KillerX left the room (quit: ). (04:13:30) underspecified left the room (quit: ). (04:17:13) ooooo [i=none@201.80.219.33] entered the room. (04:21:02) eno__ [n=eno@adsl-70-137-145-135.dsl.snfc21.sbcglobal.net] entered the room. (04:32:29) eno left the room (quit: Read error: 110 (Connection timed out)). (04:36:53) npe [i=npe@66.112.249.18] entered the room. (06:53:53) npe left the room (quit: ). (09:52:29) npe [n=npe@66.112.249.148] entered the room. (10:03:48) npe left the room (quit: ). (15:39:26) anothy left the room (quit: wolfe.freenode.net irc.freenode.net). (15:39:44) anothy [n=a@c-98-221-104-176.hsd1.nj.comcast.net] entered the room. (16:41:55) underspecified [n=eric@softbank220043052011.bbtec.net] entered the room. (16:48:19) npe [n=npe@32.97.110.64] entered the room. (16:49:53) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (16:57:31) npe_ [n=npe@32.97.110.64] entered the room. (16:59:01) sqweek: home sweet home (17:00:35) soul9: wb (17:04:36) npe left the room (quit: Connection timed out). (17:06:43) npe [n=npe@32.97.110.64] entered the room. (17:13:54) npe_ left the room (quit: Connection timed out). (17:15:57) npe_ [n=npe@32.97.110.64] entered the room.