The GitHub Actions job "Nightly Builds (1.7)" on pekko.git/main has failed.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
08ca126ca97506c08044d451cc52a326a2ec66a8 / He-Pin(kerr) <[email protected]>
fix: improve TLS observability - handshake failure logging and fail-fast SSL 
init (#3165)

* fix: improve TLS observability - handshake failure logging and fail-fast SSL 
init

Motivation:
Classic remoting TLS handshake failures were silently swallowed: the
NettySSLSupport handshake listener closed the channel without logging
the failure reason or peer address. Additionally, SSLContext was lazily
initialized, meaning keystore/truststore errors were only discovered on
the first connection attempt rather than at startup.

Modification:
- NettySSLSupport: add MarkerLoggingAdapter parameter, log TLS handshake
  failures with peer address and cause
- NettyTransport: pass log to NettySSLSupport
- ConfigSSLEngineProvider: change sslContext from lazy val to val for
  eager initialization (fail-fast at provider construction time)

Result:
TLS handshake failures now produce actionable warning logs with peer
address and error cause. Keystore/truststore configuration errors are
detected at startup rather than on first connection.

Tests:
- remote / Test / testOnly org.apache.pekko.remote.ConfigSSLEngineProviderSpec
- remote / Test / testOnly org.apache.pekko.remote.Ticket1978ConfigSpec

References:
Fixes #3162

* fix: simplify redundant null check in TLS handshake failure handler

Address review feedback: Netty guarantees cause() is non-null when
isSuccess=false, so simplify the null check logic.

* fix: log actual TLS handshake remote address

Motivation:
TLS handshake failure logging used SSLEngine.getPeerHost, but classic Netty 
creates engines without a peer host, so the new warning can report a null 
remote address.

Modification:
Derive the address from the Netty channel during failed-handshake cleanup. 
Centralize fallback formatting for missing remote addresses and missing cause 
messages, and add focused NettySSLSupport coverage.

Result:
Handshake failure logs include the actual channel remote address when available 
and stable fallback text otherwise.

Tests:
- scalafmt --list --mode diff-ref=origin/main
- git diff --check
- sbt "remote / Test / testOnly 
org.apache.pekko.remote.ConfigSSLEngineProviderSpec 
org.apache.pekko.remote.transport.netty.NettySSLSupportSpec"
- sbt "remote / Test / testOnly org.apache.pekko.remote.Ticket1978ConfigSpec"
- sbt "remote / Test / testOnly 
org.apache.pekko.remote.transport.netty.NettySSLSupportSpec"
- sbt +headerCheckAll
- sbt +mimaReportBinaryIssues
- qodercli -p --output-format stream-json --cwd 
"/Users/hepin/IdeaProjects/pekkos/pekko/.qoder/worktrees/fix-tls-observability-3162"
 --attachment /tmp/project-review.diff

References:
Refs #3162

Report URL: https://github.com/apache/pekko/actions/runs/28210812036

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to