Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Error during inactivity of SSL connections

Aperta
#647 6 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java, scala
Ambito
networking

Direzione di ricerca

Inizia da org.http4s.blaze.pipeline.stages.SSLStage, in particolare dalla logica dell’handshake in SSLStage.scala:206 e 229, e riproduci il fallimento con il http4s quickstart, un server Blaze con SSL abilitato e un periodo di inattività di 5–7 minuti. Il lavoro è completato quando la connessione SSL inattiva non registra più il fallimento di handshake riportato; non viene menzionato alcun file di test specifico, quindi verifica il risultato con l’esempio eseguibile fornito.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug module:blaze-client

I have encountered error when after making a call to some SSL endpoint using Blaze Client, and then having some inactivity period (5-7minutes) client starts to log error javax.net.ssl.SSLException: SSL Handshake WRAP produced 0 bytes: Status = OK HandshakeStatus = NEED_WRAP bytesConsumed = 0 bytesProduced = 0.

To reproduce this, take http4s quickstart example ($ sbt -sbt-version 1.2.8 new http4s/http4s.g8 -b 0.20) and add SSL certifiacte to blaze server. Call https://localhost:8080/joke. Observe logs:

javax.net.ssl.SSLException: SSL Handshake WRAP produced 0 bytes: Status = OK HandshakeStatus = NEED_WRAP
bytesConsumed = 0 bytesProduced = 0
	at org.http4s.blaze.pipeline.stages.SSLStage.sslHandshakeLoop$1(SSLStage.scala:206)
	at org.http4s.blaze.pipeline.stages.SSLStage.sslHandshake(SSLStage.scala:229)
	at org.http4s.blaze.pipeline.stages.SSLStage.$anonfun$sslHandshake$2(SSLStage.scala:209)
	at org.http4s.blaze.pipeline.stages.SSLStage.$anonfun$sslHandshake$2$adapted(SSLStage.scala:208)
	at scala.concurrent.impl.CallbackRunnable.run$$$capture(Promise.scala:64)
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala)
	at org.http4s.blaze.util.SerialExecutionContext$$anon$1.act(SerialExecutionContext.scala:19)
	at org.http4s.blaze.util.SerialExecutionContext$$anon$1.act(SerialExecutionContext.scala:18)
	at org.http4s.blaze.util.Actor$RecycleableRunnable.go$1(Actor.scala:57)
	at org.http4s.blaze.util.Actor$RecycleableRunnable.run(Actor.scala:72)
	at org.http4s.blaze.util.Execution$$anon$3.execute(Execution.scala:67)
	at org.http4s.blaze.util.Actor.$bang(Actor.scala:45)
	at org.http4s.blaze.util.SerialExecutionContext.execute(SerialExecutionContext.scala:25)
	at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:72)
	at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:288)
	at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1$adapted(Promise.scala:288)
	at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:288)
	at scala.concurrent.Promise.complete(Promise.scala:53)
	at scala.concurrent.Promise.complete$(Promise.scala:52)
	at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:187)
	at scala.concurrent.Promise.success(Promise.scala:86)
	at scala.concurrent.Promise.success$(Promise.scala:86)
	at scala.concurrent.impl.Promise$DefaultPromise.success(Promise.scala:187)
	at org.http4s.blaze.channel.nio2.ByteBufferHead$$anon$1.completed(ByteBufferHead.scala:53)
	at org.http4s.blaze.channel.nio2.ByteBufferHead$$anon$1.completed(ByteBufferHead.scala:43)
	at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
	at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:219)
	at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)```

You can also check https://github.com/retriku/quickstart-http4s-ssl for runnable code:
- sbt run
- https://localhost:8080/joke

Possibly duplicate of https://github.com/http4s/http4s/issues/2192

Setup
JVM: openjdk version "11.0.2" 2019-01-15
Scala: 2.12.8
Http4s: 0.20.6
Blaze: 0.14.6
Lingua principale
Scala
Stelle
371
Fork
63
Merge medio
2g 5h
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di http4s/blaze

Tutte le issue di http4s/blaze

Issue simili

Altre issue su Scala

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.