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 port (requestParsingIn) twice #516

Closed
rgmccaw opened this issue Nov 11, 2016 · 10 comments
Closed

Cannot pull port (requestParsingIn) twice #516

rgmccaw opened this issue Nov 11, 2016 · 10 comments
Labels
Milestone

Comments

@rgmccaw
Copy link

rgmccaw commented Nov 11, 2016

I'm using Akka HTTP (3.0.0-RC1) and I am getting an Exception in certain cases.
I can reproduce it by sending my application a request through a Burp Suite proxy. Below are three curl requests; two which do not cause the exception and one that does.

For the following CURLs the following is true:

  • test is an empty file
  • There is Burp Suite proxy listening at 127.0.0.1:8282
  • My application is localhost:9090

POST directly to the application

# Note that -F adds the 'Expect: 100-Continue' header
curl -v "http://localhost:9090/upload" -F "file=@/tmp/test"
12:56:23.128 [default-akka.actor.default-dispatcher-13] DEBUG - Request is: HttpRequest(HttpMethod(POST),http://localhost:9090/upload,List(Remote-Address: 127.0.0.1:64301, Host: localhost:9090, User-Agent: curl/7.43.0, Accept: */*, Expect: 100-continue, Timeout-Access: <function1>),HttpEntity.Default(multipart/form-data; boundary=------------------------287d87847c39d574,196 bytes total),HttpProtocol(HTTP/1.1))

POST through Burp Suite then to the application

curl -v -x 127.0.0.1:8282 "http://localhost:9090/upload" -F "file=@/tmp/test"
11:55:16.157 [default-akka.actor.default-dispatcher-23] DEBUG - Request is: HttpRequest(HttpMethod(POST),http://localhost:9090/upload,List(Remote-Address: 127.0.0.1:63536, Host: localhost:9090, User-Agent: curl/7.43.0, Accept: */*, Expect: 100-continue, Connection: close, Timeout-Access: <function1>),HttpEntity.Strict(multipart/form-data; boundary=------------------------10793e360104da3c,ByteString(45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 49, 48, 55, 57, 51, 101, 51, 54, 48, 49, 48, 52, 100, 97, 51, 99, 13, 10, 67, 111, 110, 116, 101, 110, 116, 45, 68, 105, 115, 112, 111, 115, 105, 116, 105, 111, 110, 58, 32, 102, 111, 114, 109, 45, 100, 97, 116, 97, 59, 32, 110, 97, 109, 101, 61, 34, 102, 105, 108, 101, 34, 59, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 116)... and [96] more),HttpProtocol(HTTP/1.1))
 [ERROR] [11/11/2016 11:55:16.783] [default-akka.actor.default-dispatcher-15] [akka://default/user/StreamSupervisor-0/flow-21-0-unknown-operation] Error in stage [akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage@63a32d31]: requirement failed: Cannot pull port (requestParsingIn) twice
 java.lang.IllegalArgumentException: requirement failed: Cannot pull port (requestParsingIn) twice
   at scala.Predef$.require(Predef.scala:224)
   at akka.stream.stage.GraphStageLogic.pull(GraphStage.scala:355)
   at akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage$$anon$12$$anon$15.onPush(HttpServerBluePrint.scala:432)
   at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:747)
   at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:649)
   at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
   at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:423)
   at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
   at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
   at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
   at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
   at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
   at akka.actor.ActorCell.invoke(ActorCell.scala:495)
   at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
   at akka.dispatch.Mailbox.run(Mailbox.scala:224)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)

Note the addition of Connection: close and the conversion of the entity from a stream to a strict.
POST with Expect: 100-Continue header removed, through Burp Suite then to the application

curl -v -x 127.0.0.1:8282 "http://localhost:9090/upload" -F "file=@/tmp/test" -H "Expect: "
13:20:42.507 [default-akka.actor.default-dispatcher-8] DEBUG - Request is: HttpRequest(HttpMethod(POST),http://localhost:9090/upload,List(Remote-Address: 127.0.0.1:64752, Host: localhost:9090, User-Agent: curl/7.43.0, Accept: */*, Connection: close, Timeout-Access: <function1>),HttpEntity.Strict(multipart/form-data; boundary=------------------------c8b5713283801b8f,ByteString(45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 99, 56, 98, 53, 55, 49, 51, 50, 56, 51, 56, 48, 49, 98, 56, 102, 13, 10, 67, 111, 110, 116, 101, 110, 116, 45, 68, 105, 115, 112, 111, 115, 105, 116, 105, 111, 110, 58, 32, 102, 111, 114, 109, 45, 100, 97, 116, 97, 59, 32, 110, 97, 109, 101, 61, 34, 102, 105, 108, 101, 34, 59, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 116)... and [96] more),HttpProtocol(HTTP/1.1))

Possibly related to #514 as this exception is also seen in production immediately after the 2xx message reported there. It may also be related to akka/akka#21008.

@derekwyatt
Copy link
Contributor

derekwyatt commented Nov 11, 2016

(Note: The output from below indicates that the akka version here is 2.4.10, which should be ignored... this is a build of akka-http from my machine because I needed the multipart charset fix)

I have more information for this (@rgmccaw and I are working on this together).

This appears to happen when the server for which we're proxying returns a 301 response. In that case two things happen.

The log shows

Nov 11 15:29:26: [ERROR] [11/11/2016 15:29:26.975] [default-akka.actor.default-dispatcher-11] [akka://default/user/StreamSupervisor-0/flow-2332153-0-unknown-operation] Error in stage [akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage@293b3be6]: requirement failed: Cannot pull port (requestParsingIn) twice
Nov 11 15:29:26: java.lang.IllegalArgumentException: requirement failed: Cannot pull port (requestParsingIn) twice
Nov 11 15:29:26: at scala.Predef$.require(Predef.scala:224)
Nov 11 15:29:26: at akka.stream.stage.GraphStageLogic.pull(GraphStage.scala:355)
Nov 11 15:29:26: at akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage$$anon$12$$anon$15.onPush(HttpServerBluePrint.scala:432)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:747)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:649)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:423)
Nov 11 15:29:26: at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
Nov 11 15:29:26: at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
Nov 11 15:29:26: at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
Nov 11 15:29:26: at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
Nov 11 15:29:26: at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
Nov 11 15:29:26: at akka.actor.ActorCell.invoke(ActorCell.scala:495)
Nov 11 15:29:26: at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
Nov 11 15:29:26: at akka.dispatch.Mailbox.run(Mailbox.scala:224)
Nov 11 15:29:26: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
Nov 11 15:29:26: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Nov 11 15:29:26: at java.lang.Thread.run(Unknown Source)
Nov 11 15:29:26: [ERROR] [11/11/2016 15:29:26.975] [default-akka.actor.default-dispatcher-19] [akka.actor.ActorSystemImpl(default)] Outgoing request stream error
Nov 11 15:29:26: java.lang.IllegalArgumentException: requirement failed: Cannot pull port (requestParsingIn) twice
Nov 11 15:29:26: at scala.Predef$.require(Predef.scala:224)
Nov 11 15:29:26: at akka.stream.stage.GraphStageLogic.pull(GraphStage.scala:355)
Nov 11 15:29:26: at akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage$$anon$12$$anon$15.onPush(HttpServerBluePrint.scala:432)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:747)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:649)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
Nov 11 15:29:26: at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:423)
Nov 11 15:29:26: at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
Nov 11 15:29:26: at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
Nov 11 15:29:26: at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
Nov 11 15:29:26: at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
Nov 11 15:29:26: at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
Nov 11 15:29:26: at akka.actor.ActorCell.invoke(ActorCell.scala:495)
Nov 11 15:29:26: at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
Nov 11 15:29:26: at akka.dispatch.Mailbox.run(Mailbox.scala:224)
Nov 11 15:29:27: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
Nov 11 15:29:27: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Nov 11 15:29:27: at java.lang.Thread.run(Unknown Source)
Nov 11 15:29:27: [ERROR] [11/11/2016 15:29:26.976] [default-akka.actor.default-dispatcher-11] [akka.actor.ActorSystemImpl(default)] Outgoing response stream error
Nov 11 15:29:27: java.lang.IllegalArgumentException: requirement failed: Cannot pull port (requestParsingIn) twice
Nov 11 15:29:27: at scala.Predef$.require(Predef.scala:224)
Nov 11 15:29:27: at akka.stream.stage.GraphStageLogic.pull(GraphStage.scala:355)
Nov 11 15:29:27: at akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage$$anon$12$$anon$15.onPush(HttpServerBluePrint.scala:432)
Nov 11 15:29:27: at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:747)
Nov 11 15:29:27: at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:649)
Nov 11 15:29:27: at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
Nov 11 15:29:27: at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:423)
Nov 11 15:29:27: at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
Nov 11 15:29:27: at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
Nov 11 15:29:27: at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
Nov 11 15:29:27: at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
Nov 11 15:29:27: at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
Nov 11 15:29:27: at akka.actor.ActorCell.invoke(ActorCell.scala:495)
Nov 11 15:29:27: at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
Nov 11 15:29:27: at akka.dispatch.Mailbox.run(Mailbox.scala:224)
Nov 11 15:29:27: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
Nov 11 15:29:27: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Nov 11 15:29:27: at java.lang.Thread.run(Unknown Source)

