Cluster.on_up() has two completion paths: one for asynchronous pool futures and one for cases where no session returns a pool future. The no-future path marks the host up but does not notify host-state listeners or reconcile session pools.
Problem
When on_up() schedules pool futures, _on_up_future_completed() marks the host up, calls listener.on_up(host), clears _currently_handling_node_up, and calls session.update_created_pools().
When on_up() has no futures, it only marks the host up and clears _currently_handling_node_up. Host-state listeners never receive on_up, and sessions do not get a final pool reconciliation pass.
Expected behavior
The no-future path should mirror the successful future path by notifying listeners and calling update_created_pools() after the host is marked up.
Cluster.on_up()has two completion paths: one for asynchronous pool futures and one for cases where no session returns a pool future. The no-future path marks the host up but does not notify host-state listeners or reconcile session pools.Problem
When
on_up()schedules pool futures,_on_up_future_completed()marks the host up, callslistener.on_up(host), clears_currently_handling_node_up, and callssession.update_created_pools().When
on_up()has no futures, it only marks the host up and clears_currently_handling_node_up. Host-state listeners never receiveon_up, and sessions do not get a final pool reconciliation pass.Expected behavior
The no-future path should mirror the successful future path by notifying listeners and calling
update_created_pools()after the host is marked up.