You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hugegraph.apache.org by "bitflicker64 (via GitHub)" <gi...@apache.org> on 2026/10/20 19:29:55 UTC
[I] [Bug] RaftEngineReadIndexTest fails now and then with UnfinishedStubbingException: the alive-peers refresher can call the mocked raft node while a test stubs it [hugegraph]
bitflicker64 opened a new issue, #3384:
URL: https://github.com/apache/hugegraph/issues/3384
### Bug Type (问题类型)
others (please edit later)
### Before submit
- [x] I have confirmed and searched that there are no similar problems in the historical issue and documents
### Environment (环境信息)
- Server Version: PD tests, `hg-pd-test` `pd-core-test` profile (`PDCoreSuiteTest`). Seen on the branch of #3376 at `171760d25`, which does not change `RaftEngineReadIndexTest` or the alive-peers refresher of `RaftEngine`; both are as on `master` `86c05ef9c` (the test from #3368, the refresher from #3185)
- Backend: none (unit suite)
- OS: Linux, 8 cores, JDK 17
- Data Size: N/A
### Expected & Actual behavior (期望与实际表现)
`RaftEngineReadIndexTest.testStoppedReadServiceClosureThatRunsFirstFailsAsNotLeader` should pass every run. It failed once in three runs of the same commit on 2026-10-20, with Mockito's unfinished-stubbing error while the test stubs `readIndex`:
```text
[ERROR] org.apache.hugegraph.pd.raft.RaftEngineReadIndexTest.testStoppedReadServiceClosureThatRunsFirstFailsAsNotLeader -- Time elapsed: 0.012 s <<< ERROR!
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at org.apache.hugegraph.pd.raft.RaftEngineReadIndexTest.answerShutdown(RaftEngineReadIndexTest.java:377)
at org.apache.hugegraph.pd.raft.RaftEngineReadIndexTest.answerShutdown(RaftEngineReadIndexTest.java:382)
at org.apache.hugegraph.pd.raft.RaftEngineReadIndexTest.testStoppedReadServiceClosureThatRunsFirstFailsAsNotLeader(RaftEngineReadIndexTest.java:367)
```
The runs, all `mvn -B -ntp test -pl hugegraph-pd/hg-pd-test -am -P pd-core-test` on `171760d25`:
| Host | pd-core (run/failures/errors/skipped) |
|---|---|
| 8 cores, JDK 17 | 227/0/1/2 (this error) |
| same host, again | 227/0/0/2 |
| 12 cores, JDK 17 | 227/0/0/2 |
Likely cause, not proven: the test swaps a Mockito mock into the `RaftEngine` singleton (`Whitebox.setInternalState(..., "raftNode", mockNode)`) and stubs it, while the engine's `pd-raft-alive-peers` refresher thread (`startAlivePeersRefresher`, every `ALIVE_PEERS_REFRESH_MS`) calls `node.listAlivePeers()` on whatever node the singleton holds whenever its state machine reports leader. An earlier suite test can leave the singleton started and leading. A call on the mock from that thread while `doAnswer(...).when(mockNode).readIndex(...)` is in progress is the case Mockito reports as unfinished stubbing.
A fix could stop the refresher for these tests (or give the refresher a node snapshot taken under the same lock the tests use), or stub `listAlivePeers` on the mock before it is installed.
### Vertex/Edge example (问题点 / 边数据举例)
N/A
### Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)
N/A
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@hugegraph.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] [Bug] RaftEngineReadIndexTest fails now and then with UnfinishedStubbingException: the alive-peers refresher can call the mocked raft node while a test stubs it [hugegraph]
Posted by "imbajin (via GitHub)" <gi...@apache.org>.
imbajin closed issue #3384: [Bug] RaftEngineReadIndexTest fails now and then with UnfinishedStubbingException: the alive-peers refresher can call the mocked raft node while a test stubs it
URL: https://github.com/apache/hugegraph/issues/3384
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@hugegraph.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org