Skip to content

fix(vermeer): make Louvain output readiness explicit - #372

Merged
imbajin merged 2 commits into
apache:masterfrom
hugegraph:fix/vermeer-louvain-output-race-20261105
Nov 5, 2026
Merged

imbajin merged 2 commits into
apache:masterfrom
hugegraph:fix/vermeer-louvain-output-race-20261105

Conversation

@imbajin

@imbajin imbajin commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Before → After

Louvain output eligibility is inferred from first-pass state. Add a separate atomic publication flag to both Louvain implementations, clear it before rebuilding community IDs, and publish readiness after construction. Reject output while the result is unpublished.

Validation boundary

This is defensive hardening, not a reproduced production race. The existing master/worker step barrier already prevents output during BeforeStep; the new unit test constructs unpublished state directly. The author reports Go 1.23.7 race tests for algorithms and worker packages; these were not independently rerun for this submission. Publication-path coverage and cluster acceptance remain separate.

Source: 🔗 org Computer #25.

Visual overview

Vermeer change overview

Defensive readiness illustration: publish complete community IDs before allowing output. This does not establish that the originally claimed concurrent-output race occurs in production, or that publication-path, multi-worker or deployment acceptance has passed.

@imbajin
imbajin merged commit 8c752d9 into apache:master Nov 5, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants