Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 01:53
    akka-ci commented #28379
  • 01:53
    akka-ci unlabeled #28379
  • 01:53
    akka-ci labeled #28379
  • 01:27
    ShutaoTang closed #28372
  • 01:27
    ShutaoTang commented #28372
  • 01:18
    helena labeled #28379
  • 01:18
    helena commented #28379
  • 01:17
    helena unassigned #28379
  • 01:17
    helena unassigned #28379
  • 01:17
    helena closed #28084
  • 01:17
    helena commented #28084
  • 01:16
    akka-ci labeled #28379
  • 01:16
    helena assigned #28379
  • 01:16
    helena assigned #28379
  • 01:16
    helena opened #28379
  • 01:11
    akka-ci commented #28375
  • 01:11
    akka-ci commented #28376
  • 01:11
    akka-ci commented #28377
  • 01:11
    akka-ci commented #28378
  • 01:07
    scala-steward opened #28378
Patrik Nordwall
@patriknw
I tried packageBin and package at various places but it's not included, now tried with akka-remote-tests> multi-jvm:testOnly akka.remote.artery.MaxThroughputSpec
Arnout Engelen
@raboof
perhaps a .dependsOn(remote % "compile->CompileJdk9") would help?
saying 'compile in this module depends on CompileJdk9 in remote'
Johan Andrén
@johanandren
I must have imagined seeing it from the tests then and only actually saw it in an external project depending on the jars
Patrik Nordwall
@patriknw
Thanks, I think that helped. remote % "compile->CompileJdk9;test->test"
Arnout Engelen
@raboof
(I hope that also works when compiling with jdk8, though...)
Johan Andrén
@johanandren
@raboof shouldn’t the proper solution be to hook the CompileJdk9/compile up to regular compile somehow when on JDK 11 though?
Patrik Nordwall
@patriknw
also worked in cluster multi-jvm now
Johan Andrén
@johanandren
:+1:
Arnout Engelen
@raboof
@johanandren yeah, possibly... Compile / fullClasspath ++= (CompileJdk9 / exportedProducts).value) is going in that direction, but perhaps dependencies between modules don't use the fullClasspath and we should be adding them to a more low-level task instead
Johan Andrén
@johanandren
Can’t get scala-jdk9-only tests to be picked up either
show akka-remote/TestJdk9/sourceDirectories lists the right place
but akka-remote/TestJdk9/test doesn’t run anything
kerr
@hepin1989
override def preRestart(reason: Throwable, message: Option[Any]) in AbstractActor is not marked with final, so that's because there will be many class need to change?
Patrik Nordwall
@patriknw
@hepin1989 yes, there is a TODO there about making it final. Could you open a PR?
kerr
@hepin1989
@patriknw I think there will be massive change to the stash and akka-persistent,IIRC, stash overrides the preStart function, if hide that from Java will need some adaptions
Patrik Nordwall
@patriknw
I see, ok then not worth changing that. At least it has a deprecated warning for Java users.
Helena Edelson
@helena
Our sprint plan https://github.com/akka/akka/projects/7 with of course other work also happening across related projects, e.g. https://github.com/akka/akka-persistence-cassandra/projects/2
Patrik Nordwall
@patriknw
and the full sprint plan in akka/akka-meta#125, outcome of previous sprint in https://github.com/akka/akka-meta/issues/123#issuecomment-563302172
Patrik Nordwall
@patriknw
Releasing Akka 2.5.27
Dmitriy Zakomirnyi
@dmi3zkm
Hi team!
@raboof Could you please take a look at the last comment in akka/akka-grpc#507 ?
Arnout Engelen
@raboof
@dmi3zkm yeah, looks like that'd work for the client side. Do you think it should be the default?
Patrik Nordwall
@patriknw
pls review release notes akka/akka.github.com#657
Dmitriy Zakomirnyi
@dmi3zkm
@raboof not really. I was wondering is it ever possible to set keep alive. I thought it was buried deep under akka abstractions and there were no way to override it :-)
Still curious if this is that easy why the issue marked as enhancement.
Arnout Engelen
@raboof
@dmi3zkm partly because I wasn't sure it'd be so easy for the client side, partly because it's probably not so easy for the server side (perhaps we should split the issue), partly because withChannelBuilderOverrides is a temporary API that will go away when we ever move to Akka HTTP for the client as well
Arnout Engelen
@raboof
https://github.com/lightbend/Pi-Akka-Cluster/pull/131/files <- I haven't spent that much time with our recommended conventions for the new API's yet, so another pair of eyes might be good :)
Dmitriy Zakomirnyi
@dmi3zkm
@raboof Do you mean the server side have to be configured/implemented explicitly to support keep alive?
Arnout Engelen
@raboof
@dmi3zkm I haven't looked into it, but I could imagine so - I haven't looked into how keepalive in gRPC is done on the protocol level yet
Dmitriy Zakomirnyi
@dmi3zkm
@raboof ok, I'll try to investigate.
Patrik Nordwall
@patriknw
Andrea Peruffo
@andreaTP
@patriknw regarding akka/akka#27510
the reality is that I got stuck a couple of time into upgrading to latest 2.5 (something JVM specific sneaked in in streams or streams testkit need time to investigate), I will possibly have some time to dedicate in the next weeks (or maybe around Christmas ...), is it a blocker for you?
Patrik Nordwall
@patriknw
Thanks for looking into it. We have fiddle examples in the current 2.6 documentation that doesn't work, which isn't great for first Akka 2.6 impressions, but it's not a big deal.
Andrea Peruffo
@andreaTP
I see
I will try to find some time to look into
thanks for the feedback
tayvs
@tayvs

