What changed, and why it matters
This commit only changes a test file to make an integration test less flaky by retrying a condition until two nodes' routing data match. It does not modify production code, so it has no direct security impact on real Eclair users.
No security action required; this is a test-only reliability fix.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch wraps an assertion comparing Carol’s incoming extra hop short channel ID with Bob’s local alias inside an eventually { ... } block. This addresses a race condition between Bob and Carol’s router states during a zero-conf integration test. No runtime/production code is changed.
Changed components
eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/zeroconf/ZeroConfAliasIntegrationSpec.scalaInspect captured patch +6 / −3
diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/zeroconf/ZeroConfAliasIntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/zeroconf/ZeroConfAliasIntegrationSpec.scala
index bf25698..fb1f030 100644
--- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/zeroconf/ZeroConfAliasIntegrationSpec.scala
+++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/basic/zeroconf/ZeroConfAliasIntegrationSpec.scala
@@ -267,9 +267,12 @@ class ZeroConfAliasIntegrationSpec extends FixtureSpec with IntegrationPatience
assert(getRouterData(bob).privateChannels.values.exists(_.nodeId2 == carol.nodeParams.nodeId))
}
- val Some(carolHint) = getRouterData(carol).privateChannels.values.head.toIncomingExtraHop
- val bobAlias = getRouterData(bob).privateChannels.values.find(_.nodeId2 == carol.nodeParams.nodeId).value.aliases.localAlias
- assert(carolHint.shortChannelId == bobAlias)
+ val (carolHint, bobAlias) = eventually {
+ val Some(carolHint) = getRouterData(carol).privateChannels.values.head.toIncomingExtraHop
+ val bobAlias = getRouterData(bob).privateChannels.values.find(_.nodeId2 == carol.nodeParams.nodeId).value.aliases.localAlias
+ assert(carolHint.shortChannelId == bobAlias)
+ (carolHint, bobAlias)
+ }
// We make sure Bob won't have enough liquidity to relay another payment.
sendSuccessfulPayment(bob, carol, 35_000_000 msat)
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.