-
Notifications
You must be signed in to change notification settings - Fork 53
Description
Using libp2p latest master, I am getting this error systematically:
libp2p:gossipsub:error createOutboundStream error Error: Too many outgoing protocol streams
at ConnectionImpl.newStream [as _newStream] (file:///home/fryorcraken/src/libp2p/js-libp2p/src/upgrader.ts:436:27)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ConnectionImpl.newStream (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/connection/src/index.ts:121:20)
at async EventTarget.createOutboundStream (file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:699:4)
at async file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:491:11 {
code: 'ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS'
This is coming from https://github.com/libp2p/js-libp2p/blob/627b8bf87c775762dd6a9de69b77852e48ebcf26/src/upgrader.ts#L433
There is already a check preventing GossipSub
to open several outbound streams:
js-libp2p-gossipsub/src/index.ts
Line 672 in 0e76f49
if (this.streamsOutbound.has(id)) { |
However, the existing outbound stream is not detected.
Looking at the logs, I believe that libp2p is opening the outbound stream for the gossip protocol automatically upon connection, and because this stream was not opened by GossipSub
, then it is not aware of it and the check does not catch it.
I use Libp2p.dialProtocol
.
I need to do further investigation to confirm than dialProtocol
indeed opens the outbound stream automatically.
If that's correct then the fix I could implement would be to check on the connection
object whether an outbound stream is already opened for the protocol. If so, add it to GossipSub.streamsOutbound
:
js-libp2p-gossipsub/src/index.ts
Line 672 in 0e76f49
if (this.streamsOutbound.has(id)) { |
Let me know your thoughts on the propose fixed.
FYI, the logs (I added some console.log
in there), /vac/waku/relay*
are the gossip protocols I use.
libp2p:gossipsub initialized +0ms
libp2p:connection-manager options: { maxConnections: 300, minConnections: 50, maxData: Infinity, maxSentData: Infinity, maxReceivedData: Infinity, maxEventLoopDelay: Infinity, pollInterval: 2000, autoDialInterval: 10000, movingAverageInterval: 60000, autoDial: true, maxParallelDials: 100, maxDialsPerPeer: 4, dialTimeout: 30000, inboundUpgradeTimeout: 30000, resolvers: { dnsaddr: [AsyncFunction: dnsaddrResolver] }, addressSorter: [Function: publicAddressesFirst] } +0ms
libp2p:connection-manager:latency-monitor latencyCheckIntervalMs: 500 dataEmitIntervalMs: 5000 +0ms
libp2p:connection-manager:latency-monitor Expecting ~0.1 events per summary +0ms
libp2p:connection-manager:latency-monitor Using process.hrtime for timing +0ms
libp2p:connection-manager:auto-dialler options: {"enabled":true,"minConnections":50,"autoDialInterval":10000} +0ms
libp2p:transports adding transport @libp2p/websockets +0ms
libp2p:transports adding transport libp2p/circuit-relay-v1 +0ms
libp2p:peer-store:proto-book:trace add await write lock +0ms
libp2p libp2p is starting +0ms
libp2p:peer-store:proto-book:trace add await write lock +1ms
libp2p:peer-store:proto-book:trace add got write lock +0ms
libp2p:transports no addresses were provided for listening, this node is dial only +3ms
libp2p:gossipsub starting +71ms
libp2p:peer-store:trace getPeers await read lock +0ms
libp2p:connection-manager:auto-dialler started +5ms
libp2p:peer-store:metadata-book:trace setValue await write lock +0ms
libp2p:peer-store:proto-book:trace add await write lock +3ms
libp2p:peer-store:proto-book:trace add await write lock +0ms
libp2p:connection-manager started +9ms
pipe Set(0) {}
libp2p:peer-store:proto-book:trace add await write lock +1ms
libp2p:peer-store:proto-book:trace add await write lock +0ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +0ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:proto-book:trace add got write lock +1ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +2ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:trace getPeers got read lock +5ms
libp2p:peer-store:trace getPeers release read lock +1ms
libp2p:peer-store:metadata-book:trace setValue got write lock +7ms
libp2p:peer-store:metadata-book:trace setValue release write lock +1ms
libp2p:peer-store:metadata-book:trace setValue await write lock +0ms
libp2p:peer-store:proto-book:trace add got write lock +3ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +4ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:proto-book:trace add got write lock +0ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +1ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:proto-book:trace add got write lock +0ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +1ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:proto-book:trace add got write lock +0ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +1ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:gossipsub:score started +0ms
libp2p:gossipsub started +13ms
libp2p:peer-store:metadata-book:trace setValue got write lock +5ms
libp2p:gossipsub JOIN /waku/2/default-waku/proto +0ms
libp2p:peer-store:metadata-book:trace setValue release write lock +1ms
libp2p:peer-store:proto-book:trace add await write lock +2ms
libp2p:peer-store:proto-book:trace add got write lock +0ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +3ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:proto-book:trace add await write lock +0ms
libp2p:peer-store:proto-book:trace add got write lock +0ms
libp2p:peer-store:proto-book added provided protocols for 12D3KooWHHrYfFBGL21F187br5JshS2u5F3krqZbWPs7MjqhW7tx +1ms
libp2p:peer-store:proto-book:trace add release write lock +1ms
libp2p:peer-store:trace getPeers await read lock +11ms
libp2p:peer-store:trace getPeers got read lock +0ms
libp2p libp2p has started +19ms
libp2p:peer-store:address-book:trace add await write lock +0ms
libp2p:peer-store:trace getPeers release read lock +2ms
libp2p:peer-store:address-book:trace add got write lock +1ms
libp2p:peer-store:address-book added multiaddrs for 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +0ms
libp2p:peer-store:address-book:trace set release write lock +3ms
libp2p:connection-manager dial to 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +21ms
libp2p:dialer check multiaddrs 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +0ms
libp2p:dialer creating dial target for 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +0ms
libp2p:peer-store:address-book:trace get wait for read lock +1ms
libp2p:peer-store:address-book:trace get got read lock +0ms
libp2p:peer-store:address-book:trace get release read lock +0ms
libp2p:dialer 1 tokens request, returning 1, 99 remaining +3ms
libp2p:websockets dialing /ip4/127.0.0.1/tcp/8017/ws/p2p/16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +0ms
libp2p:websockets dialing 127.0.0.1:8017 +1ms
libp2p:websockets connected /ip4/127.0.0.1/tcp/8017/ws/p2p/16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +5ms
libp2p:websockets new outbound connection /ip4/127.0.0.1/tcp/8017/ws/p2p/16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +0ms
libp2p:upgrader Starting the outbound connection upgrade +0ms
libp2p:upgrader selecting outbound crypto protocol [ '/noise' ] +0ms
libp2p:mss:select select: write ["/multistream/1.0.0", "/noise"] +0ms
libp2p:mss:select select: read "/multistream/1.0.0" +2ms
libp2p:mss:select select: read "/noise" +1ms
libp2p:upgrader encrypting outbound connection to 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +4ms
libp2p:noise Stage 0 - Initiator starting to send first message. +0ms
libp2p:noise Stage 0 - Initiator finished sending first message. +1ms
libp2p:noise Stage 1 - Initiator waiting to receive first message from responder... +1ms
libp2p:noise Stage 1 - Initiator received the message. +10ms
libp2p:noise Initiator going to check remote's signature... +0ms
libp2p:noise All good with the signature! +38ms
libp2p:noise Stage 2 - Initiator sending third handshake message. +0ms
libp2p:noise Stage 2 - Initiator sent message with signed payload. +5ms
libp2p:upgrader outbound selecting muxer [ '/mplex/6.7.0' ] +112ms
libp2p:mss:select select: write ["/multistream/1.0.0", "/mplex/6.7.0"] +112ms
libp2p:mss:select select: read "/multistream/1.0.0" +6ms
libp2p:mss:select select: read "/mplex/6.7.0" +0ms
libp2p:upgrader /mplex/6.7.0 selected as muxer protocol +6ms
libp2p:upgrader Successfully upgraded outbound connection +0ms
libp2p:peer-store:key-book:trace set await write lock +0ms
libp2p:websockets outbound connection /ip4/127.0.0.1/tcp/8017/ws/p2p/16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 upgraded +129ms
libp2p:peer-store:key-book:trace set got write lock +1ms
libp2p:dialer token 0 released +135ms
libp2p:dialer dial succeeded to 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +1ms
libp2p:upgrader outbound: starting new stream on [ '/vac/waku/relay/2.0.0-beta2', '/vac/waku/relay/2.0.0' ] +8ms
libp2p:mplex new initiator stream 0 0 +0ms
libp2p:mplex:trace initiator stream 0 send { id: 0, type: 'NEW_STREAM (0)', data: '0' } +0ms
libp2p:mss:select select: write ["/multistream/1.0.0", "/vac/waku/relay/2.0.0-beta2"] +10ms
libp2p:peer-store:key-book:trace set release write lock +5ms
libp2p:connection-manager:trace checking limit of maxConnections. current value: 1 of 300 +0ms
libp2p:mplex:trace initiator stream 0 send {
id: 0,
type: 'MESSAGE_INITIATOR (2)',
data: '132f6d756c746973747265616d2f312e302e300a1c2f7661632f77616b752f72656c61792f322e302e302d62657461320a'
} +1ms
libp2p:upgrader outbound: starting new stream on [ '/ipfs/id/1.0.0' ] +4ms
libp2p:mplex new initiator stream 1 1 +4ms
libp2p:mplex:trace initiator stream 1 send { id: 1, type: 'NEW_STREAM (0)', data: '1' } +1ms
libp2p:mss:select select: write ["/multistream/1.0.0", "/ipfs/id/1.0.0"] +2ms
libp2p:mplex:trace incoming message { id: 1, type: 'NEW_STREAM (0)', data: '62da494fd7ac34000ae4eba6' } +1ms
libp2p:mplex new receiver stream 1 62da494fd7ac34000ae4eba6 +1ms
libp2p:mplex:trace initiator stream 1 send {
id: 1,
type: 'MESSAGE_INITIATOR (2)',
data: '132f6d756c746973747265616d2f312e302e300a0f2f697066732f69642f312e302e300a'
} +1ms
libp2p:mplex:trace incoming message {
id: 1,
type: 'MESSAGE_INITIATOR (2)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +0ms
libp2p:mss:handle read "/multistream/1.0.0" +0ms
libp2p:mss:handle respond with "/multistream/1.0.0" for "/multistream/1.0.0" +0ms
libp2p:mplex:trace receiver stream 1 send {
id: 1,
type: 'MESSAGE_RECEIVER (1)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +1ms
libp2p:mplex:trace incoming message {
id: 1,
type: 'MESSAGE_INITIATOR (2)',
data: '162f7661632f77616b752f72656c61792f322e302e300a'
} +0ms
libp2p:mss:handle read "/vac/waku/relay/2.0.0" +0ms
libp2p:mss:handle respond with "/vac/waku/relay/2.0.0" for "/vac/waku/relay/2.0.0" +0ms
libp2p:upgrader outbound: incoming stream opened on /vac/waku/relay/2.0.0 +3ms
onIncomingStream 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45
libp2p:gossipsub new peer 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +157ms
libp2p:gossipsub create inbound stream 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +1ms
for await Set(0) {}
id 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45
streamsOutbound Map(0) {}
pendingStreamsOutbound Set(0) {}
create outbound stream %p 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45
Added Set(1) { '16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45' }
libp2p:upgrader outbound: starting new stream on [ '/vac/waku/relay/2.0.0-beta2', '/vac/waku/relay/2.0.0' ] +3ms
libp2p:mplex new initiator stream 2 2 +5ms
libp2p:upgrader No abort signal was passed while trying to negotiate protocols [ '/vac/waku/relay/2.0.0-beta2', '/vac/waku/relay/2.0.0' ] falling back to default timeout +0ms
libp2p:mplex:trace initiator stream 2 send { id: 2, type: 'NEW_STREAM (0)', data: '2' } +3ms
libp2p:mss:select select: write ["/multistream/1.0.0", "/vac/waku/relay/2.0.0-beta2"] +6ms
libp2p:mplex:trace receiver stream 1 send {
id: 1,
type: 'MESSAGE_RECEIVER (1)',
data: '162f7661632f77616b752f72656c61792f322e302e300a'
} +1ms
libp2p:mplex:trace incoming message { id: 2, type: 'NEW_STREAM (0)', data: '62da494fd7ac34000ae4eba7' } +0ms
libp2p:mplex new receiver stream 2 62da494fd7ac34000ae4eba7 +1ms
libp2p:mplex:trace initiator stream 2 send {
id: 2,
type: 'MESSAGE_INITIATOR (2)',
data: '132f6d756c746973747265616d2f312e302e300a1c2f7661632f77616b752f72656c61792f322e302e302d62657461320a'
} +0ms
libp2p:mplex:trace incoming message {
id: 2,
type: 'MESSAGE_INITIATOR (2)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +0ms
libp2p:mss:handle read "/multistream/1.0.0" +5ms
libp2p:mss:handle respond with "/multistream/1.0.0" for "/multistream/1.0.0" +0ms
libp2p:mplex:trace receiver stream 2 send {
id: 2,
type: 'MESSAGE_RECEIVER (1)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +1ms
libp2p:mplex:trace incoming message {
id: 2,
type: 'MESSAGE_INITIATOR (2)',
data: '0f2f697066732f69642f312e302e300a'
} +0ms
libp2p:mss:handle read "/ipfs/id/1.0.0" +1ms
libp2p:mss:handle respond with "/ipfs/id/1.0.0" for "/ipfs/id/1.0.0" +0ms
libp2p:upgrader outbound: incoming stream opened on /ipfs/id/1.0.0 +3ms
libp2p:peer-store:trace get await read lock +156ms
libp2p:peer-store:trace get got read lock +0ms
libp2p:mplex:trace receiver stream 2 send {
id: 2,
type: 'MESSAGE_RECEIVER (1)',
data: '0f2f697066732f69642f312e302e300a'
} +1ms
libp2p:peer-store:trace get release read lock +0ms
libp2p:mplex:trace receiver stream 2 send {
id: 2,
type: 'MESSAGE_RECEIVER (1)',
data: 'c7020a24080112206f0c93c855ec4712241492656f48b203284a3931abbabf75244a0152ef483c251a0e2f697066732f69642f312e302e301a132f697066732f69642f707573682f312e302e301a102f697066732f70696e672f312e302e301a1b2f6c69627032702f636972637569742f72656c61792f302e312e301a132f6c69627032702f66657463682f302e302e311a1c2f7661632f77616b752f66696c7465722f322e302e302d62657461311a152f7661632f77616b752f72656c61792f322e302e301a1b2f7661632f77616b752f72656c61792f322e302e302d62657461322234047f000001061f51dd03a5032700250802122103a8f1383791d4b1c8c7bc77fce2292ea3411c09c14416e5fff6fd6e230df7d9462a0a697066732f302e312e3032226a732d6c69627032702f302e302e3020557365724167656e743d7631362e31342e30'
} +1ms
libp2p:mplex:trace receiver stream 2 send { id: 2, type: 'CLOSE_RECEIVER (3)' } +0ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba7 sink end - err: undefined +0ms
libp2p:mplex:trace incoming message {
id: 0,
type: 'MESSAGE_RECEIVER (1)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +9ms
libp2p:mss:select select: read "/multistream/1.0.0" +14ms
libp2p:mplex:trace incoming message {
id: 0,
type: 'MESSAGE_RECEIVER (1)',
data: '1c2f7661632f77616b752f72656c61792f322e302e302d62657461320a'
} +1ms
libp2p:mss:select select: read "/vac/waku/relay/2.0.0-beta2" +1ms
libp2p:mplex:trace incoming message {
id: 1,
type: 'MESSAGE_RECEIVER (1)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +1ms
libp2p:mss:select select: read "/multistream/1.0.0" +0ms
libp2p:mplex:trace incoming message {
id: 1,
type: 'MESSAGE_RECEIVER (1)',
data: '0f2f697066732f69642f312e302e300a'
} +0ms
libp2p:mss:select select: read "/ipfs/id/1.0.0" +1ms
libp2p:mplex:trace incoming message {
id: 1,
type: 'MESSAGE_RECEIVER (1)',
data: '9b030a250802122103a8f1383791d4b1c8c7bc77fce2292ea3411c09c14416e5fff6fd6e230df7d9461208047f000001061f4b120a047f000001061f51dd031a0e2f697066732f69642f312e302e301a152f7661632f77616b752f72656c61792f322e302e301a102f697066732f70696e672f312e302e301a1a2f7661632f77616b752f737761702f322e302e302d62657461311a1b2f7661632f77616b752f73746f72652f322e302e302d6265746134220a047f000001068846dd032a0a697066732f302e312e3032106e696d2d6c69627032702f302e302e3142bf010a250802122103a8f1383791d4b1c8c7bc77fce2292ea3411c09c14416e5fff6fd6e230df7d946120203011a490a2700250802122103a8f1383791d4b1c8c7bc77fce2292ea3411c09c14416e5fff6fd6e230df7d94610c992e996061a0c0a0a047f000001061f51dd031a0a0a08047f000001061f4b2a473045022100dc69c250f9735e433577d777f241f54b34bb975605b37c9ac77a99b5ad9989a70220470664ffc902bb3c29fb2cf6400af92cff1c041a060916435a0be05388cc0b67'
} +1ms
libp2p:mplex:trace initiator stream 1 send { id: 1, type: 'CLOSE_INITIATOR (4)' } +0ms
libp2p:mplex:stream:trace initiator stream 1 sink end - err: undefined +12ms
libp2p:mplex:trace incoming message { id: 1, type: 'CLOSE_RECEIVER (3)' } +1ms
libp2p:mplex:stream:trace initiator stream 1 closeRead +0ms
libp2p:mplex:stream:trace initiator stream 1 source end - err: undefined +0ms
libp2p:mplex initiator stream 1 1 ended +16ms
libp2p:mplex:trace incoming message {
id: 1,
type: 'MESSAGE_INITIATOR (2)',
data: '200a1e0801121a2f77616b752f322f64656661756c742d77616b752f70726f746f'
} +1ms
libp2p:gossipsub rpc from 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +20ms
libp2p:gossipsub subscription update from 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 topic /waku/2/default-waku/proto +0ms
libp2p:mplex:trace incoming message {
id: 2,
type: 'MESSAGE_RECEIVER (1)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +1ms
libp2p:mss:select select: read "/multistream/1.0.0" +3ms
libp2p:mplex:stream:trace initiator stream 1 close +3ms
libp2p:mplex:stream:trace initiator stream 1 closeRead +0ms
libp2p:mplex:stream:trace initiator stream 1 closeWrite +0ms
libp2p:identify received signed peer record from 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +0ms
libp2p:peer-store:address-book:trace consumePeerRecord await write lock +207ms
libp2p:peer-store:address-book:trace consumePeerRecord got write lock +0ms
libp2p:peer-store:address-book stored provided peer record for 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +210ms
libp2p:peer-store:address-book:trace consumePeerRecord release write lock +2ms
libp2p:peer-store:proto-book:trace set await write lock +216ms
libp2p:peer-store:proto-book:trace set got write lock +0ms
libp2p:peer-store:proto-book stored provided protocols for 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 +218ms
libp2p:peer-store:proto-book:trace set release write lock +2ms
onPeerConnected 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45
libp2p:peer-store:metadata-book:trace setValue await write lock +220ms
libp2p:peer-store:metadata-book:trace setValue got write lock +0ms
libp2p:peer-store:metadata-book:trace setValue release write lock +1ms
libp2p:peer-store:metadata-book:trace setValue await write lock +0ms
libp2p:peer-store:metadata-book:trace setValue got write lock +0ms
libp2p:peer-store:metadata-book:trace setValue release write lock +1ms
libp2p:identify identify completed for peer 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45 and protocols [ '/ipfs/id/1.0.0', '/ipfs/ping/1.0.0', '/vac/waku/relay/2.0.0', '/vac/waku/store/2.0.0-beta4', '/vac/waku/swap/2.0.0-beta1' ] +44ms
libp2p:mplex:trace incoming message {
id: 2,
type: 'MESSAGE_RECEIVER (1)',
data: '1c2f7661632f77616b752f72656c61792f322e302e302d62657461320a'
} +46ms
libp2p:mss:select select: read "/vac/waku/relay/2.0.0-beta2" +46ms
libp2p:mplex:trace incoming message { id: 2, type: 'CLOSE_INITIATOR (4)' } +0ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba7 closeRead +45ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba7 source end - err: undefined +0ms
libp2p:mplex receiver stream 2 62da494fd7ac34000ae4eba7 ended +49ms
protocol /vac/waku/relay/2.0.0-beta2
connection ConnectionImpl [Connection] {
id: '6ws37u1658472783188',
remoteAddr: <Multiaddr 047f000001061f51dd03a5032700250802122103a8f1383791d4b1c8c7bc77fce2292ea3411c09c14416e5fff6fd6e230df7d946 - /ip4/127.0.0.1/tcp/8017/ws/p2p/16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45>,
remotePeer: Secp256k1PeerIdImpl [PeerId(16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45)] {
type: 'secp256k1',
multihash: Digest {
code: 0,
size: 37,
digest: [Uint8Array],
bytes: [Uint8Array]
},
privateKey: undefined,
publicKey: Uint8Array(37) [
8, 2, 18, 33, 3, 168, 241, 56, 55,
145, 212, 177, 200, 199, 188, 119, 252, 226,
41, 46, 163, 65, 28, 9, 193, 68, 22,
229, 255, 246, 253, 110, 35, 13, 247, 217,
70
]
},
stat: {
status: 'OPEN',
direction: 'outbound',
timeline: { open: 1658472783061, upgraded: 1658472783188 },
multiplexer: '/mplex/6.7.0',
encryption: '/noise'
},
_newStream: [AsyncFunction: newStream],
_close: [AsyncFunction: close],
_getStreams: [Function: getStreams],
tags: [],
_closing: false
}
streams [
{
close: [Function: close],
closeRead: [Function: closeRead],
closeWrite: [Function: closeWrite],
abort: [Function: abort],
reset: [Function: reset],
sink: [AsyncFunction: sink],
source: {
next: [Function: next],
throw: [Function: throw],
return: [Function: return],
push: [Function: push],
end: [Function: end],
readableLength: [Getter],
[Symbol(Symbol.asyncIterator)]: [Function: [Symbol.asyncIterator]]
},
stat: {
direction: 'outbound',
timeline: [Object],
protocol: '/vac/waku/relay/2.0.0-beta2'
},
metadata: {},
id: 'i0'
},
{
close: [Function: close],
closeRead: [Function: closeRead],
closeWrite: [Function: closeWrite],
abort: [Function: abort],
reset: [Function: reset],
sink: [AsyncFunction: sink],
source: {
next: [Function: next],
throw: [Function: throw],
return: [Function: return],
push: [Function: push],
end: [Function: end],
readableLength: [Getter],
[Symbol(Symbol.asyncIterator)]: [Function: [Symbol.asyncIterator]]
},
stat: { direction: 'outbound', timeline: [Object] },
metadata: {},
id: 'i2'
},
{
close: [Function: close],
closeRead: [Function: closeRead],
closeWrite: [Function: closeWrite],
abort: [Function: abort],
reset: [Function: reset],
sink: [AsyncFunction: sink],
source: {
next: [Function: next],
throw: [Function: throw],
return: [Function: return],
push: [Function: push],
end: [Function: end],
readableLength: [Getter],
[Symbol(Symbol.asyncIterator)]: [Function: [Symbol.asyncIterator]]
},
stat: {
direction: 'inbound',
timeline: [Object],
protocol: '/vac/waku/relay/2.0.0'
},
metadata: {},
id: 'r1'
}
]
libp2p:upgrader:error could not create new stream Error: Too many outgoing protocol streams
at ConnectionImpl.newStream [as _newStream] (file:///home/fryorcraken/src/libp2p/js-libp2p/src/upgrader.ts:436:27)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ConnectionImpl.newStream (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/connection/src/index.ts:121:20)
at async EventTarget.createOutboundStream (file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:699:4)
at async file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:491:11 {
code: 'ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS'
} +0ms
libp2p:mplex:stream:trace initiator stream 2 close +14ms
libp2p:mplex:stream:trace initiator stream 2 closeRead +0ms
libp2p:mplex:stream:trace initiator stream 2 source end - err: undefined +0ms
libp2p:mplex:stream:trace initiator stream 2 closeWrite +0ms
libp2p:mplex:trace initiator stream 2 send { id: 2, type: 'CLOSE_INITIATOR (4)' } +14ms
libp2p:mplex:stream:trace initiator stream 2 sink end - err: undefined +0ms
libp2p:mplex initiator stream 2 2 ended +13ms
Removing Set(1) { '16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45' }
libp2p:gossipsub:error createOutboundStream error Error: Too many outgoing protocol streams
at ConnectionImpl.newStream [as _newStream] (file:///home/fryorcraken/src/libp2p/js-libp2p/src/upgrader.ts:436:27)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ConnectionImpl.newStream (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/connection/src/index.ts:121:20)
at async EventTarget.createOutboundStream (file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:699:4)
at async file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:491:11 {
code: 'ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS'
} +0ms
for await Set(0) {}
id 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45
streamsOutbound Map(0) {}
pendingStreamsOutbound Set(0) {}
create outbound stream %p 16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45
Added Set(1) { '16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45' }
libp2p:upgrader outbound: starting new stream on [ '/vac/waku/relay/2.0.0-beta2', '/vac/waku/relay/2.0.0' ] +77ms
libp2p:mplex new initiator stream 3 3 +1ms
libp2p:upgrader No abort signal was passed while trying to negotiate protocols [ '/vac/waku/relay/2.0.0-beta2', '/vac/waku/relay/2.0.0' ] falling back to default timeout +0ms
libp2p:mplex:trace initiator stream 3 send { id: 3, type: 'NEW_STREAM (0)', data: '3' } +1ms
libp2p:mss:select select: write ["/multistream/1.0.0", "/vac/waku/relay/2.0.0-beta2"] +15ms
libp2p:mplex:trace initiator stream 3 send {
id: 3,
type: 'MESSAGE_INITIATOR (2)',
data: '132f6d756c746973747265616d2f312e302e300a1c2f7661632f77616b752f72656c61792f322e302e302d62657461320a'
} +0ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba7 close +2ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba7 closeRead +0ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba7 closeWrite +0ms
libp2p:mplex:trace incoming message { id: 2, type: 'CLOSE_RECEIVER (3)' } +4ms
libp2p:mplex missing stream 2 +4ms
libp2p:mplex:trace incoming message {
id: 3,
type: 'MESSAGE_RECEIVER (1)',
data: '132f6d756c746973747265616d2f312e302e300a'
} +0ms
libp2p:mss:select select: read "/multistream/1.0.0" +4ms
libp2p:mplex:trace incoming message {
id: 3,
type: 'MESSAGE_RECEIVER (1)',
data: '1c2f7661632f77616b752f72656c61792f322e302e302d62657461320a'
} +1ms
libp2p:mss:select select: read "/vac/waku/relay/2.0.0-beta2" +1ms
protocol /vac/waku/relay/2.0.0-beta2
connection ConnectionImpl [Connection] {
id: '6ws37u1658472783188',
remoteAddr: <Multiaddr 047f000001061f51dd03a5032700250802122103a8f1383791d4b1c8c7bc77fce2292ea3411c09c14416e5fff6fd6e230df7d946 - /ip4/127.0.0.1/tcp/8017/ws/p2p/16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45>,
remotePeer: Secp256k1PeerIdImpl [PeerId(16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45)] {
type: 'secp256k1',
multihash: Digest {
code: 0,
size: 37,
digest: [Uint8Array],
bytes: [Uint8Array]
},
privateKey: undefined,
publicKey: Uint8Array(37) [
8, 2, 18, 33, 3, 168, 241, 56, 55,
145, 212, 177, 200, 199, 188, 119, 252, 226,
41, 46, 163, 65, 28, 9, 193, 68, 22,
229, 255, 246, 253, 110, 35, 13, 247, 217,
70
]
},
stat: {
status: 'OPEN',
direction: 'outbound',
timeline: { open: 1658472783061, upgraded: 1658472783188 },
multiplexer: '/mplex/6.7.0',
encryption: '/noise'
},
_newStream: [AsyncFunction: newStream],
_close: [AsyncFunction: close],
_getStreams: [Function: getStreams],
tags: [],
_closing: false
}
streams [
{
close: [Function: close],
closeRead: [Function: closeRead],
closeWrite: [Function: closeWrite],
abort: [Function: abort],
reset: [Function: reset],
sink: [AsyncFunction: sink],
source: {
next: [Function: next],
throw: [Function: throw],
return: [Function: return],
push: [Function: push],
end: [Function: end],
readableLength: [Getter],
[Symbol(Symbol.asyncIterator)]: [Function: [Symbol.asyncIterator]]
},
stat: {
direction: 'outbound',
timeline: [Object],
protocol: '/vac/waku/relay/2.0.0-beta2'
},
metadata: {},
id: 'i0'
},
{
close: [Function: close],
closeRead: [Function: closeRead],
closeWrite: [Function: closeWrite],
abort: [Function: abort],
reset: [Function: reset],
sink: [AsyncFunction: sink],
source: {
next: [Function: next],
throw: [Function: throw],
return: [Function: return],
push: [Function: push],
end: [Function: end],
readableLength: [Getter],
[Symbol(Symbol.asyncIterator)]: [Function: [Symbol.asyncIterator]]
},
stat: { direction: 'outbound', timeline: [Object] },
metadata: {},
id: 'i3'
},
{
close: [Function: close],
closeRead: [Function: closeRead],
closeWrite: [Function: closeWrite],
abort: [Function: abort],
reset: [Function: reset],
sink: [AsyncFunction: sink],
source: {
next: [Function: next],
throw: [Function: throw],
return: [Function: return],
push: [Function: push],
end: [Function: end],
readableLength: [Getter],
[Symbol(Symbol.asyncIterator)]: [Function: [Symbol.asyncIterator]]
},
stat: {
direction: 'inbound',
timeline: [Object],
protocol: '/vac/waku/relay/2.0.0'
},
metadata: {},
id: 'r1'
}
]
libp2p:upgrader:error could not create new stream Error: Too many outgoing protocol streams
at ConnectionImpl.newStream [as _newStream] (file:///home/fryorcraken/src/libp2p/js-libp2p/src/upgrader.ts:436:27)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ConnectionImpl.newStream (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/connection/src/index.ts:121:20)
at async EventTarget.createOutboundStream (file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:699:4)
at async file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:491:11 {
code: 'ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS'
} +18ms
libp2p:mplex:stream:trace initiator stream 3 close +5ms
libp2p:mplex:stream:trace initiator stream 3 closeRead +1ms
libp2p:mplex:stream:trace initiator stream 3 source end - err: undefined +0ms
libp2p:mplex:stream:trace initiator stream 3 closeWrite +0ms
libp2p:mplex:trace initiator stream 3 send { id: 3, type: 'CLOSE_INITIATOR (4)' } +2ms
libp2p:mplex:stream:trace initiator stream 3 sink end - err: undefined +0ms
libp2p:mplex initiator stream 3 3 ended +3ms
Removing Set(1) { '16Uiu2HAmQ2UBNinKauxQerk9jgCS2ouJkbgZnf1zxe2DpDwcTW45' }
libp2p:gossipsub:error createOutboundStream error Error: Too many outgoing protocol streams
at ConnectionImpl.newStream [as _newStream] (file:///home/fryorcraken/src/libp2p/js-libp2p/src/upgrader.ts:436:27)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ConnectionImpl.newStream (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/connection/src/index.ts:121:20)
at async EventTarget.createOutboundStream (file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:699:4)
at async file:///home/fryorcraken/src/status-im/js-waku/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts:491:11 {
code: 'ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS'
} +7ms
libp2p:mplex:trace incoming message { id: 3, type: 'CLOSE_RECEIVER (3)' } +1ms
libp2p:mplex missing stream 3 +1ms
libp2p:peer-store:trace getPeers await read lock +10s
libp2p:peer-store:trace getPeers got read lock +1ms
libp2p:peer-store:trace getPeers release read lock +3ms
libp2p libp2p is stopping +15s
libp2p:transports closing listeners for @libp2p/websockets +15s
libp2p:transports closing listeners for libp2p/circuit-relay-v1 +0ms
libp2p:gossipsub stopping +15s
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba6 close +15s
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba6 closeRead +0ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba6 source end - err: undefined +0ms
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba6 closeWrite +1ms
libp2p:mplex:trace receiver stream 1 send { id: 1, type: 'CLOSE_RECEIVER (3)' } +15s
libp2p:mplex:stream:trace receiver stream 62da494fd7ac34000ae4eba6 sink end - err: undefined +0ms
libp2p:mplex receiver stream 1 62da494fd7ac34000ae4eba6 ended +15s
libp2p:gossipsub:score stopped +15s
libp2p:gossipsub stopped +3ms
libp2p:connection-manager:auto-dialler stopped +15s
libp2p:peer-store:proto-book:trace remove await write lock +15s
libp2p:peer-store:proto-book:trace remove await write lock +0ms
libp2p:peer-store:proto-book:trace remove await write lock +1ms
libp2p:mplex:stream:trace initiator stream 0 close +4ms
libp2p:mplex:stream:trace initiator stream 0 closeRead +1ms
libp2p:mplex:stream:trace initiator stream 0 source end - err: undefined +0ms
libp2p:mplex:stream:trace initiator stream 0 closeWrite +0ms
libp2p:mplex:trace initiator stream 0 send { id: 0, type: 'CLOSE_INITIATOR (4)' } +5ms
libp2p:mplex:stream:trace initiator stream 0 sink end - err: undefined +1ms
libp2p:mplex initiator stream 0 0 ended +6ms
libp2p:connection-manager closing 1 connections +15s
libp2p:transports all listeners closed +10ms
libp2p:peer-store:proto-book:trace remove got write lock +5ms
libp2p:peer-store:proto-book:trace remove release write lock +4ms
libp2p:peer-store:trace get await read lock +5s
libp2p:peer-store:proto-book:trace remove await write lock +1ms
libp2p:peer-store:proto-book:trace remove got write lock +0ms
libp2p:peer-store:proto-book:trace remove release write lock +3ms
libp2p:peer-store:trace get await read lock +4ms
libp2p:peer-store:proto-book:trace remove got write lock +1ms
libp2p:peer-store:proto-book:trace remove release write lock +2ms
libp2p:peer-store:trace get await read lock +2ms
libp2p:peer-store:trace get got read lock +0ms
libp2p:peer-store:trace get release read lock +1ms
libp2p:peer-store:address-book:trace getRawEnvelope await read lock +15s
libp2p:peer-store:proto-book:trace remove got write lock +1ms
libp2p:peer-store:proto-book:trace remove release write lock +2ms
libp2p:peer-store:trace get await read lock +2ms
libp2p:peer-store:trace get got read lock +0ms
libp2p:peer-store:trace get got read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope got read lock +2ms
libp2p:peer-store:trace get got read lock +0ms
libp2p:peer-store:trace get release read lock +1ms
libp2p:peer-store:trace get release read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope release read lock +1ms
libp2p:peer-store:trace get release read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope await read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope await read lock +0ms
libp2p:peer-store:proto-book:trace get wait for read lock +1ms
libp2p:peer-store:address-book:trace getRawEnvelope await read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope got read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope got read lock +0ms
libp2p:peer-store:proto-book:trace get got read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope got read lock +1ms
libp2p:peer-store:address-book:trace getRawEnvelope release read lock +0ms
libp2p:peer-store:address-book:trace getRawEnvelope release read lock +0ms
libp2p:peer-store:proto-book:trace get release read lock +1ms
libp2p:peer-store:address-book:trace getRawEnvelope release read lock +0ms
libp2p:peer-store:proto-book:trace get wait for read lock +0ms
libp2p:peer-store:proto-book:trace get wait for read lock +0ms
libp2p:peer-store:proto-book:trace get wait for read lock +0ms
libp2p:peer-store:proto-book:trace get got read lock +0ms
libp2p:peer-store:proto-book:trace get got read lock +0ms
libp2p:peer-store:proto-book:trace get got read lock +1ms
libp2p:peer-store:proto-book:trace get release read lock +0ms
libp2p:peer-store:proto-book:trace get release read lock +0ms
libp2p:peer-store:proto-book:trace get release read lock +0ms
libp2p:connection-manager stopped +20ms
libp2p:mplex error in sink AbortError: The operation was aborted
at nextAbortHandler (file:///home/fryorcraken/src/status-im/js-waku/node_modules/abortable-iterator/src/index.ts:37:20)
at AbortSignal.abortHandler (file:///home/fryorcraken/src/status-im/js-waku/node_modules/abortable-iterator/src/index.ts:21:37)
at AbortSignal.[nodejs.internal.kHybridDispatch] (node:internal/event_target:647:20)
at AbortSignal.dispatchEvent (node:internal/event_target:589:26)
at abortSignal (node:internal/abort_controller:283:10)
at AbortController.abort (node:internal/abort_controller:314:5)
at AbortSignal.onAbort (/home/fryorcraken/src/status-im/js-waku/node_modules/any-signal/index.js:11:16)
at AbortSignal.[nodejs.internal.kHybridDispatch] (node:internal/event_target:647:20)
at AbortSignal.dispatchEvent (node:internal/event_target:589:26)
at abortSignal (node:internal/abort_controller:283:10)
at AbortController.abort (node:internal/abort_controller:314:5)
at MplexStreamMuxer.close (file:///home/fryorcraken/src/status-im/js-waku/node_modules/@libp2p/mplex/src/mplex.ts:137:26)
at ConnectionImpl.close [as _close] (file:///home/fryorcraken/src/libp2p/js-libp2p/src/upgrader.ts:520:17)
at async ConnectionImpl.close (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/connection/src/index.ts:161:5)
at async file:///home/fryorcraken/src/libp2p/js-libp2p/src/connection-manager/index.ts:387:13
at async Promise.all (index 0)
at async EventTarget._close (file:///home/fryorcraken/src/libp2p/js-libp2p/src/connection-manager/index.ts:396:5)
at async EventTarget.stop (file:///home/fryorcraken/src/libp2p/js-libp2p/src/connection-manager/index.ts:373:5)
at async file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/components/src/index.ts:170:9
at async Promise.all (index 0)
at async Components.stop (file:///home/fryorcraken/src/libp2p/js-libp2p/node_modules/@libp2p/components/src/index.ts:168:5)
at async Promise.all (index 0)
at async EventTarget.stop (file:///home/fryorcraken/src/libp2p/js-libp2p/src/libp2p.ts:340:5)
at async Waku.stop (file:///home/fryorcraken/src/status-im/js-waku/src/lib/waku.ts:233:5) {
type: 'aborted',
code: 'ABORT_ERR'
} +22ms
libp2p libp2p has stopped +41ms
Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/fryorcraken/src/status-im/js-waku/src/lib/waku.node.spec.ts)
at listOnTimeout (node:internal/timers:559:17)
at processTimers (node:internal/timers:502:7)