@raboof Hello. I with @dmi3zkm were tested keep-alive header and here what we found
Before testing I had a firm assumption that akka-grpc issues new http connection on each grpc call.
Then I've found out that I could set client's keep alive related setting using ChannelBuilderOverrides.
The code follows:

GrpcClient(GrpcClientSettings.connectToServiceAt("localhost", 9091).withTls(false)
      .withChannelBuilderOverrides(_.keepAliveWithoutCalls(true)
      .keepAliveTime(10, TimeUnit.MINUTES)
      .keepAliveTimeout(1, TimeUnit.MINUTES)))

Searching code I've found client's idleTimeout which is set to 30 minutes by default.
Although, using the wireshark I couldn't find any Keep-Alive headers in request/response packets, the connection was reused between multiple grpc calls.
After setting idleTimeout to 100 millis and waiting for 1 sec between each call in my test, I've seen connection reestablishing packets in the wireshark.
Then I googled for http2 (which grpc uses underneath) specification and found out the section 8.1.2.2 Connection-Specific Header Fields which states:

HTTP/2 does not use the Connection header field to indicate connection-specific header fields; in this protocol, connection-specific metadata is conveyed by other >means. An endpoint MUST NOT generate an HTTP/2 message containing connection-specific header fields; any message containing connection-specific header fields >MUST be treated as malformed (Section 8.1.2.6).
The only exception to this is the TE header field, which MAY be present in an HTTP/2 request; when it is, it MUST NOT contain any value other than "trailers".
This means that an intermediary transforming an HTTP/1.x message to HTTP/2 will need to remove any header fields nominated by the Connection header field, >along with the Connection header field itself. Such intermediaries SHOULD also remove other connection-specific header fields, such as Keep-Alive, Proxy->Connection, Transfer-Encoding, and Upgrade, even if they are not nominated by the Connection header field.

This drives me to the consclusion that http2 omits Keep-Alive headers at all and grpc connections on top of http2 is persistent out of the box.
Please, confirm or correct my assumptions.

Arnout Engelen
@raboof
I agree HTTP2 doesn't use the classic headers like Keep-Alive, Connection itself etc. I suspect there's more to keepalive in grpc though: perhaps indeed keepAliveWithoutCalls is just a matter of setting timeouts, but it suggests there also exists a 'keepalive with calls', which likely does need explicit code on the server side?
tayvs
@tayvs
@raboof I think that all this KeepAlive methods do not work at HTTP2 at all. About 'keepalive with calls' I found idleTimeout method that set timeout after which all connection would be closed
Patrik Nordwall
@patriknw
I think now is a good time for another review round of the reliable delivery. Focus on the core ProducerController/ConsumerController. Next step is to define the actual public API for those. Perhaps @johanandren and @chbatey can take a look? akka/akka#28155
Arnout Engelen
@raboof
am I not looking in the right place or are MultiNodeClusterShardingSpec/MultiNodeClusterShardingConfignot actually used anywhere?
eyal farago
@eyalfa
hi guys, I have a question re. prefixAndTail: I'm prefixing my stream and observe the prefix in order to determine what flow/graph to connect downstream. this is (quite) easily done by mapping the result of prefixAndTail, the map function chooses/constructs the downstream flow and connects it to the tail source by applying the via operator, then I use flatMapConcat in order to flatten the thing (I know I can fuse together the map and flatMapConcat operations). this works like a charm.
troubles begin when I need the materialized value of the downstream flow, flatMapConcat don't have a 'Mat' version (I can see why as the general case will require folding over multiple materialized values) and the downstream flow is not known before the prefix is consumed so I'm kind'a stuck... I'd be happy to be able to utilize something like Flow.futureFlow to obtain a Future mat-value but I can't see how can this be done when the fuure flow is based on the consumed prefix... any ideas?
Johan Andrén
@johanandren
@eyalfa this is the channel for us developing Akka, please use the akka/akka channel for questions about using Akka
eyal farago
@eyalfa
:+1: though I think this boils down to a discussion over the perfixAndTail operator design
eyal farago
@eyalfa
guys, I'm having troubles compiling the project in idea, I have a faint memory akka's sbt uses some scalac flags and plugins required for proper compilation, is there a way to enable these in the idea?
Patrik Nordwall
@patriknw
You mean full Build Project? I don't think any of us are using that. We compile with sbt from the terminal, also running tests from sbt.
eyal farago
@eyalfa
yes, figured that out eventually... tests actually do run in the idea
...mostly
George Yanev
@georgeyanev
How am I supposed to use the new akka.actor.typed API instead of the deprecated TypedActor in akka 2.6? There is no word in docs about that.
Patrik Nordwall
@patriknw
@georgeyanev akka/akka was the right place for the question. I have answered there.