Skip to content

Commit 9650697

Browse files
committed
chore: add comment on cancel
1 parent 2d4638e commit 9650697

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

src/handler.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function handle ({ context, logger, batchSize = config.blocksBatchSize }) {
5656
const normalizedWantlist = getNormalizedWantlist(wantlist, context, logger)
5757

5858
// Set state of processing blocks in canceled state
59-
updateCanceledState(normalizedWantlist, context)
59+
updateCanceledState(normalizedWantlist, context, logger)
6060

6161
process.nextTick(async () => {
6262
// catch async error in libp2p connection
@@ -186,7 +186,11 @@ async function batchResponse ({ blocks, context, logger }) {
186186
let message = new Message()
187187
for (let i = 0; i < blocks.length; i++) {
188188
const block = blocks[i]
189+
// console.log('block key', block.key)
189190
const canceledItem = context.canceled.get(block.key)
191+
logger.info({ keyList: context.canceled.keyList }, 'check keyList')
192+
logger.info({ key: block.key }, 'check')
193+
logger.info({ canceled: canceledItem }, 'canceled')
190194
if (!canceledItem || canceledItem !== block.type) {
191195
const size = messageSize[block.type](block)
192196

@@ -203,6 +207,7 @@ async function batchResponse ({ blocks, context, logger }) {
203207
telemetry.increaseLabelCount('bitswap-block-success-cancel', [block.type])
204208
telemetry.increaseLabelCount('bitswap-cancel-size', [block.type], size)
205209

210+
logger.info({ key: block.key }, 'delete')
206211
context.canceled.delete(block.key)
207212
}
208213
}
@@ -217,22 +222,27 @@ async function batchResponse ({ blocks, context, logger }) {
217222
}
218223
}
219224

220-
function updateCanceledState (wantList, context) {
225+
function updateCanceledState (wantList, context, logger) {
221226
const { wantedBlocks, wantedHave, canceled } = wantList
222227

223228
// Removed previous canceled blocks
224229
wantedBlocks.forEach(block => {
230+
logger.info({ key: block.key }, 'remove block from canceled')
225231
context.canceled.delete(block.key)
226232
})
227233

228234
wantedHave.forEach(block => {
235+
logger.info({ key: block.key }, 'remove wanted block from canceled')
229236
context.canceled.delete(block.key)
230237
})
231238

232239
// Add new canceled blocks
233240
canceled.forEach(block => {
241+
logger.info({ key: block.key }, 'add block to canceled')
234242
context.canceled.set(block.key, block.wantType)
235243
})
244+
245+
logger.info({ keyList: context.canceled.keyList }, 'check keyList')
236246
}
237247

238248
// end response, close connection

src/service.js

+15-4
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
8282
autoDialInterval: connectionConfig.p2p.autoDialInterval
8383
}
8484
})
85+
const cancelsPerPeer = new Map()
8586

8687
const handlerOptions = {
8788
maxInboundStreams: connectionConfig.handler.maxInboundStreams,
@@ -109,7 +110,9 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
109110
service.handle(protocol, async ({ connection: dial, stream }) => {
110111
try {
111112
const connection = new Connection(stream)
112-
const canceled = new LRU({ max: 200 })
113+
const canceled = cancelsPerPeer.get(dial.remotePeer.toString())
114+
115+
!canceled && console.log('canceled')
113116

114117
const hrTime = process.hrtime()
115118
const connectionId = hrTime[0] * 1000000000 + hrTime[1]
@@ -146,12 +149,13 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
146149
// another multiplexed stream.
147150
connection.on('end:receive', () => {
148151
// GC canceled LRU on finish
149-
canceled.clear()
152+
logger.info({}, 'end:receive')
150153
connection.close()
151154
})
152155

153156
connection.on('error', err => {
154157
// GC canceled LRU on error
158+
logger.info({}, 'error')
155159
canceled.clear()
156160
logger.error({ err, dial, stream, protocol }, 'Connection error')
157161
})
@@ -163,20 +167,27 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
163167

164168
// TODO move to networking
165169
service.connectionManager.addEventListener('peer:connect', connection => {
170+
cancelsPerPeer.set(
171+
connection.detail.remotePeer.toString(),
172+
new LRU({ max: 200 })
173+
)
166174
try {
167175
telemetry.increaseCount('bitswap-connections')
168176
telemetry.increaseGauge('bitswap-active-connections')
169177
} catch (err) {
170-
logger.warn({ err, remotePeer: connection.remotePeer }, 'Error while peer connecting')
178+
logger.warn({ err, remotePeer: connection.detail.remotePeer.toString() }, 'Error while peer connecting')
171179
}
172180
})
173181

174182
// TODO move to networking
175183
service.connectionManager.addEventListener('peer:disconnect', connection => {
184+
cancelsPerPeer.delete(
185+
connection.detail.remotePeer.toString()
186+
)
176187
try {
177188
telemetry.decreaseGauge('bitswap-active-connections')
178189
} catch (err) {
179-
logger.warn({ err, remotePeer: connection.remotePeer }, 'Error while peer disconnecting')
190+
logger.warn({ err, remotePeer: connection.detail.remotePeer.toString() }, 'Error while peer disconnecting')
180191
}
181192
})
182193

0 commit comments

Comments
 (0)