When we started checking active/inactive ordering, we added code that rejected some channel pipeline state transitions. That code was too strict: it is absolutely possible to see channelInactive before channelActive in well-functioning programs.
We'll still call this an error, but we don't need to crash in debug mode when we see it.
Modifications:
Made channelInactive before channelActive tolerated.
Motivation:
When we started checking active/inactive ordering, we added code that rejected some channel pipeline state transitions. That code was too strict: it is absolutely possible to see channelInactive before channelActive in well-functioning programs.
We'll still call this an error, but we don't need to crash in debug mode when we see it.
Modifications:
Result:
More reliable code
Resolves #375