There is no double release before this happens (then when the both tasks are finished they both release the same buffer and there there are 2 instances of the same buffer in the pool and the issue quickly escalates as those are released into the circulation again and again). This mechanism of introducing double buffers is somehow connected to the dpni_drv_send returning -EBUSY even when it is not busy. If I deliberately free the same buffer twice, there will be no -EBUSY, but the symptoms are otherwise similar as the situation escalates when there are 2 instances of the same buffer in the pool.
Pretty likely the QBMAN reserves proper unique buffer for the latter one, but the address is somehow replaced with the one already in use and packet copied from the fifo over it as when I deliberately leak the buffer in the event of -EBUSY (just terminate the task without discard_fd) one buffer (not the one the fd is having!) is leaked, but this buffer remains in circulation (from the latter packet is it is processed normally and the buffer freed) and the issue won't escalate as there is now only one instance of this buffer in curculation, but now the pool is leaked.
The packet flow is 2.5G IMIX from port 1 to port 3, 8.6G jumbo frames from port 2 to port 3 8.6G jumbo frame from port 3 to port 1 and 2.7G IMIX from port 4 to port 1. There is a congestion point in the egress of the port 3 and some packets are constantly dropped as they will not fit into the 10G interface. The issue happens randomly, but with this traffic usually in less than 1 hour.