yueyilia:

When using init_process_group, clients are successfully initialized, but the server still gets stuck in init_process_group.


Hmm, this means some configuration might be wrong (init_process_group has been widely used in multi-machine training). The behavior suggests the client thinks all peers are joined, but the server is still waiting for some peers.
Curious, why do you need to use your own sockets to communicate ranks? Could you please print all ranks and see if those are expected?
If that still doesn’t give a clue, could you please share a min repro?