dosubot[bot] commented on issue #3030: URL: https://github.com/apache/hugegraph/issues/3030#issuecomment-4494176284
<!-- Answer --> Thanks for clarifying — this is helpful. Since your build already includes the PR #1767 fixes, the issue is likely **HBase-specific** and stems from a different root cause than the hstore bug in #3007. Looking at the code, the HBase backend's `commit()` uses `table.batch(rows, results)` which is synchronous but **does not guarantee immediate read visibility** [[1]](https://github.com/apache/hugegraph/blob/9126c80e414c073b60fc074361b211cfb409e0eb/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseSessions.java#L554-L556) — particularly during startup when HBase regions may still be initializing. The HBase backend also has no true transaction support (`beginTx()` is a no-op) [[2]](https://github.com/apache/hugegraph/blob/9126c80e414c073b60fc074361b211cfb409e0eb/hugegraph-server/hugegraph-hbase/src/main/java/org/apache/hugegraph/backend/store/hbase/HbaseStore.java#L419-L422), so there's a timing window where: 1. `initServerInfo()` successfully writes the ServerInfo vertex via `table.batch()` 2. The `task-scheduler` heartbeat fires ~1 second later and queries the same vertex 3. The read returns null because HBase hasn't made the write fully visible yet 4. Once it enters this "missing" state, the **master node heartbeat path only logs the warning** — it doesn't attempt to re-save [[3]](https://github.com/apache/hugegraph/blob/9126c80e414c073b60fc074361b211cfb409e0eb/hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/task/ServerInfoManager.java#L198-L203), so it never recovers This is fundamentally different from RocksDB (immediate in-memory visibility) or MySQL (ACID commit guarantees). The fix from PR #1767 added lazy re-initialization for *worker* nodes but the master node path still just logs and waits. **Potential fix approaches:** 1. Add retry/backoff logic in `ServerInfoManager.serverInfo()` to handle transient HBase visibility delays 2. Have the master heartbeat path re-save ServerInfo (similar to what workers already do) instead of only logging 3. Add a startup delay or readiness check before the task-scheduler begins heartbeating — giving HBase time to make the initial write visible As a **more robust workaround** than suppressing logs, you could try adding a small startup delay before the graph is registered with the task scheduler. But the real fix likely needs a code change to make the master heartbeat re-initialize ServerInfo when it's missing, rather than only warning about it. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=reply-with-mention&utm_term=apache%2Fhugegraph).* --- Docs are dead. Just use [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-tagline&utm_term=apache%2Fhugegraph). [](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-feedback&utm_term=apache%2Fhugegraph&message_id=351571ee-e204-4da6-898b-0e30040fec4b) [](https://github.dosu.com/apache/hugegraph?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-ask-repo&utm_term=apache%2Fhugegraph) [](https://app.dosu.dev/signup?referrer=openSource&source=github-footer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-share-team&utm_term=apache%2Fhugegraph) -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
