If a server pre-emptively sends the AMQP header and an Open frame immediately while it completes the SASL process, and pipelines them such that they are processed in the same read as the SASL outcome is, this prevents a client connections openHandler from being fired correctly once the connectHandler allows it to be set. This is because the connectHandler ends up being fired too late. There is no problem if the SASL outcome is processed in isolation of the Open (even if still pre-emptive) as typically occurs.
If a server pre-emptively sends the AMQP header and an Open frame immediately while it completes the SASL process, and pipelines them such that they are processed in the same read as the SASL outcome is, this prevents a client connections openHandler from being fired correctly once the connectHandler allows it to be set. This is because the connectHandler ends up being fired too late. There is no problem if the SASL outcome is processed in isolation of the Open (even if still pre-emptive) as typically occurs.