localhost:27019,27020,27021 を mongodb サーバーとして使用し、最初に 5 スレッドで接続すると、各プロセスがデータを読み取り、例外がスローされます。使用する糸が 3 本以下であれば問題ありません。
しかし、3スレッドで接続に成功した場合、100プロセスで同じ接続を使用すると、mongoserverに再接続しない限り、例外がスローされなくなります。
=ERROR REPORT==== 3-Aug-2013::11:28:37 ===
** Generic server <0.164.0> terminating
** Last message in was {modify,#Fun<mvar.2.15158540>}
** When Server state == {{dict,3,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
[]},
{{[],[],[],
[[{"192.168.17.100",27019}|{}]],
[],
[[{"192.168.17.100",27021}|{}]],
[],[],[],[],[],[],
[[{"192.168.17.100",27020}|{}]],
[],[],[]}}},
#Fun<mvar.1.22957847>}
** Reason for termination ==
** {badarg,[{dict,fetch,
[{"localhost",27021},
{dict,3,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],[],[],
[[{"192.168.17.100",27019}|{}]],
[],
[[{"192.168.17.100",27021}|{}]],
[],[],[],[],[],[],
[[{"192.168.17.100",27020}|{}]],
[],[],[]}}}]},
{mongo_replset,remove_host,2},
{sets,fold_bucket,3},
{sets,fold_seg,4},
{sets,fold_segs,4},
{mongo_replset,'-fetch_member_info/1-fun-3-',3},
{mvar,'-modify_/2-fun-0-',2},
{mvar,handle_call,3}]}
Pid {<0.88.0>,
{badarg,[{dict,fetch,
[{"localhost",27021},
{dict,3,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],[],[],
[[{"192.168.17.100",27019}|{}]],
[],
[[{"192.168.17.100",27021}|{}]],
[],[],[],[],[],[],
[[{"192.168.17.100",27020}|{}]],
[],[],[]}}}]},
{mongo_replset,remove_host,2},
{sets,fold_bucket,3},
{sets,fold_seg,4},
{sets,fold_segs,4},
{mongo_replset,'-fetch_member_info/1-fun-3-',3},
{mvar,'-modify_/2-fun-0-',2},
{mvar,handle_call,3}]}} Exit!!!!!