I have done some test on opennmt-tf and see that the beam search generation tend to generate very long and repetitive translations when coverage penalty is turned on. When I turned it off it was fine. So I guess there may be some bug in the coverage penalty code maybe? Just a guess.
Due to reasons I can’t provide code and generation samples for my finding, sorry about this.
Opennmt-tf version is 1.25.3