What changed, and why it matters
This commit increases the startup timeout from 5 to 30 seconds for Eclair's connections to Bitcoin's ZMQ notification service and its own TCP server port. It is a reliability/configuration fix, not a security patch. There is no indication it fixes a vulnerability or was triggered by a security report.
No security action required. Treat as a normal operational/reliability improvement. Review whether 30 seconds is appropriate for your deployment's startup load and ZMQ/TCP readiness.
Security signals we found
No security-relevant code change: only timeout values increased
No input validation, cryptographic, authentication, or authorization changes
No memory-safety, concurrency, or resource-exhaustion fixes
Commit message frames change as operational reliability, not security
Evidence from the diff
The change modifies three timeout futures in Setup.scala: zmqBlockTimeout, zmqTxTimeout, and tcpTimeout. All are extended from 5 seconds to 30 seconds. The stated reason is that after spawning all actors, the system may be consuming significant sockets/bandwidth, so a longer timeout reduces false-positive startup failures. The code logic is otherwise unchanged.
Changed components
eclair-core/src/main/scala/fr/acinq/eclair/Setup.scalaInspect captured patch +3 / −3
diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala
index 4124e03..c21f718 100644
--- a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala
+++ b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala
@@ -426,9 +426,9 @@ class Setup(val datadir: File,
peerScorer_opt = peerScorer_opt,
wallet = bitcoinClient)
- zmqBlockTimeout = after(5 seconds, using = system.scheduler)(Future.failed(BitcoinZMQConnectionTimeoutException))
- zmqTxTimeout = after(5 seconds, using = system.scheduler)(Future.failed(BitcoinZMQConnectionTimeoutException))
- tcpTimeout = after(5 seconds, using = system.scheduler)(Future.failed(TCPBindException(config.getInt("server.port"))))
+ zmqBlockTimeout = after(30 seconds, using = system.scheduler)(Future.failed(BitcoinZMQConnectionTimeoutException))
+ zmqTxTimeout = after(30 seconds, using = system.scheduler)(Future.failed(BitcoinZMQConnectionTimeoutException))
+ tcpTimeout = after(30 seconds, using = system.scheduler)(Future.failed(TCPBindException(config.getInt("server.port"))))
_ <- Future.firstCompletedOf(zmqBlockConnected.future :: zmqBlockTimeout :: Nil)
_ <- Future.firstCompletedOf(zmqTxConnected.future :: zmqTxTimeout :: Nil)
Why this scored 19/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.