[Pharo-project] Swazoo keeping HTTPConnections open
Hi list, I don't know where should I address this issue, so please excuse me if this mail is a bit off-topic. I've been running an Iliad app in Pharo for a couple of months, and just today I realised the image was behaving quite sluggish, so I checked the process browser and discovered thousands (literally) of Delay >> wait instances going on. Inspecting them, I found out they had all been spawned by Swazoo's HTTPConnection >> interact. So what I did is HTTPConnection allInstancesDo: [:c | c close], which took quite a while to conclude, and the problem was solved, but these processes keep on spawning every time a user logs in, and they never seem to die unless I tell them to. Also, killing these processes seems to have no effect on the application behaviour at all, all sessions stay where they should and everything is alright, so I'm even considering using a scheduler that kills'em'all every hour or so (how elegant could this be!) Has anybody ran into a similar issue before? Thanks! -- Bernat Romagosa.
Hi Bernat, I have a patch that may solve your problem that will be integrated mainstream. In the meantime: HTTPConnection>>close self stream notNil ifTrue: [self stream close. stream := nil]. self server notNil ifTrue: [self server removeConnection: self]. self loop notNil ifTrue: [ | process | process := loop. loop := nil. process terminate] HTH, Nicolas Le mercredi 22 juin 2011 à 11:36 +0200, Bernat Romagosa a écrit :
Hi list, I don't know where should I address this issue, so please excuse me if this mail is a bit off-topic.
I've been running an Iliad app in Pharo for a couple of months, and just today I realised the image was behaving quite sluggish, so I checked the process browser and discovered thousands (literally) of Delay >> wait instances going on. Inspecting them, I found out they had all been spawned by Swazoo's HTTPConnection >> interact.
So what I did is HTTPConnection allInstancesDo: [:c | c close], which took quite a while to conclude, and the problem was solved, but these processes keep on spawning every time a user logs in, and they never seem to die unless I tell them to.
Also, killing these processes seems to have no effect on the application behaviour at all, all sessions stay where they should and everything is alright, so I'm even considering using a scheduler that kills'em'all every hour or so (how elegant could this be!)
Has anybody ran into a similar issue before?
Thanks!
-- Bernat Romagosa.
-- Nicolas Petton http://www.nicolas-petton.fr
Thanks! :) 2011/6/22 Nicolas Petton <petton.nicolas@gmail.com>
Hi Bernat,
I have a patch that may solve your problem that will be integrated mainstream. In the meantime:
HTTPConnection>>close self stream notNil ifTrue: [self stream close. stream := nil]. self server notNil ifTrue: [self server removeConnection: self]. self loop notNil ifTrue: [ | process | process := loop. loop := nil. process terminate]
HTH, Nicolas
Le mercredi 22 juin 2011 à 11:36 +0200, Bernat Romagosa a écrit :
Hi list, I don't know where should I address this issue, so please excuse me if this mail is a bit off-topic.
I've been running an Iliad app in Pharo for a couple of months, and just today I realised the image was behaving quite sluggish, so I checked the process browser and discovered thousands (literally) of Delay >> wait instances going on. Inspecting them, I found out they had all been spawned by Swazoo's HTTPConnection >> interact.
So what I did is HTTPConnection allInstancesDo: [:c | c close], which took quite a while to conclude, and the problem was solved, but these processes keep on spawning every time a user logs in, and they never seem to die unless I tell them to.
Also, killing these processes seems to have no effect on the application behaviour at all, all sessions stay where they should and everything is alright, so I'm even considering using a scheduler that kills'em'all every hour or so (how elegant could this be!)
Has anybody ran into a similar issue before?
Thanks!
-- Bernat Romagosa.
-- Nicolas Petton http://www.nicolas-petton.fr
-- Bernat Romagosa.
Patch included in Swazoo. Thanks Nico! - http://www.squeaksource.com/Swazoo/Swazoo-2.3beta2.3 - ConfigurationOfSwazoo2 2.3 also updated Best regards Janko S, Nicolas Petton piše:
Hi Bernat,
I have a patch that may solve your problem that will be integrated mainstream. In the meantime:
HTTPConnection>>close self stream notNil ifTrue: [self stream close. stream := nil]. self server notNil ifTrue: [self server removeConnection: self]. self loop notNil ifTrue: [ | process | process := loop. loop := nil. process terminate]
HTH, Nicolas
Le mercredi 22 juin 2011 à 11:36 +0200, Bernat Romagosa a écrit :
Hi list, I don't know where should I address this issue, so please excuse me if this mail is a bit off-topic.
I've been running an Iliad app in Pharo for a couple of months, and just today I realised the image was behaving quite sluggish, so I checked the process browser and discovered thousands (literally) of Delay >> wait instances going on. Inspecting them, I found out they had all been spawned by Swazoo's HTTPConnection >> interact.
So what I did is HTTPConnection allInstancesDo: [:c | c close], which took quite a while to conclude, and the problem was solved, but these processes keep on spawning every time a user logs in, and they never seem to die unless I tell them to.
Also, killing these processes seems to have no effect on the application behaviour at all, all sessions stay where they should and everything is alright, so I'm even considering using a scheduler that kills'em'all every hour or so (how elegant could this be!)
Has anybody ran into a similar issue before?
Thanks!
-- Bernat Romagosa.
participants (3)
-
Bernat Romagosa -
Janko Mivšek -
Nicolas Petton