librados clients running within a VM with QEMU user networking (e.g. ip address 10.0.2.15) are incorrectly attempting to bind to the hypervisor IP address. Appears to be related to changes introduced in https://github.com/ceph/ceph/pull/12901

History

@Haomai: I don't really understand why we would want clients to implicitly bind to a learned address. I am using that config option to get the OpenStack devstack tests functional again, but this seems like an unintended consequence. The fact that it first connects to a monitor w/o binding and then fails to connect to OSDs since it learned its address from a monitor just seems a bit off. Plus, it's not even logged as an error when the bind fails so I spend a few hours trying to diagnose this since I didn't have direct access to the environment where it was failing.