ipfs / go-bitswap

The golang implementation of the bitswap protocol
MIT License
216 stars 112 forks source link

fix: Nil dereference while using SetSendDontHaves #488

Closed Jorropo closed 3 years ago

Jorropo commented 3 years ago

This option is used by the benchmark to simulate the old bitswap comportement (and fixes the benchmark).

This follows the same refactoring idea as done in 47b99b1ce34a.

It was crashing since it was trying to access the sendDontHaves property of bs.engine but bs.engine is initialized right after the options are applied, not before.

Unlike 47b99b1ce34a, I've choosed to not make sendDontHaves part of engine's constructor because this is such an obscure option, useless in +99% of realworld scenario that it's not needed to confuse the engine contructor.

welcome[bot] commented 3 years ago

Thank you for submitting this PR! A maintainer will be here shortly to review it. We are super grateful, but we are also overloaded! Help us by making sure that:

Getting other community members to do a review would be great help too on complex PRs (you can ask in the chats/forums). If you are unsure about something, just leave us a comment. Next steps:

We currently aim to provide initial feedback/triaging within two business days. Please keep an eye on any labelling actions, as these will indicate priorities and status of your contribution. We are very grateful for your contribution!

Jorropo commented 3 years ago

/cc @dirkmc (no idea if you are interessed but you wrote 47b99b1ce34a8add8e5f38cf2eec6bea1559b035 :))

BigLep commented 3 years ago

@coryschwartz : we're hoping you can take a quick look at this as it may be reviewable without go-bitswap context. If you think you need more, then leave it for @aschmahmann .

Stebalien commented 3 years ago

Failing tests are unrelated.