When a Tor OP wants to extend a circuit, it sends a relay extend cell to the last node on it. This node then sends CREATE cell to the desired destination node, choosing a new CircID (used to identify the circuit uniquely) not already used between the node sending the CREATE cell and the destination node.
What will happen in the hypothetic case when, say, 2 different circuits with different middle nodes share the same exit node, and the two middle nodes choose the same, colliding CircID when sending CREATE cell to the common exit node?
Following the spec, this should be a possible scenario, because each of the middle nodes doesn't use the randomly generated CircID already to this exit node. The collision happens only on the exit node and there is no way for the two middle nodes to know about it.
How strong is the entropy behind CircID generation and is it the only defence measure against CircID collision?