fix: improve logging for connection manager (#1303)

* merge: master

* fix: CI

* use: js script instead of shell script to run precheck and mocha

* improve logging when dial fails

* use hashmap for errors instead of redeclaring variable
This commit is contained in:
Danish Arora 2023-05-11 13:35:58 +05:30 committed by GitHub
parent cc0b375018
commit f4e31019e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 4 deletions

View File

@ -19,6 +19,7 @@ export class ConnectionManager {
private options: ConnectionManagerOptions;
private libp2pComponents: Libp2p;
private dialAttemptsForPeer: Map<string, number> = new Map();
private dialErrorsForPeer: Map<string, any> = new Map();
public static create(
peerId: string,
@ -102,9 +103,10 @@ export class ConnectionManager {
this.dialAttemptsForPeer.delete(peerId.toString());
return;
} catch (error) {
log(`
Error dialing peer ${peerId.toString()}`);
} catch (error: any) {
this.dialErrorsForPeer.set(peerId.toString(), error);
log(`Error dialing peer ${peerId.toString()} - ${error.errors}`);
dialAttempt = this.dialAttemptsForPeer.get(peerId.toString()) ?? 1;
this.dialAttemptsForPeer.set(peerId.toString(), dialAttempt + 1);
@ -115,7 +117,13 @@ export class ConnectionManager {
}
try {
log(`Deleting undialable peer ${peerId.toString()} from peer store`);
log(
`Deleting undialable peer ${peerId.toString()} from peer store. Error: ${JSON.stringify(
this.dialErrorsForPeer.get(peerId.toString()).errors[0]
)}
}`
);
this.dialErrorsForPeer.delete(peerId.toString());
return await this.libp2pComponents.peerStore.delete(peerId);
} catch (error) {
throw `Error deleting undialable peer ${peerId.toString()} from peer store - ${error}`;