原始#primSocketSendDone:在Socket中失败

时间:2015-01-05 14:13:52

标签: mongodb smalltalk pharo

我使用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流程,我的所有分析都会失败。

任何人都有任何想法,这里有什么问题,为什么?

欢呼声,

2 个答案:

答案 0 :(得分:0)

曾经有一个1024个套接字限制somewhere。 vm列表可能是最好的地方

答案 1 :(得分:0)

通过修改我的客户端代码来解决这个问题,以便不那么频繁地存储更多数据(即在内存中缓存更多)并且问题消失了,现在我甚至可以并行运行16个Pharo实例。