[Pharo-dev] How do diagnose image locks up (cpu 100%) on save?

Sven Van Caekenberghe sven at stfx.eu
Fri Aug 23 07:21:28 EDT 2013

On 23 Aug 2013, at 12:45, Norbert Hartl <norbert at hartl.name> wrote:

> strange but true I have a similar problem as of today. I don't have RFB installed I just installed zinc and use it. I can reproduce the behavior partially:
> Opening the image and saving works. Opening, starting a zinc server does as well. But opening, starting the zinc server and issue a request from a browser freezes the image when saving it. If I only issue one request from a browser the image freezes for something between half a minute and a minute. That smells like a timeout problem to me. The issue requested from the browser ends in "self halt" so there is an exception going on. I didn't switch zinc into debugMode for this. 
> I wanted to get some more information in the loop by issuing a USR1 signal to the vm when it hangs. But in my case it does not write a dump file into my working directory. 
> This should be assured behavior that whenever a USR1 signal is received by the vm that it always writes a file? I have plenty of space left on my device.
> Norbert

I don't know what is happening, but I just tried something similar in Paul's image:

ZnServer startDefaultOn: 1701
ZnServer default logToTranscript 

Open http://localhost:1701/dw-bench in a browser (which keeps the connection open for a while)

Save the image from the World menu, all is OK, with this on the Transcript

2013-08-23 13:14:05 269265 D Executing request/response loop
2013-08-23 13:14:05 269265 I Read a ZnRequest(GET /dw-bench)
2013-08-23 13:14:05 269265 T GET /dw-bench 200 7738B 3ms
2013-08-23 13:14:05 269265 I Wrote a ZnResponse(200 OK text/html;charset=utf-8 7738B)

----SNAPSHOT----an Array(23 August 2013 1:14:19 pm) rfb.image priorSource: 992874

2013-08-23 13:14:19 660707 D Releasing server socket
2013-08-23 13:14:19 660707 I Stopped ZnManagingMultiThreadedServer HTTP port 1701
2013-08-23 13:14:19 660707 D Closing SocketStream[inbuf:4kb/outbuf:16kb]
2013-08-23 13:14:19 269265 D PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in Socket failed while reading request
2013-08-23 13:14:19 269265 D Closing stream
2013-08-23 13:14:19 269265 D Could not remove SocketStream[inbuf:4kb/outbuf:16kb] ignoring

2013-08-23 13:14:19 660707 I Starting ZnManagingMultiThreadedServer HTTP port 1701
2013-08-23 13:14:19 605507 D Initializing server socket

After the save, the number of Processes is OK (one server listener process) and the number of Sockets is OK (the server socket, with its finalization double).

As you can see above, Zn restarts running (managed) servers and tries to close open (worker) connections, swallowing any failures, and eventually cleaning up and recovering.

Now, this is the normal behaviour, maybe something did change somewhere.


> Am 23.08.2013 um 02:13 schrieb Paul DeBruicker <pdebruic at gmail.com>:
>> So when you open the image I posted and in the workspace run
>> RFBServer start.
>> Smalltalk snapshot: true andQuit: false.
>> Everything works fine?  It doesn't go to 100% cpu use?
>> --
>> View this message in context: http://forum.world.st/How-do-diagnose-image-locks-up-cpu-100-on-save-tp4704639p4704698.html
>> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.

More information about the Pharo-dev mailing list