Open c-brenn opened 4 months ago
@bszaf apologies for the ping, saw you had recently been reviewing PRs so you seemed like the best person to ask 😇
At work we've run into this bug a few times now in our codebases and are wondering if you would consider incorporating this change
At the moment it appears that
dispatch_awaiting_callers/1
attempts to shut down the current instance usingGenServer.stop(:normal)
. This causes a crash as the first argument toGenServer.stop/3
is meant to be a PID or name, rather than a reason. For example:This appears to happen when the ExUnit test that spawned the bypass instance has exited, but the bypass instance is still awaiting a request. For example if the test spawned an async process that will make a request to a bypass stub.
This commit refactors
dispatch_awaiting_callers/1
so that it now returns either{:noreply, state}
or{:stop, ...}
so that it can handle any awaiting callers and then shut down the GenServer which seems to be the intended behaviour of the current code.