Sip.js: 警告:EventEmitterのメモリリークが検出された可能性があります。 11人のリスナーが追加されました。 制限を増やすには、emitter.setMaxListeners()を使用します。

作成日 2018年06月07日  ·  8コメント  ·  ソース: onsip/SIP.js

0.11.0に切り替えた後、コンソールでEventEmitterメモリリークエラーが発生する可能性があります。 エラーとともに提供されるトレースは次のとおりです。
Firefoxから:

EventEmitter.prototype.addListener    webpack://SIP/./node_modules/events/events.js?:138:7
InviteClientTransaction               webpack://SIP/./src/Transactions.js?:148:5
send                                  webpack://SIP/./src/RequestSender.js?:40:36
sendRequest                           webpack://SIP/./src/Session.js?:198:7
sendReinvite/<                        webpack://SIP/./src/Session.js?:466:9

Chromeから:

EventEmitter.addListener | @ | events.js:144
InviteClientTransaction | @ | Transactions.js:148
send | @ | RequestSender.js:40
sendRequest | @ | Session.js:209
(anonymous) | @ | Session.js:466
Promise.then (async) |   |  
sendReinvite | @ | Session.js:465
unhold | @ | Session.js:359

これは、通話を保留解除したときに発生します。 私が提供できるより多くの情報があれば私に知らせてください。

bug

最も参考になるコメント

ええ、これは輸送作業に関連しているようです。 責任の一部を個々のコンポーネントに移しましたが、発生している問題はおそらく関連しています。 うまくいけば月曜日か火曜日までにこれのパッチを出すつもりです。 これを追跡するために時間を費やしてくれてありがとう。

全てのコメント8件

完全なログを投稿できますか?


raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | configuration parameters after validation:
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · viaHost: "a6dspn71f48f.invalid"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · uri: sip:[email protected]
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · custom: {}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · displayName: "Softphone"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · password: NOT SHOWN
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · registerExpires: 600
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · register: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · registrarServer: sip:ian-web-phone.datto.net
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · transportConstructor: undefined
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · transportOptions: {"wsServers":"wss://127.0.0.1:8089/ws"}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · userAgentString: "SIP.js/0.11.0"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · noAnswerTimeout: 30000
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · hackViaTcp: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · hackIpInContact: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · hackWssInTransport: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · hackAllowUnregisteredOptionTags: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · sessionDescriptionHandlerFactoryOptions: {"constraints":{"audio":true,"video":false}}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · contactName: "jiavbjr5"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · contactTransport: "wss"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · forceRport: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · autostart: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · autostop: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · rel100: "none"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · dtmfType: "info"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · replaces: "none"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · sessionDescriptionHandlerFactory: function defaultFactory(session, observer, options) {
    return new SessionDescriptionHandler(session, observer, options);
  }
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · authenticationFactory: undefined
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · allowLegacyNotifications: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · allowOutOfDialogRefers: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · authorizationUser: "1060"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · instanceId: "96fb555d-f116-41d6-8ced-bc5e7a47f0cd"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · sipjsId: "k6gsk"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | · hostportParams: "ian-web-phone.datto.net"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | user requested startup...
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | configuration parameters after validation:
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · wsServers: [{"ws_uri":"wss://ian-web-phone.datto.net:8089/ws","sip_uri":"<sip:ian-web-phone.datto.net:8089;transport=ws;lr>","weight":0,"isError":false,"scheme":"WSS"}]
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · connectionTimeout: 5
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · maxReconnectionAttempts: 3
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · reconnectionTimeout: 4
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · keepAliveInterval: 0
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · keepAliveDebounce: 10
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | · traceSip: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | connecting to WebSocket wss://ian-web-phone.datto.net:8089/ws
raven.js:55 Fri Jun 08 2018 10:58:19 GMT-0400 (Eastern Daylight Time) | sip.transport | WebSocket wss://ian-web-phone.datto.net:8089/ws connected
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | SessionDescriptionHandlerOptions: {"constraints":{"audio":true,"video":false}}
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | initPeerConnection
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | New peer connection created
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | acquiring local media
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | acquired local media streams
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | RTCIceGatheringState changed: gathering
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:1051995033 1 udp 2122260223 172.18.0.1 33419 typ host generation 0 ufrag hUwX network-id 1 network-cost 50
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:434636113 1 udp 2122194687 10.70.81.124 52730 typ host generation 0 ufrag hUwX network-id 2 network-cost 10
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:3717574005 1 udp 1686052607 69.195.39.134 1929 typ srflx raddr 172.18.0.1 rport 33419 generation 0 ufrag hUwX network-id 1 network-cost 50
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:4026039429 1 udp 1685987071 69.195.39.134 26353 typ srflx raddr 10.70.81.124 rport 52730 generation 0 ufrag hUwX network-id 2 network-cost 10
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:1882707817 1 tcp 1518280447 172.18.0.1 9 typ host tcptype active generation 0 ufrag hUwX network-id 1 network-cost 50
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:1466694049 1 tcp 1518214911 10.70.81.124 9 typ host tcptype active generation 0 ufrag hUwX network-id 2 network-cost 10
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | RTCIceGatheringState changed: complete
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.dialog | new UAC dialog created with status EARLY
raven.js:55 {success: true, returnValue: {…}, errors: null}
raven.js:55 Fri Jun 08 2018 10:58:28 GMT-0400 (Eastern Daylight Time) | sip.dialog | dialog k6gsk85mol4dbbf6tmqhlmvr81j9b1as6550d4ad  changed to CONFIRMED state
raven.js:55 Fri Jun 08 2018 10:58:28 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | track added
raven.js:55 (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
EventEmitter.addListener @ events.js:138
InviteClientTransaction @ Transactions.js:148
send @ RequestSender.js:40
sendRequest @ Session.js:209
(anonymous) @ Session.js:466
Promise.then (async)
sendReinvite @ Session.js:465
unhold @ Session.js:359
unholdCall @ Phone.js:621
toggleHold @ Phone.js:568
raven.js:55 Fri Jun 08 2018 10:58:31 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | track added

私のテストではこれは見られません。 なぜすべてがraven.jsと言っていて、行番号が実際には意味をなさないのですか。 これを引き起こしている可能性のあるカスタムコードはありますか?

私はravenを使用するロギングにSentryを使用しており、そこからraven.jsと55行目が使用されています。 Sentryを無効にしても同じエラーが発生し、レイヴンの代わりにLoggerFactory.js:78ます。 ソフトフォンはセールスフォースのCTIアダプタとして機能していますが、セールスフォースの外部でもエラーが発生します。 0.10.0では見ていなかったので、トランスポートの変更に関係があるのではないかと思いました。

トランスポート作業のために新しいイベントリスナーがSIP.jsに内部的に追加されたため、それが表示されている理由を明確に説明できます。 そしてそれが私たちが決定しようとしていたことです。 とはいえ、これは単なる警告であり、数が制御不能になっていない場合は、無視しても問題ありません。

@JimGreenbergは、SIP.js内でこの制限を増やすことを調査し、将来のリリースで警告が消えるようにします。 または、PRを送信してこれを解決することもできます。 ありがとう

さらに調査してリスナー数を増やしてみると、増え続けるリスナーには確かに問題があるかもしれないことがわかりました。 EventEmitter.jsNodeEventEmitter.prototype._maxListeners = 15 EventEmitter.jsを追加しましたが、16人のリスナーと言って2、3回保留を解除すると、エラーが表示されました。 それから私はそれを100に増やし、さらに多くの保留を解除した後、同じエラーが発生しました。 エラーは、101人のリスナーが追加されたことを示しています。

ええ、これは輸送作業に関連しているようです。 責任の一部を個々のコンポーネントに移しましたが、発生している問題はおそらく関連しています。 うまくいけば月曜日か火曜日までにこれのパッチを出すつもりです。 これを追跡するために時間を費やしてくれてありがとう。

これは0.11.1+で修正されています

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

Pjata picture Pjata  ·  11コメント

raphaelhovsepyan picture raphaelhovsepyan  ·  6コメント

Fzwael picture Fzwael  ·  5コメント

Juli0GT picture Juli0GT  ·  5コメント

seanbright picture seanbright  ·  3コメント