Open Stebalien opened 4 years ago
We should probably just validate that all messages actually have a key in the main handelNewMessage
functoin. I'm also not sure why this is showing up in tests now. Are we forgetting to set the key in one of our requests?
@Stebalien my guess is that the change that exposed this error was that we now search the peerstore for targetPid
and return it, where as previously we only returned targetPid
if we were Connected to it.
We should investigate why this is happening at all though.
Edit: After some spelunking I think the reason that there's a peer.ID of "" being propagated around is because https://github.com/ipfs/go-ipfs-provider/blob/3a98ef95f2e412a39a7b591cc2ce3ed5affb18c3/simple/provider.go#L88-L89 does not check if the provider dequeing channel is closed before calling doProvide(c cid.Cid)
this causes an empty cid to be provided when the test ends, which causes an empty key to be looked for in GetClosestPeers
which because of our weirdness in #556 looks like we're actually searching for an empty peerID.
This error happens when we try to lookup an empty ("") peer ID. See: https://github.com/libp2p/go-libp2p-peerstore/pull/88
https://app.circleci.com/pipelines/github/ipfs/go-ipfs/2340/workflows/be5e6996-eb05-49c2-9b1b-7e26c3719c06/jobs/28662