Open slashdotdash opened 6 years ago
Thats probably it exactly. If you notice in the def block directly above:
# nil settings means use default
def process(%Frame.Settings{ack: false, settings: nil}, state) do
%{flow_control: flow, config: config} = state
Egress.send_settings_ack(config.socket)
case flow.stream_set.max_concurrent_streams do
:infinite ->
GenServer.cast(state.queue, {:ask, 2_000_000_000})
max ->
to_ask = max - flow.stream_set.active_stream_count
GenServer.cast(state.queue, {:ask, to_ask})
end
{:ok, state}
end
Weird that I didn't make the same validation. I'll have a patch up.
Should be fixed with v0.4.4
. Let me know if it crops up again.
@hpopp Thanks for the rapid fix and release. I will upgrade to v0.4.4 today ready for deployment.
Environment
Current behavior
We've encountered the following exception numerous times in production error reports when using the pigeon library for sending large batches of FCM push notifications (1,000 notifications):
Unfortunately I haven't seen it happen locally, nor have I been able to reproduce it.
I've looked through
Kadabra.Connection.Processor
module and am wondering whether the issue is because the defaultmax_concurrent_streams
setting in theKadabra.Connection.Settings
module is:infinite
but line 131 is assuming it will be a number:Could that be the culprit for the exception?