0

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!!!!!
4

1 に答える 1

1

エラー ログで、接続がプロセス ディクショナリに{"192.168.17.100",27019}... として格納されていること、およびフォームのタプルを探すときにプログラムが失敗することを確認できます{"localhost",27021}。明らかに、ローカルホスト アドレスは である必要があり、作成しているさまざまなテストの間で、ローカルホストの異なる形式 ("localhost" と "192.168.17.100") を使用して192.168.17.100、直接またはそうでない関数を呼び出します。dict:fetch/2

于 2013-08-04T08:54:19.830 に答える