<div dir="ltr"><div>Thanks Karl,</div><div>yes i must remember to install this workaround!</div><div>(i did the same in more peripheral MC methods, but hacking WebResponse is indeed more radical)<br></div></div><br><div class="gmail_quote"><div dir="ltr">Le sam. 5 janv. 2019 à 21:57, karl ramberg <<a href="mailto:karlramberg@gmail.com">karlramberg@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>This workaround works for me:</div><a href="http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/inbox/WebClient-Core-cbc.118.mcz</a>  <br><div><br></div><div>Best,</div><div>Karl</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jan 5, 2019 at 9:43 PM Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Yes, thanks a lot for that!<br><br>I have still hickups in the Win64 VM (I have to eat my own dog food), like this, but it might just be the windows VM, not the server...</div><div dir="ltr"><br></div><div dir="ltr">It's as if the socket stream failed to wait for input data and returned an empty response prematurely...</div><div dir="ltr"><br></div><div dir="ltr">5 January 2019 9:19:38.826444 pm<br><br>VM: Win32 - Smalltalk<br>Image: Squeak5.3alpha [latest update: #18330]<br><br>SecurityManager state:<br>Restricted: false<br>FileAccess: true<br>SocketAccess: true<br>Working Dir Y:\Smalltalk\opensmalltalk-vm\image<br>Trusted Dir Y:\Smalltalk\opensmalltalk-vm\image\nicolas<br>Untrusted Dir \\Mac\Home\Documents\My Squeak<br><br>WebResponse(Object)>>error:<br>    Receiver: <<error during printing>><br>    Arguments and temporary variables: <br>        aString:     'Invalid response: '<br>    Receiver's instance variables: <br>        stream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        protocol:     nil<br>        headers:     nil<br>        content:     nil<br>        request:     WebRequest(GET /OSProcessPlugin/?C=M;O=D HTTP/1.1<br>User-Agent: WebClie...etc...<br>        status:     ''<br>        code:     nil<br>        url:     nil<br><br>WebResponse>>readFrom:<br>    Receiver: <<error during printing>><br>    Arguments and temporary variables: <br>        aStream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        tokens:     an OrderedCollection()<br>    Receiver's instance variables: <br>        stream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        protocol:     nil<br>        headers:     nil<br>        content:     nil<br>        request:     WebRequest(GET /OSProcessPlugin/?C=M;O=D HTTP/1.1<br>User-Agent: WebClie...etc...<br>        status:     ''<br>        code:     nil<br>        url:     nil<br><br>WebClient>>sendRequest:contentBlock:<br>    Receiver: WebClient(<a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br>    Arguments and temporary variables: <br>        request:     WebRequest(GET /OSProcessPlugin/?C=M;O=D HTTP/1.1<br>User-Agent: WebClie...etc...<br>        contentBlock:     [closure] in WebClient>>sendRequest:content:size:<br>        response:     nil<br>        repeatRedirect:     false<br>        repeatAuth:     false<br>        resp:     nil<br>    Receiver's instance variables: <br>        flags:     7<br>        server:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        scheme:     'http'<br>        timeout:     45<br>        stream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        cookies:     an OrderedCollection()<br>        proxyServer:     nil<br>        lastScheme:     'http'<br>        lastServer:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        lastPort:     80<br>        maxRedirect:     10<br>        redirections:     a Dictionary()<br>        userAgent:     'WebClient/1.5 (WebClient-Core-pre.117; Squeak5.3alpha-18330; Win32)...etc...<br>        authParams:     an IdentityDictionary(#password->XXXX #username->'nice' )<br>        proxyParams:     an IdentityDictionary()<br>        accessLog:     nil<br>        debugLog:     nil<br><br>WebClient>>sendRequest:content:size:<br>    Receiver: WebClient(<a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br>    Arguments and temporary variables: <br>        request:     WebRequest(GET /OSProcessPlugin/?C=M;O=D HTTP/1.1<br>User-Agent: WebClie...etc...<br>        contentStream:     nil<br>        streamSize:     0<br>    Receiver's instance variables: <br>        flags:     7<br>        server:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        scheme:     'http'<br>        timeout:     45<br>        stream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        cookies:     an OrderedCollection()<br>        proxyServer:     nil<br>        lastScheme:     'http'<br>        lastServer:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        lastPort:     80<br>        maxRedirect:     10<br>        redirections:     a Dictionary()<br>        userAgent:     'WebClient/1.5 (WebClient-Core-pre.117; Squeak5.3alpha-18330; Win32)...etc...<br>        authParams:     an IdentityDictionary(#password->XXXX #username->'nice' )<br>        proxyParams:     an IdentityDictionary()<br>        accessLog:     nil<br>        debugLog:     nil<br><br>WebClient>>sendRequest:<br>    Receiver: WebClient(<a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br>    Arguments and temporary variables: <br>        request:     WebRequest(GET /OSProcessPlugin/?C=M;O=D HTTP/1.1<br>User-Agent: WebClie...etc...<br>    Receiver's instance variables: <br>        flags:     7<br>        server:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        scheme:     'http'<br>        timeout:     45<br>        stream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        cookies:     an OrderedCollection()<br>        proxyServer:     nil<br>        lastScheme:     'http'<br>        lastServer:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        lastPort:     80<br>        maxRedirect:     10<br>        redirections:     a Dictionary()<br>        userAgent:     'WebClient/1.5 (WebClient-Core-pre.117; Squeak5.3alpha-18330; Win32)...etc...<br>        authParams:     an IdentityDictionary(#password->XXXX #username->'nice' )<br>        proxyParams:     an IdentityDictionary()<br>        accessLog:     nil<br>        debugLog:     nil<br><br>WebClient>>httpGet:do:<br>    Receiver: WebClient(<a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br>    Arguments and temporary variables: <br>        urlString:     '<a href="http://www.squeaksource.com/OSProcessPlugin/?C=M;O=D" target="_blank">http://www.squeaksource.com/OSProcessPlugin/?C=M;O=D</a>'<br>        aBlock:     [closure] in MCHttpRepository>>httpGet:arguments:<br>        request:     WebRequest(GET /OSProcessPlugin/?C=M;O=D HTTP/1.1<br>User-Agent: WebClie...etc...<br>        ua:     'WebClient/1.5 (WebClient-Core-pre.117; Squeak5.3alpha-18330; Win32)'<br>        decoders:     'gzip'<br>    Receiver's instance variables: <br>        flags:     7<br>        server:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        scheme:     'http'<br>        timeout:     45<br>        stream:     SocketStream[inbuf:4kb/outbuf:4kb]<br>        cookies:     an OrderedCollection()<br>        proxyServer:     nil<br>        lastScheme:     'http'<br>        lastServer:     '<a href="http://www.squeaksource.com" target="_blank">www.squeaksource.com</a>'<br>        lastPort:     80<br>        maxRedirect:     10<br>        redirections:     a Dictionary()<br>        userAgent:     'WebClient/1.5 (WebClient-Core-pre.117; Squeak5.3alpha-18330; Win32)...etc...<br>        authParams:     an IdentityDictionary(#password->XXXX #username->'nice' )<br>        proxyParams:     an IdentityDictionary()<br>        accessLog:     nil<br>        debugLog:     nil<br><br>MCHttpRepository>>httpGet:arguments:<br>    Receiver: a MCHttpRepository(<a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>)<br>    Arguments and temporary variables: <br>        url:     '<a href="http://www.squeaksource.com/OSProcessPlugin/?C=M;O=D" target="_blank">http://www.squeaksource.com/OSProcessPlugin/?C=M;O=D</a>'<br>        arguments:     nil<br>        progress:     [closure] in MCHttpRepository>>httpGet:arguments:<br>        urlString:     '<a href="http://www.squeaksource.com/OSProcessPlugin/?C=M;O=D" target="_blank">http://www.squeaksource.com/OSProcessPlugin/?C=M;O=D</a>'<br>        client:     WebClient(<a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br>        response:     nil<br>        result:     nil<br>        queryString:     nil<br>    Receiver's instance variables: <br>        creationTemplate:     nil<br>        storeDiffs:     nil<br>        cache:     a Dictionary('VMConstruction-Plugins-OSProcessPlugin.oscog-nice.62.mcz'-...etc...<br>        allFileNamesCache:     nil<br>        allVersionNamesCache:     nil<br>        location:     '<a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br>        user:     'nice'<br>        password:     XXXX<br>        readerCache:     a Dictionary('VMConstruction-Plugins-OSProcessPlugin.oscog-Alistai...etc...<br>        indexed:     nil<br>        webClient:     WebClient(Connected: <a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br><br>[] in MCHttpRepository>>allFileNames<br>    Receiver: a MCHttpRepository(<a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>)<br>    Arguments and temporary variables: <br><<error during printing><br>    Receiver's instance variables: <br>        creationTemplate:     nil<br>        storeDiffs:     nil<br>        cache:     a Dictionary('VMConstruction-Plugins-OSProcessPlugin.oscog-nice.62.mcz'-...etc...<br>        allFileNamesCache:     nil<br>        allVersionNamesCache:     nil<br>        location:     '<a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br>        user:     'nice'<br>        password:     XXXX<br>        readerCache:     a Dictionary('VMConstruction-Plugins-OSProcessPlugin.oscog-Alistai...etc...<br>        indexed:     nil<br>        webClient:     WebClient(Connected: <a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br><br>BlockClosure>>on:do:<br>    Receiver: [closure] in MCHttpRepository>>allFileNames<br>    Arguments and temporary variables: <br>        exceptionOrExceptionSet:     HTTPProgress<br>        handlerAction:     [closure] in [] in MCHttpRepository>>displayProgress:during:<br>        handlerActive:     true<br>    Receiver's instance variables: <br>        outerContext:     MCHttpRepository>>allFileNames<br>        startpc:     106<br>        numArgs:     0<br><br>[] in MCHttpRepository>>displayProgress:during:<br>    Receiver: a MCHttpRepository(<a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>)<br>    Arguments and temporary variables: <br><<error during printing><br>    Receiver's instance variables: <br>        creationTemplate:     nil<br>        storeDiffs:     nil<br>        cache:     a Dictionary('VMConstruction-Plugins-OSProcessPlugin.oscog-nice.62.mcz'-...etc...<br>        allFileNamesCache:     nil<br>        allVersionNamesCache:     nil<br>        location:     '<a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br>        user:     'nice'<br>        password:     XXXX<br>        readerCache:     a Dictionary('VMConstruction-Plugins-OSProcessPlugin.oscog-Alistai...etc...<br>        indexed:     nil<br>        webClient:     WebClient(Connected: <a href="http://www.squeaksource.com" target="_blank">http://www.squeaksource.com</a>)<br><br>[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:<br>    Receiver: a MorphicUIManager<br>    Arguments and temporary variables: <br><<error during printing><br>    Receiver's instance variables: <br>        builderClass:     MorphicToolBuilder<br><br>BlockClosure>>on:do:<br>    Receiver: [closure] in [] in MorphicUIManager>>displayProgress:at:from:to:during:<br>    Arguments and temporary variables: <br>        exceptionOrExceptionSet:     ProgressNotification<br>        handlerAction:     [closure] in [] in MorphicUIManager>>displayProgress:at:from:to:during:...etc...<br>        handlerActive:     true<br>    Receiver's instance variables: <br>        outerContext:     [] in MorphicUIManager>>displayProgress:at:from:to:during:<br>        startpc:     146<br>        numArgs:     0<br><br>[] in MorphicUIManager>>displayProgress:at:from:to:during:<br>    Receiver: a MorphicUIManager<br>    Arguments and temporary variables: <br><<error during printing><br>    Receiver's instance variables: <br>        builderClass:     MorphicToolBuilder<br><br>BlockClosure>>ensure:<br>    Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:<br>    Arguments and temporary variables: <br>        aBlock:     [closure] in MorphicUIManager>>displayProgress:at:from:to:during:<br>        complete:     nil<br>        returnValue:     nil<br>    Receiver's instance variables: <br>        outerContext:     MorphicUIManager>>displayProgress:at:from:to:during:<br>        startpc:     139<br>        numArgs:     0<br><br>MorphicUIManager>>displayProgress:at:from:to:during:<br>    Receiver: a MorphicUIManager<br>    Arguments and temporary variables: <br>        titleString:     'Updating <a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br>        aPoint:     549@373<br>        minVal:     0.0<br>        maxVal:     1.0<br>        workBlock:     [closure] in MCHttpRepository>>displayProgress:during:<br>        progress:     [closure] in SystemProgressMorph>>position:label:min:max:<br>        result:     #(nil)<br>    Receiver's instance variables: <br>        builderClass:     MorphicToolBuilder<br><br>ProgressInitiationException>>defaultResumeValue<br>    Receiver: ProgressInitiationException: <br>    Arguments and temporary variables: <br><br>    Receiver's instance variables: <br>        messageText:     nil<br>        tag:     nil<br>        signalContext:     ProgressInitiationException(Exception)>>signal<br>        handlerContext:     nil<br>        outerContext:     nil<br>        workBlock:     [closure] in MCHttpRepository>>displayProgress:during:<br>        maxVal:     1.0<br>        minVal:     0.0<br>        aPoint:     549@373<br>        progressTitle:     'Updating <a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br><br>ProgressInitiationException(Exception)>>resume<br>    Receiver: ProgressInitiationException: <br>    Arguments and temporary variables: <br><br>    Receiver's instance variables: <br>        messageText:     nil<br>        tag:     nil<br>        signalContext:     ProgressInitiationException(Exception)>>signal<br>        handlerContext:     nil<br>        outerContext:     nil<br>        workBlock:     [closure] in MCHttpRepository>>displayProgress:during:<br>        maxVal:     1.0<br>        minVal:     0.0<br>        aPoint:     549@373<br>        progressTitle:     'Updating <a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br><br>ProgressInitiationException>>defaultAction<br>    Receiver: ProgressInitiationException: <br>    Arguments and temporary variables: <br><br>    Receiver's instance variables: <br>        messageText:     nil<br>        tag:     nil<br>        signalContext:     ProgressInitiationException(Exception)>>signal<br>        handlerContext:     nil<br>        outerContext:     nil<br>        workBlock:     [closure] in MCHttpRepository>>displayProgress:during:<br>        maxVal:     1.0<br>        minVal:     0.0<br>        aPoint:     549@373<br>        progressTitle:     'Updating <a href="http://www.squeaksource.com/OSProcessPlugin" target="_blank">http://www.squeaksource.com/OSProcessPlugin</a>'<br><br>UndefinedObject>>handleSignal:<br>    Receiver: nil<br>    Arguments and temporary variables: <br>        exception:     ProgressInitiationException: <br>    Receiver's instance variables: <br>nil<br><br><br>--- The full stack ---<br>WebResponse(Object)>>error:<br>WebResponse>>readFrom:<br>WebClient>>sendRequest:contentBlock:<br>WebClient>>sendRequest:content:size:<br>WebClient>>sendRequest:<br>WebClient>>httpGet:do:<br>MCHttpRepository>>httpGet:arguments:<br>[] in MCHttpRepository>>allFileNames<br>BlockClosure>>on:do:<br>[] in MCHttpRepository>>displayProgress:during:<br>[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:<br>BlockClosure>>on:do:<br>[] in MorphicUIManager>>displayProgress:at:from:to:during:<br>BlockClosure>>ensure:<br>MorphicUIManager>>displayProgress:at:from:to:during:<br>ProgressInitiationException>>defaultResumeValue<br>ProgressInitiationException(Exception)>>resume<br>ProgressInitiationException>>defaultAction<br>UndefinedObject>>handleSignal:<br> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>ProgressInitiationException(Exception)>>signal<br>ProgressInitiationException>>display:at:from:to:during:<br>ProgressInitiationException class>>display:at:from:to:during:<br>ByteString(String)>>displayProgressAt:from:to:during:<br>ByteString(String)>>displayProgressFrom:to:during:<br>MCHttpRepository>>displayProgress:during:<br>MCHttpRepository>>allFileNames<br>MCHttpRepository(MCFileBasedRepository)>>notifyList<br>MCHttpRepository(MCRepository)>>sendNotificationsForVersion:<br>MCHttpRepository(MCRepository)>>storeVersion:<br>[] in MCWorkingCopyBrowser>>saveVersion<br>BlockClosure>>ensure:<br>CursorWithMask(Cursor)>>showWhile:<br>MCWorkingCopyBrowser>>saveVersion<br>PluggableButtonMorphPlus(PluggableButtonMorph)>>performAction<br>-- and more not shown --<br><br><div class="gmail_quote"><div dir="ltr">Le sam. 5 janv. 2019 à 03:40, David T. Lewis <<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, Jan 04, 2019 at 04:42:53PM -0800, Eliot Miranda wrote:<br>
> Hi Chris,<br>
> <br>
> On Sat, Nov 24, 2018 at 9:03 PM Chris Muller <<a href="mailto:ma.chris.m@gmail.com" target="_blank">ma.chris.m@gmail.com</a>> wrote:<br>
> <br>
> > Well, I've been running the latest code and VM every day on my laptop<br>
> > as a Personal Squeaksource server and using it for all of my<br>
> > development these last weeks.<br>
> ><br>
> > It went so smoothly I also decided push on it by downloading the<br>
> > entire <a href="http://squeaksource.com" rel="noreferrer" target="_blank">squeaksource.com</a> (17GB!) and starting it locally using this<br>
> > same new code, but with different Repository combination more suitable<br>
> > to that application (ImagePersistence + FileSystem).  That exposed a<br>
> > couple of minor bugs which are now fixed and committed to the /ss<br>
> > repository.  I'm going to bang on it one more time but I believe that<br>
> > guy is ready to upgrade too!<br>
> ><br>
> > If you happened to try Personal SqueakSource and have any negative<br>
> > feedback, please let me know soon, otherwise I'll start thinking about<br>
> > upgrading it on the server and kissing the timeouts goodbye.<br>
> ><br>
> <br>
> Thank you *SO* much!  It has been such a joy not having to deal with<br>
> timeouts any more.  Committing feels slick and reliable.  Great work.<br>
> <br>
<br>
+1000<br>
<br>
It is working great now. We'll do a similar update to the <a href="http://squeaksource.com" rel="noreferrer" target="_blank">squeaksource.com</a><br>
server RSN to bring it up to date with modern Squeak image and VMs as well.<br>
That will get both services running on the same code base, and should improve<br>
performance and reliability as well. <br>
<br>
Dave<br>
<br>
<br>
</blockquote></div></div></div></div>
<br>
</blockquote></div>
<br>
</blockquote></div>