A new version of WebClient-Core was added to project The Inbox:
http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz ==================== Summary ==================== Name: WebClient-Core-cbc.118 Author: cbc Time: 28 October 2018, 5:08:23.571079 pm UUID: 683fbe3b-418f-a443-9a20-3f2a7af4b7e1 Ancestors: WebClient-Core-pre.117 A hack to work around connectionTimedOut annoyances when opening packages from Trunk (sometimes). =============== Diff against WebClient-Core-pre.117 =============== Item was changed: ----- Method: WebClient>>httpGet:do: (in category 'methods') ----- httpGet: urlString do: aBlock "GET the response from the given url" "(WebClient httpGet: 'http://www.squeak.org') content" + | request errCount | - | request | self initializeFromUrl: urlString. request := self requestWithUrl: urlString. request method: 'GET'. userAgent ifNotNil:[:ua | request headerAt: 'User-Agent' put: ua]. self contentDecoders ifNotNil: [:decoders | request headerAt: 'Accept-Encoding' put: decoders]. + + errCount := 0. "Let's try resending to get around 'connection issues' trunk connections" + [ + aBlock value: request. + ^self sendRequest: request + ] on: Error, NetworkError do: [:e| debugLog ifNotNil: [debugLog cr; nextPutAll: 'httpGet error: ', e; flush]. (errCount := errCount + 1) > 3 ifTrue: [e outer]. e retry].! - aBlock value: request. - ^self sendRequest: request - ! |
Hi. I was loading the VMMaker package(s), and after manually opening the debugger and restarting at #httpGet:do: about 10 times, I implemented this hack so that I didn't have to do that anymore. I *think* this is fixing the issue - haven't had it raise errors while 'timing out' on loading packages since this (the timeout were sub-second - the connection hadn't gone through yet). Still, it might just be timing - this isn't really a repeatable bug. Not in Trunk because it is definitely a hack - but it makes things work nicer. Also, committing packages to the inbox with this loaded doesn't result in walkbacks (from timeouts and whatnot) for me. Although it does take a long time to finish. -cbc On Sun, Oct 28, 2018 at 5:08 PM <[hidden email]> wrote: A new version of WebClient-Core was added to project The Inbox: |
Hi Chris,
On Sun, 28 Oct 2018, Chris Cunningham wrote: > Hi. > I was loading the VMMaker package(s), and after manually opening the debugger and restarting at #httpGet:do: about 10 times, I implemented this hack so that I didn't have to do that anymore. > > I *think* this is fixing the issue - haven't had it raise errors while 'timing out' on loading packages since this (the timeout were sub-second - the connection hadn't gone through yet). Still, it > might just be timing - this isn't really a repeatable bug. I'm sure this change helps with that issue, but it has unwelcome side effects to WebClient's other users. The real solution would be to fix the server. Where did you see sub-second timeouts? The default timeout should be 45 seconds. > > Not in Trunk because it is definitely a hack - but it makes things work nicer. > > Also, committing packages to the inbox with this loaded doesn't result in walkbacks (from timeouts and whatnot) for me. Although it does take a long time to finish. Uploads use PUT requests, so expect to still see walkbacks there. Levente > > -cbc > > On Sun, Oct 28, 2018 at 5:08 PM <[hidden email]> wrote: > A new version of WebClient-Core was added to project The Inbox: > http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz > > ==================== Summary ==================== > > Name: WebClient-Core-cbc.118 > Author: cbc > Time: 28 October 2018, 5:08:23.571079 pm > UUID: 683fbe3b-418f-a443-9a20-3f2a7af4b7e1 > Ancestors: WebClient-Core-pre.117 > > A hack to work around connectionTimedOut annoyances when opening packages from Trunk (sometimes). > > =============== Diff against WebClient-Core-pre.117 =============== > > Item was changed: > ----- Method: WebClient>>httpGet:do: (in category 'methods') ----- > httpGet: urlString do: aBlock > "GET the response from the given url" > "(WebClient httpGet: 'http://www.squeak.org') content" > > + | request errCount | > - | request | > self initializeFromUrl: urlString. > request := self requestWithUrl: urlString. > request method: 'GET'. > userAgent ifNotNil:[:ua | request headerAt: 'User-Agent' put: ua]. > self contentDecoders ifNotNil: [:decoders | request headerAt: 'Accept-Encoding' put: decoders]. > + > + errCount := 0. "Let's try resending to get around 'connection issues' trunk connections" > + [ > + aBlock value: request. > + ^self sendRequest: request > + ] on: Error, NetworkError do: [:e| debugLog ifNotNil: [debugLog cr; nextPutAll: 'httpGet error: ', e; flush]. (errCount := errCount + 1) > 3 ifTrue: [e outer]. e retry].! > - aBlock value: request. > - ^self sendRequest: request > - ! > > > > |
On Sun, Oct 28, 2018, 17:55 Levente Uzonyi <[hidden email]> wrote: Hi Chris, This this definitely will not be going to trunk. The real solution would be to fix the server. It didn't wait 45 seconds - it is almost instantaneous for me. The error received back (from Socket>>sendSomeData:startIndex:count:for: ) is "ConnectionTimedOut: send data timeout; data not sent", but I'm pretty darn certain it is that the socket isn't yet connected (trace put into Socket>>waitForSendDoneFor: confirms this). Looking at #waitForSendDoneFor: shows that before any wait, it checks if the socket is connected - if not, it immediately exits with false, which triggers the time out error in the caller. If I trap it and immediately resend, then it works. Weird. -cbc
|
In reply to this post by Levente Uzonyi
> On 29.10.2018, at 01:55, Levente Uzonyi <[hidden email]> wrote: > > Hi Chris, > > On Sun, 28 Oct 2018, Chris Cunningham wrote: > >> Hi. >> I was loading the VMMaker package(s), and after manually opening the debugger and restarting at #httpGet:do: about 10 times, I implemented this hack so that I didn't have to do that anymore. >> I *think* this is fixing the issue - haven't had it raise errors while 'timing out' on loading packages since this (the timeout were sub-second - the connection hadn't gone through yet). Still, it >> might just be timing - this isn't really a repeatable bug. > > I'm sure this change helps with that issue, but it has unwelcome side effects to WebClient's other users. > The real solution would be to fix the server. Concur! > > Where did you see sub-second timeouts? The default timeout should be 45 seconds. > >> Not in Trunk because it is definitely a hack - but it makes things work nicer. >> Also, committing packages to the inbox with this loaded doesn't result in walkbacks (from timeouts and whatnot) for me. Although it does take a long time to finish. > > Uploads use PUT requests, so expect to still see walkbacks there. Best regards -Tobias > > Levente > >> -cbc >> On Sun, Oct 28, 2018 at 5:08 PM <[hidden email]> wrote: >> A new version of WebClient-Core was added to project The Inbox: >> http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz >> >> ==================== Summary ==================== >> >> Name: WebClient-Core-cbc.118 >> Author: cbc >> Time: 28 October 2018, 5:08:23.571079 pm >> UUID: 683fbe3b-418f-a443-9a20-3f2a7af4b7e1 >> Ancestors: WebClient-Core-pre.117 >> >> A hack to work around connectionTimedOut annoyances when opening packages from Trunk (sometimes). >> >> =============== Diff against WebClient-Core-pre.117 =============== >> >> Item was changed: >> ----- Method: WebClient>>httpGet:do: (in category 'methods') ----- >> httpGet: urlString do: aBlock >> "GET the response from the given url" >> "(WebClient httpGet: 'http://www.squeak.org') content" >> >> + | request errCount | >> - | request | >> self initializeFromUrl: urlString. >> request := self requestWithUrl: urlString. >> request method: 'GET'. >> userAgent ifNotNil:[:ua | request headerAt: 'User-Agent' put: ua]. >> self contentDecoders ifNotNil: [:decoders | request headerAt: 'Accept-Encoding' put: decoders]. >> + >> + errCount := 0. "Let's try resending to get around 'connection issues' trunk connections" >> + [ >> + aBlock value: request. >> + ^self sendRequest: request >> + ] on: Error, NetworkError do: [:e| debugLog ifNotNil: [debugLog cr; nextPutAll: 'httpGet error: ', e; flush]. (errCount := errCount + 1) > 3 ifTrue: [e outer]. e retry].! >> - aBlock value: request. >> - ^self sendRequest: request >> - ! > |
In reply to this post by cbc
On Sun, 28 Oct 2018, Chris Cunningham wrote:
> > > On Sun, Oct 28, 2018, 17:55 Levente Uzonyi <[hidden email]> wrote: > Hi Chris, > > On Sun, 28 Oct 2018, Chris Cunningham wrote: > > > Hi. > > I was loading the VMMaker package(s), and after manually opening the debugger and restarting at #httpGet:do: about 10 times, I implemented this hack so that I didn't have to do that > anymore. > > > > I *think* this is fixing the issue - haven't had it raise errors while 'timing out' on loading packages since this (the timeout were sub-second - the connection hadn't gone through > yet). Still, it > > might just be timing - this isn't really a repeatable bug. > > I'm sure this change helps with that issue, but it has unwelcome side > effects to WebClient's other users. > > This this definitely will not be going to trunk. > > The real solution would be to fix the server. > > Where did you see sub-second timeouts? The default timeout should be 45 > seconds. > > It didn't wait 45 seconds - it is almost instantaneous for me. The error received back (from Socket>>sendSomeData:startIndex:count:for: ) is "ConnectionTimedOut: send data timeout; data not sent", > but I'm pretty darn certain it is that the socket isn't yet connected (trace put into Socket>>waitForSendDoneFor: confirms this). Looking at #waitForSendDoneFor: shows that before any wait, it checks > if the socket is connected - if not, it immediately exits with false, which triggers the time out error in the caller. > > If I trap it and immediately resend, then it works. Weird. Levente > > -cbc > > > > > Not in Trunk because it is definitely a hack - but it makes things work nicer. > > > > Also, committing packages to the inbox with this loaded doesn't result in walkbacks (from timeouts and whatnot) for me. Although it does take a long time to finish. > > Uploads use PUT requests, so expect to still see walkbacks there. > > Levente > > > > > -cbc > > > > On Sun, Oct 28, 2018 at 5:08 PM <[hidden email]> wrote: > > A new version of WebClient-Core was added to project The Inbox: > > http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz > > > > ==================== Summary ==================== > > > > Name: WebClient-Core-cbc.118 > > Author: cbc > > Time: 28 October 2018, 5:08:23.571079 pm > > UUID: 683fbe3b-418f-a443-9a20-3f2a7af4b7e1 > > Ancestors: WebClient-Core-pre.117 > > > > A hack to work around connectionTimedOut annoyances when opening packages from Trunk (sometimes). > > > > =============== Diff against WebClient-Core-pre.117 =============== > > > > Item was changed: > > ----- Method: WebClient>>httpGet:do: (in category 'methods') ----- > > httpGet: urlString do: aBlock > > "GET the response from the given url" > > "(WebClient httpGet: 'http://www.squeak.org') content" > > > > + | request errCount | > > - | request | > > self initializeFromUrl: urlString. > > request := self requestWithUrl: urlString. > > request method: 'GET'. > > userAgent ifNotNil:[:ua | request headerAt: 'User-Agent' put: ua]. > > self contentDecoders ifNotNil: [:decoders | request headerAt: 'Accept-Encoding' put: decoders]. > > + > > + errCount := 0. "Let's try resending to get around 'connection issues' trunk connections" > > + [ > > + aBlock value: request. > > + ^self sendRequest: request > > + ] on: Error, NetworkError do: [:e| debugLog ifNotNil: [debugLog cr; nextPutAll: 'httpGet error: ', e; flush]. (errCount := errCount + 1) > 3 ifTrue: [e outer]. e retry].! > > - aBlock value: request. > > - ^self sendRequest: request > > - ! > > > > > > > > > > > |
Hi, I get error on updating almost every time I try, and the fail is within a second. See log in attachment. I'm on windows. Cheers, Karl On Mon, Oct 29, 2018 at 9:54 PM Levente Uzonyi <[hidden email]> wrote: On Sun, 28 Oct 2018, Chris Cunningham wrote: SqueakDebug.log (17K) Download Attachment |
And with WebClient-Core-cbc.118.mcz I don't get this error. Cheers, Karl On Tue, Oct 30, 2018 at 7:16 PM karl ramberg <[hidden email]> wrote:
|
Hi Karl, Thank you for responding with the stack trace - I was going to yesterday but got completely distracted with other issues. THat is roughly where it fails for me, too (one windows 10). Also, glad it helped. It is still a hack that shouldn't be in the production WebClient (too many other possible side-effects), but nice for this process. -cbc On Tue, Oct 30, 2018 at 11:27 AM karl ramberg <[hidden email]> wrote:
|
I have the server upgrade next on my list. Thanks for your patience.
On Tue, Oct 30, 2018 at 2:19 PM Chris Cunningham <[hidden email]> wrote: > > Hi Karl, > > Thank you for responding with the stack trace - I was going to yesterday but got completely distracted with other issues. THat is roughly where it fails for me, too (one windows 10). > > Also, glad it helped. It is still a hack that shouldn't be in the production WebClient (too many other possible side-effects), but nice for this process. > > -cbc > > > > On Tue, Oct 30, 2018 at 11:27 AM karl ramberg <[hidden email]> wrote: >> >> And with WebClient-Core-cbc.118.mcz I don't get this error. >> >> Cheers, >> Karl >> >> >> On Tue, Oct 30, 2018 at 7:16 PM karl ramberg <[hidden email]> wrote: >>> >>> Hi, >>> I get error on updating almost every time I try, and the fail is within a second. >>> See log in attachment. >>> I'm on windows. >>> >>> Cheers, >>> Karl >>> >>> >>> On Mon, Oct 29, 2018 at 9:54 PM Levente Uzonyi <[hidden email]> wrote: >>>> >>>> On Sun, 28 Oct 2018, Chris Cunningham wrote: >>>> >>>> > >>>> > >>>> > On Sun, Oct 28, 2018, 17:55 Levente Uzonyi <[hidden email]> wrote: >>>> > Hi Chris, >>>> > >>>> > On Sun, 28 Oct 2018, Chris Cunningham wrote: >>>> > >>>> > > Hi. >>>> > > I was loading the VMMaker package(s), and after manually opening the debugger and restarting at #httpGet:do: about 10 times, I implemented this hack so that I didn't have to do that >>>> > anymore. >>>> > > >>>> > > I *think* this is fixing the issue - haven't had it raise errors while 'timing out' on loading packages since this (the timeout were sub-second - the connection hadn't gone through >>>> > yet). Still, it >>>> > > might just be timing - this isn't really a repeatable bug. >>>> > >>>> > I'm sure this change helps with that issue, but it has unwelcome side >>>> > effects to WebClient's other users. >>>> > >>>> > This this definitely will not be going to trunk. >>>> > >>>> > The real solution would be to fix the server. >>>> > >>>> > Where did you see sub-second timeouts? The default timeout should be 45 >>>> > seconds. >>>> > >>>> > It didn't wait 45 seconds - it is almost instantaneous for me. The error received back (from Socket>>sendSomeData:startIndex:count:for: ) is "ConnectionTimedOut: send data timeout; data not sent", >>>> > but I'm pretty darn certain it is that the socket isn't yet connected (trace put into Socket>>waitForSendDoneFor: confirms this). Looking at #waitForSendDoneFor: shows that before any wait, it checks >>>> > if the socket is connected - if not, it immediately exits with false, which triggers the time out error in the caller. >>>> > >>>> > If I trap it and immediately resend, then it works. Weird. >>>> >>>> I've never seen that happening. Do you have a stack trace of the error? >>>> >>>> Levente >>>> >>>> > >>>> > -cbc >>>> > >>>> > > >>>> > > Not in Trunk because it is definitely a hack - but it makes things work nicer. >>>> > > >>>> > > Also, committing packages to the inbox with this loaded doesn't result in walkbacks (from timeouts and whatnot) for me. Although it does take a long time to finish. >>>> > >>>> > Uploads use PUT requests, so expect to still see walkbacks there. >>>> > >>>> > Levente >>>> > >>>> > > >>>> > > -cbc >>>> > > >>>> > > On Sun, Oct 28, 2018 at 5:08 PM <[hidden email]> wrote: >>>> > > A new version of WebClient-Core was added to project The Inbox: >>>> > > http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz >>>> > > >>>> > > ==================== Summary ==================== >>>> > > >>>> > > Name: WebClient-Core-cbc.118 >>>> > > Author: cbc >>>> > > Time: 28 October 2018, 5:08:23.571079 pm >>>> > > UUID: 683fbe3b-418f-a443-9a20-3f2a7af4b7e1 >>>> > > Ancestors: WebClient-Core-pre.117 >>>> > > >>>> > > A hack to work around connectionTimedOut annoyances when opening packages from Trunk (sometimes). >>>> > > >>>> > > =============== Diff against WebClient-Core-pre.117 =============== >>>> > > >>>> > > Item was changed: >>>> > > ----- Method: WebClient>>httpGet:do: (in category 'methods') ----- >>>> > > httpGet: urlString do: aBlock >>>> > > "GET the response from the given url" >>>> > > "(WebClient httpGet: 'http://www.squeak.org') content" >>>> > > >>>> > > + | request errCount | >>>> > > - | request | >>>> > > self initializeFromUrl: urlString. >>>> > > request := self requestWithUrl: urlString. >>>> > > request method: 'GET'. >>>> > > userAgent ifNotNil:[:ua | request headerAt: 'User-Agent' put: ua]. >>>> > > self contentDecoders ifNotNil: [:decoders | request headerAt: 'Accept-Encoding' put: decoders]. >>>> > > + >>>> > > + errCount := 0. "Let's try resending to get around 'connection issues' trunk connections" >>>> > > + [ >>>> > > + aBlock value: request. >>>> > > + ^self sendRequest: request >>>> > > + ] on: Error, NetworkError do: [:e| debugLog ifNotNil: [debugLog cr; nextPutAll: 'httpGet error: ', e; flush]. (errCount := errCount + 1) > 3 ifTrue: [e outer]. e retry].! >>>> > > - aBlock value: request. >>>> > > - ^self sendRequest: request >>>> > > - ! >>>> > > >>>> > > >>>> > > >>>> > > >>>> > >>>> > >>>> > >> >> > |
Free forum by Nabble | Edit this page |