The curl output shows:

< HTTP/1.1 100 Continue
< Server: akka-http/2.4.10
< Date: Fri, 11 Nov 2016 21:29:26 GMT
* Empty reply from server
* Connection #0 to host <host goes here> left intact
curl: (52) Empty reply from server

Perhaps the server for which we're proxying is reading the body of the POST or the Http().singleRequest(...) is reading the body. That would trigger the 100 to be returned to the client, but the ultimate server (in this case) is trying to send back a 301 regardless of the fact that it may be reading the body anyway.

@derekwyatt
Copy link
Contributor

I think it's simpler than I stated. I've created a clean room reproduction at https://github.com/derekwyatt/redirect-and-continue. Unfortunately, it doesn't illustrate the curl: (52) Empty reply from server, which is the worst part for us but, with luck, it might give someone a clue what's going on with that.

I invite @rgmccaw to try and enhance this little example with some more guts that can reproduce the final problem.

@derekwyatt
Copy link
Contributor

I've made a patch to my local version of akka-http to try and fix this problem, which can be found at derekwyatt@eaa09eb. I'm still working on my local version of akka-http because I needed the multipart / charset fix, which I've deployed to my production code, and akka-http doesn't yet have an official release.

derekwyatt added a commit to derekwyatt/akka-http that referenced this issue Nov 14, 2016
- Introduces a new configuration `akka.http.server.proxy-mode`
- When `proxy-mode` is `on` the special handling of the `Expect:
  100-Continue` behaviour will be disabled.
- This alleviates the problem illustrated by
  https://github.com/derekwyatt/redirect-and-continue
@jrudolph
Copy link
Member

Probably a duplicate of #448.

Could you try if changing this line in HttpServerBluePrint:

if (!isClosed(requestParsingIn) && close && requestStart.expect100Continue) pull(requestParsingIn)

to

if (!isClosed(requestParsingIn) && close && requestStart.expect100Continue && !hasBeenPulled(requestParsingIn)) pull(requestParsingIn)

would fix that issue?

@derekwyatt
Copy link
Contributor

The inverse problem shows up:

[WARN] [11/14/2016 13:06:46.042] [Proxy-akka.actor.default-dispatcher-6] [akka.actor.ActorSystemImpl(Proxy)] Sending an 2xx 'early' response before end of request was received... Note that the connection will be closed after this response. Also, many clients will not read early responses! Consider only issuing this response after the request data has been completely read!
[DEBUG] [11/14/2016 13:06:46.042] [Proxy-akka.actor.default-dispatcher-4] [akka://Proxy/system/IO-TCP/selectors/$a/4] Closing connection due to IO error java.io.IOException: Broken pipe
[ERROR] [11/14/2016 13:06:46.043] [Proxy-akka.actor.default-dispatcher-6] [akka://Proxy/user/StreamSupervisor-0/flow-5-0-unknown-operation] Error in stage [akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage@4099f754]: requirement failed: Cannot push port (requestPrepOut) twice
java.lang.IllegalArgumentException: requirement failed: Cannot push port (requestPrepOut) twice
    at scala.Predef$.require(Predef.scala:224)
    at akka.stream.stage.GraphStageLogic.push(GraphStage.scala:459)
    at akka.http.impl.engine.server.HttpServerBluePrint$ControllerStage$$anon$12$$anon$13.onPush(HttpServerBluePrint.scala:389)
    at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:747)
    at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:649)
    at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
    at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:423)
    at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
    at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
    at akka.actor.Actor$class.aroundReceive(Actor.scala:484)
    at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

