As usual, you are advised to use an LTS version, as they get these kinds
of fixes automatically.
> The question I have is when was this issue introduced? what change
> triggered it?
Without having done a thorough check, going from memory:
The underlying code itself has probably been present ever since ICE
handling was added, but the problem has only started surfacing when code
to close sockets early has been introduced. The most likely commit would
be 6f8ad8f936. Before then, the references weren't needed because the
sockets would have remained open anyway. There may be other confounding
variables.
HTH
Cheers