alibaba / PhotonLibOS

Probably the fastest coroutine lib in the world!

Home Page:https://PhotonLibOS.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unit test with lockfree queue `PhotonLockfreeBatchMPMCQueue+Batch` reported mismatch.

Coldwings opened this issue · comments

It seems not always happen, but here caught a log like

2024-04-06T15:33:45.3829149Z 7: 1 receiver done, 477 ns per action
2024-04-06T15:33:45.3831252Z 7: 0 receiver done, 495 ns per action
2024-04-06T15:33:45.3831954Z 7: 2 receiver done, 498 ns per action
2024-04-06T15:33:45.3832551Z 7: 3 receiver done, 498 ns per action
2024-04-06T15:33:45.3833239Z 7: 0 sender done, 2263 ns per action
2024-04-06T15:33:45.3833806Z 7: 2 sender done, 2260 ns per action
2024-04-06T15:33:45.3834378Z 7: 3 sender done, 2264 ns per action
2024-04-06T15:33:45.3834936Z 7: 1 sender done, 2265 ns per action
2024-04-06T15:33:45.3835786Z 7: PhotonLockfreeBatchMPMCQueue+Batch 4 p 4 c, 3000000 items, Spent 1791689 us
2024-04-06T15:33:45.3836639Z 7: MISMATCH 98719 4 5
2024-04-06T15:33:45.3837086Z 7: MISMATCH 98720 4 5
2024-04-06T15:33:45.3837532Z 7: MISMATCH 98721 4 5
2024-04-06T15:33:45.3837974Z 7: MISMATCH 98722 4 5
2024-04-06T15:33:45.3838404Z 7: MISMATCH 98723 4 5
2024-04-06T15:33:45.3838841Z 7: MISMATCH 98724 4 5
2024-04-06T15:33:45.3839278Z 7: MISMATCH 98725 4 5
2024-04-06T15:33:45.3839708Z 7: MISMATCH 98726 4 5
2024-04-06T15:33:45.3840142Z 7: MISMATCH 98727 4 5
2024-04-06T15:33:45.3840580Z 7: MISMATCH 98728 4 5
2024-04-06T15:33:45.3841008Z 7: MISMATCH 98729 4 5
2024-04-06T15:33:45.3841462Z 7: MISMATCH 98730 4 5
2024-04-06T15:33:45.3841900Z 7: MISMATCH 98731 4 6
2024-04-06T15:33:45.3842331Z 7: MISMATCH 98732 4 6
2024-04-06T15:33:45.3842769Z 7: MISMATCH 98733 4 7
2024-04-06T15:33:45.3843204Z 7: MISMATCH 98734 4 7
2024-04-06T15:33:45.3843634Z 7: MISMATCH 98735 4 7
2024-04-06T15:33:45.3844066Z 7: MISMATCH 98736 4 7
2024-04-06T15:33:45.3844501Z 7: MISMATCH 98737 4 7
2024-04-06T15:33:45.3844931Z 7: MISMATCH 98738 4 7
2024-04-06T15:33:45.3845363Z 7: MISMATCH 98739 4 7
2024-04-06T15:33:45.3845810Z 7: MISMATCH 98740 4 7
2024-04-06T15:33:45.3846242Z 7: MISMATCH 98741 4 7
2024-04-06T15:33:45.3846678Z 7: MISMATCH 98742 4 7
...

Shows that BatchMPMCQueue + Batch received same number more than it should be.

And there also shows some items never received by reader

...
2024-04-06T15:33:57.5917730Z 7: MISMATCH 741612 4 0
2024-04-06T15:33:57.5917889Z 7: MISMATCH 741613 4 0
2024-04-06T15:33:57.5918058Z 7: MISMATCH 741614 4 0
2024-04-06T15:33:57.5918216Z 7: MISMATCH 741615 4 0
2024-04-06T15:33:57.5918374Z 7: MISMATCH 741616 4 0
2024-04-06T15:33:57.5918535Z 7: MISMATCH 741617 4 0
2024-04-06T15:33:57.5918731Z 7: MISMATCH 741618 4 0
2024-04-06T15:33:57.5918909Z 7: MISMATCH 741619 4 0
2024-04-06T15:33:57.5919076Z 7: MISMATCH 741620 4 0
2024-04-06T15:33:57.5919237Z 7: MISMATCH 741621 4 0
2024-04-06T15:33:57.5919399Z 7: MISMATCH 741622 4 0
2024-04-06T15:33:57.5919560Z 7: MISMATCH 741623 4 0
2024-04-06T15:33:57.5919727Z 7: MISMATCH 741624 4 0
2024-04-06T15:33:57.5919892Z 7: MISMATCH 741625 4 0
2024-04-06T15:33:57.5920052Z 7: MISMATCH 741626 4 0
2024-04-06T15:33:57.5920211Z 7: MISMATCH 741627 4 0
2024-04-06T15:33:57.5920378Z 7: MISMATCH 741628 4 0
2024-04-06T15:33:57.5920540Z 7: MISMATCH 741629 4 0

It seems there is till have some bug in LockfreeBatchMPMCRingQueue.

And the unit test just a program runs with benchmark, without any gtest expect or assertion. That will never reported in CI.