我使用Mongotalk和Pharo进行一系列分析。
对于每个分析,我运行一个具有相同图像的新Pharo实例,它一切正常,直到随机点,我得到一个PrimitiveFailed,如下所示:
^[[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
之后,即使我为每个人运行一个新的Pharo流程,我的所有分析都会失败。
任何人都有任何想法,这里有什么问题,为什么?
欢呼声,
答案 0 :(得分:0)
曾经有一个1024个套接字限制somewhere。 vm列表可能是最好的地方
答案 1 :(得分:0)
通过修改我的客户端代码来解决这个问题,以便不那么频繁地存储更多数据(即在内存中缓存更多)并且问题消失了,现在我甚至可以并行运行16个Pharo实例。