mirror of
https://github.com/xcat2/confluent.git
synced 2026-09-02 15:36:05 +00:00
ef608005cf
initting_sessions exists so a caller can share a session already on its way, but the entry was added only once the login had finished, leaving the login itself uncovered. Two callers asking at once each built a session, both on the socket the other had not claimed yet, and replies route by bmc address and local port, so only the last to transmit was ever answered. That is the console session failing about one attempt in three. Register before the login and remove the entry in a finally. The two old removals keyed on the encoded credentials while the register is keyed on the caller's strings, so they never matched and an entry outlived its session. A session handed over mid login is now waited for rather than returned as one that answers as though it had been lost.