@jrudolph jrudolph added the bug label Nov 17, 2016
@jrudolph jrudolph added this to the backlog milestone Nov 17, 2016
@jrudolph
Copy link
Member

Further analysis: this happens for 100-continue requests when you send out a response before the request entity has been read.

@YouXiang-Wang
Copy link

I tried V10.0.4. Looks the problem does not fix.

In my env, when the connection idles about some minutes, the error will occur. And if I connect again, it will become okey.

BTW, this error occurs on HTTP, rarely see it on HTTPS.

@jrudolph
Copy link
Member

jrudolph commented Mar 5, 2017

HI @Birdflying1005 can you post the exact error you get? Multiple issues were reported in this ticket and line numbers etc have changed so it's important we got the stack trace.

@YouXiang-Wang
Copy link

YouXiang-Wang commented Mar 6, 2017

@jrudolph sure.
I glad to describe the usage scenario here.

I am using akka-http as the http client to send the request to the REST API which is just like a API gateway.

    val r1 = Source.single(req -> 1)
      .via(pool)
      .runWith(Sink.head).recoverWith {
      case e: Exception => println("-------------"); null
    }

r1.flatMap {
      case (Success(response: HttpResponse), _) => {
        response.entity.withoutSizeLimit.dataBytes.runFold(ByteString.empty) {
          case (acc, b) => acc ++ b
        }.map{s => log.info("TEXT =======>" + s.utf8String); TextMessage(s.utf8String)}
      }
      case (Failure(f), _) => Future {ErrorMessage(s"A TCP Steaming exception. Caused by ${f.getMessage}")}
      case _ => Future {ErrorMessage(s"TCP Steaming exception. Caused by")}
    }
  }

In this code snippet , "pool" is a http connection pool which has cached the http connection.

Http().cachedHostConnectionPoolHttps[Int](host = interface, port = port, contextSSL, settings = poolSettings.get)

And the setting is:

val httpClientConf =
    s"""
       akka {
        http {
            client {
              user-agent-header = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"
              connecting-timeout = 120 s
              idle-timeout = ${maxTimeoutIdle} s
            }

            host-connection-pool {
              max-connections = 32
              min-connections = 4
              max-retries = 5
              max-open-requests = 128
              pipelining-limit = 1
              client {
                idle-timeout = ${maxTimeoutIdle} s
              }
            }

          }

          ssl-config {
            hostnameVerifierClass = "com.ibm.datatools.messageservice.gateway.CustomizedHostnameVerifier"
          }

        }
     """

The error is:

[03/06/2017 09:31:09.870] [ServiceClusterSystem-akka.actor.default-dispatcher-129] [akka://ServiceClusterSystem/user/StreamSupervisor-4/flow-24-0-unknown-operation] Error in stage [akka.http.impl.engine.client.PoolSlot$SlotProcessor@362c674c]: requirement failed: cannot pull port (SubSinkInlet(SlotProcessor.ResponseSink)) twice
java.lang.IllegalArgumentException: requirement failed: cannot pull port (SubSinkInlet(SlotProcessor.ResponseSink)) twice
	at scala.Predef$.require(Predef.scala:224)
	at akka.stream.stage.GraphStageLogic$SubSinkInlet.pull(GraphStage.scala:1011)
	at akka.http.impl.engine.client.PoolSlot$SlotProcessor$$anon$1$$anon$4.onPull(PoolSlot.scala:181)
	at akka.stream.impl.fusing.GraphInterpreter.processPull(GraphInterpreter.scala:754)
	at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:660)
	at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:471)
	at akka.stream.impl.fusing.GraphInterpreterShell.receive(ActorGraphInterpreter.scala:414)
	at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream$impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:603)
	at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:618)
	at akka.actor.Actor$class.aroundReceive(Actor.scala:497)
	at akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(ActorGraphInterpreter.scala:529)
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
	at akka.actor.ActorCell.invoke(ActorCell.scala:495)
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
	at akka.dispatch.Mailbox.run(Mailbox.scala:224)
	at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

And the error I do not know how to catch it in my code. please also guide me.

Thanks.

@jrudolph
Copy link
Member

jrudolph commented Mar 8, 2017

@Birdflying1005 This is a different bug, fortunately. I created #938 to track it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants