apache / apache/pekko-http

failed: Http2ServerSpec

Open
#465 0 comments 0 reactions 0 assignees View on GitHub
failed
Dominant language
Scala
Stars
196
Forks
55
Avg merge
4d 52m
Merged PRs (30d)
74

Description

https://github.com/apache/incubator-pekko-http/actions/runs/7735744903/job/21091918104#step:8:2202

```scala
<-- [The Http/2 server implementation should support stream for request entity data (min-collect-strict-entity-bytes = 1) should send RST_STREAM if entity stream is canceled] End of log messages of test that [Failed(org.scalatest.exceptions.TestFailedException: WINDOW_UPDATE was not equal to RST_STREAM)]
- should send RST_STREAM if entity stream is canceled *** FAILED *** (145 milliseconds)
[info] WINDOW_UPDATE was not equal to RST_STREAM (Http2FrameProbe.scala:229)
[info] org.scalatest.exceptions.TestFailedException:
[info] at org.scalatest.matchers.MatchersHelper$.indicateFailure(MatchersHelper.scala:392)
[info] at org.scalatest.matchers.should.Matchers.shouldBe(Matchers.scala:7017)
[info] at org.scalatest.matchers.should.Matchers.shouldBe$(Matchers.scala:1808)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbe$.shouldBe(Http2FrameProbe.scala:126)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbe$$anon$1.expectFrameFlagsStreamIdAndPayload(Http2FrameProbe.scala:229)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbe$$anon$1.expectFrameFlagsAndPayload(Http2FrameProbe.scala:223)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbe$$anon$1.expectFramePayload(Http2FrameProbe.scala:218)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbe$$anon$1.expectRST_STREAM(Http2FrameProbe.scala:185)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbe$$anon$1.expectRST_STREAM(Http2FrameProbe.scala:182)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbeDelegator.expectRST_STREAM(Http2FrameProbe.scala:100)
[info] at org.apache.pekko.http.impl.engine.http2.Http2FrameProbeDelegator.expectRST_STREAM$(Http2FrameProbe.scala:84)
[info] at org.apache.pekko.http.impl.engine.http2.Http2SpecWithMaterializer$NetworkSide.expectRST_STREAM(Http2SpecWithMaterializer.scala:83)
[info] at org.apache.pekko.http.impl.engine.http2.Http2ServerSpec$$anon$19.(Http2ServerSpec.scala:462)
[info] at org.apache.pekko.http.impl.engine.http2.Http2ServerSpec.requestTests$1$$anonfun$1$$anonfun$8(Http2ServerSpec.scala:463)
[info] at org.apache.pekko.http.impl.engine.http2.Http2SpecWithMaterializer.f$proxy1$1$$anonfun$1(Http2SpecWithMaterializer.scala:42)
[info] at org.apache.pekko.http.impl.engine.http2.Http2SpecWithMaterializer.org$apache$pekko$http$impl$engine$http2$Http2SpecWithMaterializer$InWithStoppedStages$$_$f$proxy1$1$$anonfun$adapted$1(Http2SpecWithMaterializer.scala:49)
[info] at org.apache.pekko.stream.testkit.scaladsl.StreamTestKit$.assertAllStagesStopped(StreamTestKit.scala:42)
[info] at org.apache.pekko.http.impl.engine.http2.Http2SpecWithMaterializer$InWithStoppedStages.f$proxy1$1(Http2SpecWithMaterializer.scala:49)
[info] at org.apache.pekko.http.impl.engine.http2.Http2SpecWithMaterializer$InWithStoppedStages.inAssertAllStagesStopped$$anonfun$1(Http2SpecWithMaterializer.scala:49)
[info] at org.scalatest.Transformer.apply$$anonfun$1(Transformer.scala:22)
[info] at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
[info] at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:31)
[info] at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
[info] at org.scalatest.Transformer.apply(Transformer.scala:22)
[info] at org.scalatest.Transformer.apply(Transformer.scala:21)
[info] at org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply(AnyWordSpecLike.scala:1118)
[info] at org.apache.pekko.http.impl.util.WithLogCapturing.$anonfun$1(WithLogCapturing.scala:65)
[info] at org.apache.pekko.testkit.EventFilter.intercept(TestEventListener.scala:129)
[info] at org.apache.pekko.http.impl.util.WithLogCapturing.withFixture(WithLogCapturing.scala:68)
[info] at org.apache.pekko.http.impl.util.WithLogCapturing.withFixture$(WithLogCapturing.scala:28)
[info] at org.apache.pekko.http.impl.util.PekkoSpecWithMaterializer.withFixture(PekkoSpecWithMaterializer.scala:24)
[info] at org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1(AnyWordSpecLike.scala:1124)
[info] at org.scalatest.wordspec.AnyWordSpecLike.runTest$$anonfun$1(AnyWordSpecLike.scala:1128)
[info] at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
[info] at org.scalatest.wordspec.AnyWordSpecLike.runTest(AnyWordSpecLike.scala:1128)
[info] at org.scalatest.wordspec.AnyWordSpecLike.runTest$(AnyWordSpecLike.scala:44)
[info] at org.apache.pekko.testkit.PekkoSpec.runTest(PekkoSpec.scala:70)
[info] at org.scalatest.wordspec.AnyWordSpecLike.runTests$$anonfun$1(AnyWordSpecLike.scala:1187)
[info] at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:413)
[info] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[info] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[info] at scala.collection.immutable.List.foreach(List.scala:333)
[info] at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
[info] at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
[info] at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:427)
[info] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[info] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[info] at scala.collection.immutable.List.foreach(List.scala:333)
[info] at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
[info] at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
[info] at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:427)
[info] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[info] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[info] at scala.collection.immutable.List.foreach(List.scala:333)
[info] at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
[info] at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
[info] at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
[info] at org.scalatest.wordspec.AnyWordSpecLike.runTests(AnyWordSpecLike.scala:1187)
[info] at org.scalatest.wordspec.AnyWordSpecLike.runTests$(AnyWordSpecLike.scala:44)
[info] at org.apache.pekko.testkit.PekkoSpec.runTests(PekkoSpec.scala:70)
[info] at org.scalatest.Suite.run(Suite.scala:1114)
[info] at org.scalatest.Suite.run$(Suite.scala:564)
[info] at org.apache.pekko.testkit.PekkoSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run(PekkoSpec.scala:70)
[info] at org.scalatest.wordspec.AnyWordSpecLike.run$$anonfun$1(AnyWordSpecLike.scala:1232)
[info] at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
[info] at org.scalatest.wordspec.AnyWordSpecLike.run(AnyWordSpecLike.scala:1232)
[info] at org.scalatest.wordspec.AnyWordSpecLike.run$(AnyWordSpecLike.scala:44)
[info] at org.apache.pekko.testkit.PekkoSpec.org$scalatest$BeforeAndAfterAll$$super$run(PekkoSpec.scala:70)
[info] at org.scalatest.BeforeAndAfterAll.liftedTree1$1(BeforeAndAfterAll.scala:213)
[info] at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:217)
[info] at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:135)
[info] at org.apache.pekko.testkit.PekkoSpec.run(PekkoSpec.scala:70)
[info] at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
[info] at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
[info] at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:414)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[info] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[info] at java.lang.Thread.run(Thread.java:750)
```

Contributor guide

Open the contributing guide

Research direction

Start with the failing test in Http2ServerSpec.scala at lines 462-463 and inspect the expected frame through Http2FrameProbe.scala, especially line 229. Reproduce the failure from the linked CI log, then trace the HTTP/2 server handling for a canceled request entity; done means the test receives the expected RST_STREAM instead of WINDOW_UPDATE.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
networking, testing
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.