I am using Mongotalk and Pharo to run a bunch of analyses.
For every analysis I run a new Pharo instance with the same image and it all works fine until, at a random point, I get a PrimitiveFailed as follows:
^[[31mPrimitiveFailed: primitive #primSocketSendDone: in Socket failed
^[[0mSocket(Object)>>primitiveFailed:
Socket(Object)>>primitiveFailed
Socket>>primSocketSendDone:
Socket>>waitForSendDoneFor:
Socket>>sendSomeData:startIndex:count:for:
Socket>>sendSomeData:startIndex:count:
Socket>>sendData:count:
SocketStream>>flush in Block: [ socket sendData: outBuffer count: outNextToWrite...etc...
BlockClosure>>on:do:
SocketStream>>flush
LittleEndianStream>>flush
InsertOperation(MongoOperation)>>flush
InsertOperation(MongoOperation)>>write
Mongo>>insert:collection:
MongoDatabase>>insert:collection:
MongoCollection>>insert:
MongoCollection>>add:
MyClass>>methodThatCallsAddOnMongoCollection
and after that all my analyses fail even though I run a new Pharo process for each one.
Anyone got any ideas what is wrong here and why?
cheers,
Solved it by modifying my client code to store more data less frequently (i.e. cache more in memory) and the problem went away, now i can even run 16 Pharo instances in parallel.