Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot pull closed port (One2OneBidi.in) #20944

Closed
ktoso opened this issue Jul 12, 2016 · 6 comments
Closed

Cannot pull closed port (One2OneBidi.in) #20944

ktoso opened this issue Jul 12, 2016 · 6 comments
Assignees
Labels
1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted 2 - pick next Used to mark issues which are next up in the queue to be worked on. The tag is non-binding bug t:http t:stream
Milestone

Comments

@ktoso
Copy link
Member

ktoso commented Jul 12, 2016

When running HTTP without fusing

[info] [ERROR] [07/12/2016 17:49:53.307] [HttpBenchmark-akka.actor.default-dispatcher-25] [akka://HttpBenchmark/user/StreamSupervisor-1/flow-112-1-One2OneBidi] Error in stage [One2OneBidi]: requirement failed: Cannot pull closed port (One2OneBidi.in)
[info] java.lang.IllegalArgumentException: requirement failed: Cannot pull closed port (One2OneBidi.in)
[info]  at scala.Predef$.require(Predef.scala:224)
[info]  at akka.stream.stage.GraphStageLogic.pull(GraphStage.scala:347)
[info]  at akka.http.impl.util.One2OneBidiFlow$One2OneBidi$$anon$1$$anon$4.onPush(One2OneBidiFlow.scala:84)
[info]  at akka.stream.impl.fusing.GraphInterpreter.processElement$1(GraphInterpreter.scala:590)
[info]  at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:601)
[info]  at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:542)
[info]  at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
[info]  at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:414)
[info]  at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
[info]  at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
[info]  at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
[info]  at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
[info]  at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
[info]  at akka.actor.ActorCell.invoke(ActorCell.scala:495)
[info]  at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
[info]  at akka.dispatch.Mailbox.run(Mailbox.scala:224)
[info]  at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
[info]  at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
[info]  at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
[info]  at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
[info]  at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
[info]
[info] [ERROR] [07/12/2016 17:49:53.308] [HttpBenchmark-akka.actor.default-dispatcher-25] [akka.actor.ActorSystemImpl(HttpBenchmark)] Internal server error, sending 500 response
[info] java.lang.IllegalArgumentException: requirement failed: Cannot pull closed port (One2OneBidi.in)
[info]  at scala.Predef$.require(Predef.scala:224)
[info]  at akka.stream.stage.GraphStageLogic.pull(GraphStage.scala:347)
[info]  at akka.http.impl.util.One2OneBidiFlow$One2OneBidi$$anon$1$$anon$4.onPush(One2OneBidiFlow.scala:84)
[info]  at akka.stream.impl.fusing.GraphInterpreter.processElement$1(GraphInterpreter.scala:590)
[info]  at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:601)
[info]  at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:542)
[info]  at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
[info]  at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:414)
[info]  at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
[info]  at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
[info]  at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
[info]  at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
[info]  at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
[info]  at akka.actor.ActorCell.invoke(ActorCell.scala:495)
[info]  at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
[info]  at akka.dispatch.Mailbox.run(Mailbox.scala:224)
[info]  at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
[info]  at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
[info]  at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
[info]  at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
[info]  at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
@ktoso ktoso added 1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted t:stream t:http labels Jul 12, 2016
@ktoso ktoso added this to the 2.4.9 milestone Jul 12, 2016
@ktoso ktoso added the bug label Jul 12, 2016
@ktoso ktoso modified the milestones: 2.4.9-RC1, 2.4.9 Aug 2, 2016
@johanandren johanandren self-assigned this Aug 3, 2016
@johanandren johanandren added 3 - in progress Someone is working on this ticket and removed 1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted labels Aug 3, 2016
@ktoso ktoso modified the milestones: 2.4.9-RC2, 2.4.9 Aug 5, 2016
@johanandren johanandren modified the milestones: 2.4.9, 2.4.10 Aug 19, 2016
@johanandren johanandren removed their assignment Aug 24, 2016
@johanandren johanandren added 1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted and removed 3 - in progress Someone is working on this ticket labels Aug 24, 2016
@ktoso
Copy link
Member Author

ktoso commented Aug 29, 2016

I wonder if this is read / has not happened anymore since a while.

@drewhk
Copy link
Member

drewhk commented Aug 29, 2016

Do we even have One2OneBidi?

@johanandren
Copy link
Member

Yeah, but it's a Http internal stage

@drewhk
Copy link
Member

drewhk commented Aug 29, 2016

Ah I thought it was removed completely at some point.

@ktoso ktoso added the 2 - pick next Used to mark issues which are next up in the queue to be worked on. The tag is non-binding label Aug 30, 2016
@johanandren johanandren self-assigned this Aug 30, 2016
@johanandren
Copy link
Member

So, what it does is protecting the user from streaming more responses than there are requests, not sure when this would happen so from that perspective it could maybe be removed. However it also is what enforces the "pipeliningLimit", so that further requests are backpressured if this limit is reached, if we remove it we'd have to introduce another stage that does that. :(

I'll just see if I can fix the bug instead.

@drewhk
Copy link
Member

drewhk commented Aug 30, 2016

I know what it does, I have worked with this beast before. I just thought we removed the protection altogether, but I see that we still need it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted 2 - pick next Used to mark issues which are next up in the queue to be worked on. The tag is non-binding bug t:http t:stream
Projects
None yet
Development

No branches or pull requests

3 participants