World: r3wp
[!REBOL3-OLD1]
older newer | first last |
Steeve 21-Dec-2009 [20378] | i just think about an alias to shorten our code, the standardd word QUOTE would stay. |
Ladislav 21-Dec-2009 [20379x2] | so, for example the expressions: 'a , and quote a have the same effect |
, but, certainly, a simple shortcut may be of use | |
Gregg 21-Dec-2009 [20381] | I have an old quote func as well. Two actually, and they do very different things. One prevents evaluation, and one encloses the value in double quote chars. I think the latter is the better use of the name, and we should come up with a better name for the func that prevents evaluation. |
Izkata 21-Dec-2009 [20382] | keep ? |
Gregg 21-Dec-2009 [20383] | KEEP is used inside COLLECT. Something along the lines of LIT or LITERAL clearly says what it does. |
Paul 21-Dec-2009 [20384] | One of my problems with R3 is that I get this feeling that an R3 beta is immenant but feel it is still long way off and have concerns about the negative impact that will bring. There is a great deal of expectation for the beta and I feel it is going to be viewed on Monday morning as a disappointment when it comes. I'm hoping that the REBOL team makes sure that it hasen't left little things undone such as being able to change a date on a directory, etc... |
Graham 21-Dec-2009 [20385x2] | That's part of the host code is it ot? |
n | |
Henrik 22-Dec-2009 [20387] | Pavel, about bug #1399, we need to dig deeper to get a more accurate report for Carl, so he can fix it quickly. Which file transfer example are you talking about here? |
Pavel 22-Dec-2009 [20388] | http://www.rebol.net/wiki/Port_Examples-> 4.4 Transfer a large file |
Henrik 22-Dec-2009 [20389] | I do get interruptions during transfer here, but they are not reliable in size. |
Pavel 22-Dec-2009 [20390x2] | In my machine this happen at the same point each time single client, but originally I've found this when I run 2 simultaneous clients with different large files (my was 50 and 100 MB) |
Anyway I'm glad to you acknowledged the bug. Together with bug #1367 and unsure garbage collection this prevents to build reliable (even simple) TCP servers. | |
Henrik 22-Dec-2009 [20392x2] | I don't think this is the same bug. I get different interruptions and no stack overflow. |
Anyway, there's a lot to dig through here. | |
Steeve 22-Dec-2009 [20394] | #1367, why this one ? |
Henrik 22-Dec-2009 [20395] | (sorry, forgot to mention that I didn't get a stack overflow) |
Pavel 22-Dec-2009 [20396] | Sorry Typo #1369 |
Steeve 22-Dec-2009 [20397] | Henrik, i guess your case is covered by #1369 aswell |
Henrik 22-Dec-2009 [20398] | I only use a single client/server. |
Pavel 22-Dec-2009 [20399] | The difference is that #1399 breaks even if single client is running, I've observed that filetransfer goes parallel even for some time (but not finish) when two clients was run. So the difference was mutual block happen after some time. (Henrik you are quicker in typing") |
Henrik 22-Dec-2009 [20400] | Pavel, what happens for me is that: 1. I start the server and it waits like it should 2. Then I start the client and transfer begins. At some point around 10-20 MB in, the server just stops and the client returns to console. After a few seconds the server also returns to the console. 3. If I then start the server again, the read continues for another 80000 bytes, like this: >> do %/c/serve.r Script: "Untitled" Version: none Date: none subport read len: 32000 total: 19192000 of 406258740...read subport read len: 32000 total: 19224000 of 406258740...read subport read len: 9000 total: 19233000 of 406258740...read subport read len: 7000 total: 19240000 of 406258740...read subport close And then the port closes and the server quits again, unless I start the client. |
Pavel 22-Dec-2009 [20401] | Windows platform? |
Henrik 22-Dec-2009 [20402] | yes, XP under Parallels. |
Pavel 22-Dec-2009 [20403x4] | Mine last three server messages: |
len: 20000 total: 4260000 of 51923978 subport read len: 20000 total: 4280000 of 51923978 subport read len: 20000 total: 4300000 of 51923978 | |
And client: send: 20000 bytes wrote send: 20000 bytes wrote ** Internal error: stack overflow ** Where: either switch applier wake-up loop applier wait send-chunk either switch applier wake-up loop er switch applier wake-up loop applier wait send-chunk either switch applier wake-up loop applier wait ier wake-up loop applier wait send-chunk either switch applier wake-up loop applier wait send-chunk eit op applier wait send-chunk either switch applier wake-up loop applier wait send-chunk either switch app t send-chunk either switch applier wake-up loop applier wait send-chunk either... >> | |
Server stops smoothly after pressetted timeout | |
Steeve 22-Dec-2009 [20407x2] | hum, i tried the ping-pong example with 3clients and I don't have this bug, did you modified the client in some way Pavel ? |
especially the send-chunk function which seems to do some recursive stuffs | |
Pavel 22-Dec-2009 [20409] | Steeve I've mentioned large file example with server/client not modified, |
Henrik 22-Dec-2009 [20410] | let's be sure we're all running the same examples. The one in bug#1369 is not the one Pavel is referring to, as far as I can tell. |
Steeve 22-Dec-2009 [20411] | The thing i can say after inspecting the source, is that it's not adapted to have several clients. The clients are not waiting for any response from the server after sending each chunk. So that, the server could be stucked with massives waiting chunks in memory |
Pavel 22-Dec-2009 [20412] | Steeve pls look up one page we are using single server single client large file example |
Steeve 22-Dec-2009 [20413] | Well, my remark stay relevant. Because if for any reason the server is slower than the client, a lot of chunks can be stacked in the server's memory |
Henrik 22-Dec-2009 [20414] | Pavel is referring to this example: http://www.rebol.net/wiki/Port_Examples#Transfer_a_large_file |
Steeve 22-Dec-2009 [20415] | Guys, I know that well, just read what i say |
Henrik 22-Dec-2009 [20416] | it's not adapted to have several clients <- but why do I get problems, then? |
Steeve 22-Dec-2009 [20417x5] | it's not the only one problem, all the chunks are sent in one massive request before the server treat them, i guess |
can you just change this function: send-chunk: func [port file /local data] [ append clear data read/part file 20000 if empty? data [return false] print ["send:" length? data "bytes"] write port data read port true ] just an idea, not tested | |
sorry, it's wrong, cause data is local. I should make my tests first | |
Guess i'm stupid, the problem is really simple. there is a timeout both in CLIENT and SERVER. after 10 seconds both server and clients are stopped. (check the wait command at the end of the scripts) | |
That's for Henrik's problem. I don't have the stack overflow bug | |
Henrik 22-Dec-2009 [20422] | doh... it's even written in a comment. :-) |
Steeve 22-Dec-2009 [20423] | :) |
Henrik 22-Dec-2009 [20424x2] | I suggest that the wait is done in a different way in the example, otherwise the example is not very useful, I think. |
removed the wait, and it transfers perfectly. | |
Pavel 22-Dec-2009 [20426] | Where you removed wait Henrik? |
Henrik 22-Dec-2009 [20427] | oops, not the wait, just the 10 near the bottom of both scripts. |
older newer | first last |