You are running bitmain's S2 driver. Don't do that on p2pool. Also don't do that with bitmain's S1 driver.
Bitmain does some terrible things in their driver including ... discarding stale work in the driver before passing it to the work validation code.
This means on p2pool that if you find a stale block that is still a valid network block, it will be discarded. Oh well.
Use my driver for S1 if you don't want to throw such valid blocks away on p2pool.
Thanks! I also get duplicates on p2pool when using my Ants. I think I only saw that with S2s, though.
My S2 driver is still in development - I'm still trying to work out why the device thinks it's a good idea to have >8000 work items queued in it - more than 30s of work - and to work out how to reduce that without letting it get idle - so I'm still waiting on source code from bitmain.
My blackarrow minion RPi driver is able to handle > 2TH/s of work at 1diff verifying every share returned at 1diff.
The S2 driver, on a faster BBB, should be able to handle 1TH/s of work at 1diff also. It doesn't. So I need to work out how to fix that - but I need the SPI kernel driver code bitmain wrote, for me to work that out.
I appreciate it!
M