If multiple concurrent threads attempt to create a ForkChannel using the same fork stack, and the flag is enabled that attempts to create the FORK protocol if missing - the FORK protocol can inadvertently insert multiple times. There needs to be some thread synchronization between the findProtocol(FORK.class) and protocol creation/insertion.