Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Imran Settuba
    @sImttuba_gitlab
    @fedefernandez Thanks. May get back to you, when I have questions ?
    Fede Fernández
    @fedefernandez
    sure! don't hesitate
    Sander Dijkhuis
    @sander
    Hi! I’m trying to create a gRPC service using mu that can be consumed from a golang client. However, I’m getting Method not found errors. Code and description are in: https://github.com/sander/rpctest Any ideas what’s going on?
    Sander Dijkhuis
    @sander
    Found it, using Wireshark. Fix is in https://github.com/sander/rpctest/tree/fix . Turns out that even though idlGen emitted a call to /rpctest.pkg.Greeter/SayHello, the server only accepts a call to /Greeter/sayHello. This is also what a mu client would send apparently. The former format appears more idiomatic gRPC. Do you intend to support this?
    Fede Fernández
    @fedefernandez
    Hi @sander, do you mind to explain what means idlGen emitted a call to /rpctest.pkg.Greeter/SayHello? On the other hand, could you please raise an issue for the request? Thanks
    Sander Dijkhuis
    @sander
    Hi @fedefernandez, will do. I meant idlGen emitted a .proto file that, when compiling using protoc for Go/JS, leads to a /rpctest.pkg.Greeter/SayHellocall
    Fede Fernández
    @fedefernandez
    Oh I see, thanks for pointing it out
    Sander Dijkhuis
    @sander
    Still a ticket needed? Was unsure whether it is a project goal to support interoperability with other gRPC implementations
    Fede Fernández
    @fedefernandez
    Yes please, it'd be super useful to start a discussion and see how we can add support for that.
    Sander Dijkhuis
    @sander
    Will do! Thanks
    Sander Dijkhuis
    @sander
    With mu, is there currently a recommended way to send and interpret credentials, cookies, or other (security) headers along with a gRPC call?
    Sander Dijkhuis
    @sander
    In particular, looking to use mu to do browser-backend communication with sessions
    Sander Dijkhuis
    @sander
    Thanks Fede! Will look into it
    Sander Dijkhuis
    @sander
    Filed higherkindness/mu#599 regarding the gRPC interop issue
    Fede Fernández
    @fedefernandez
    :+1:
    Thanks, will try to prioritize in the backlog
    Mauro González
    @maurogonzalez
    HI @sander @fedefernandez , I tried your rpctest example and works fine, using 0.18.1-SNAPSHOT, but when I change some param to a Numeric type it throws the following error:
    Apr 24, 2019 5:08:00 PM io.grpc.internal.SerializingExecutor run SEVERE: Exception while executing runnable io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1MessagesAvailable@7ae1abfe java.util.NoSuchElementException: head of empty list at scala.collection.immutable.Nil$.head(List.scala:426) at scala.collection.immutable.Nil$.head(List.scala:423) at pbdirect.PBParserImplicits.$anonfun$requiredParser$1(PBReader.scala:173) at pbdirect.PBParserImplicits.$anonfun$requiredParser$1$adapted(PBReader.scala:162) at pbdirect.LowPriorityPBParserImplicits$$anon$2.parse(PBReader.scala:119) at pbdirect.LowPriorityPBParserImplicits.$anonfun$consParser$1(PBReader.scala:128) at pbdirect.LowPriorityPBParserImplicits.$anonfun$consParser$1$adapted(PBReader.scala:127) at pbdirect.LowPriorityPBParserImplicits$$anon$2.parse(PBReader.scala:119) at pbdirect.PBReaderImplicits.$anonfun$prodReader$1(PBReader.scala:62) at pbdirect.LowerPriorityPBReaderImplicits$$anon$1.read(PBReader.scala:38) at pbdirect.PBParserImplicits.$anonfun$requiredParser$1(PBReader.scala:169) at pbdirect.PBParserImplicits.$anonfun$requiredParser$1$adapted(PBReader.scala:162) at pbdirect.LowPriorityPBParserImplicits$$anon$2.parse(PBReader.scala:119) at pbdirect.package$PBParserOps$.pbTo$extension(package.scala:47) at higherkindness.mu.rpc.internal.encoders.pbd$$anon$1.parse(pbd.scala:40) at io.grpc.MethodDescriptor.parseRequest(MethodDescriptor.java:289) at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.messagesAvailable(ServerCallImpl.java:263) at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1MessagesAvailable.runInContext(ServerImpl.java:687) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) It seems to be a parser error but couldn't find the reason.
    Sander Dijkhuis
    @sander
    @maurogonzalez from https://github.com/higherkindness/mu/issues/604#issuecomment-486384131 I understand that idlGen will be deprecated so rpctest should not be the best starting point. Better to create a valid .proto file first and then use srcGen
    Mauro González
    @maurogonzalez
    Thanks @sander , I'll give it a try.
    Mauro González
    @maurogonzalez
    I just tried using srcGen and still throwing the same error with numeric types like float. Any idea?
    Fede Fernández
    @fedefernandez
    @maurogonzalez not from top of my head sorry. could you please raise an issue? thanks
    Mauro González
    @maurogonzalez
    Sure @fedefernandez
    Mauro González
    @maurogonzalez
    Fede Fernández
    @fedefernandez
    thanks
    Sander Dijkhuis
    @sander
    Raised a best-practices question in higherkindness/mu#608 - curious about your experiences
    Juan Pedro Moreno
    @juanpedromoreno
    Hi @maurogonzalez , I replied in the issue but I’m afraid that I cannot reproduce the problem :/
    I’ve collected some pieces of code that I used in this gist: https://gist.github.com/juanpedromoreno/350b4051823cfaee6dcb455657534133
    Thanks for higherkindness/mu#608 @sander , I’ll try to write up something, later today or tomorrow :)
    Mauro González
    @maurogonzalez
    Hi @juanpedromoreno thanks for the reply, with mu client I didn't have any issue, works fine. But using grpcurl (https://github.com/fullstorydev/grpcurl) and the given *.proto file it failed. I answered in the issue with the exact command. I'm trying to test interop.
    Mauro González
    @maurogonzalez

    Hey there, I found another issue related to enums in the response message:
    grpcurl throws

    ERROR:
      Code: Internal
      Message: grpc: failed to unmarshal the received message type_enum field HelloResponse.message is not compatible with nil value

    while mu client returns other value of the enum type different from the one defined in the handler.

    Mauro González
    @maurogonzalez
    Hi @juanpedromoreno , hope things are going well. I also found that is failing in the request message (only testing mu's server/client). I forked and example to add client app and using srcGen in compilation: https://github.com/maurogonzalez/rpctest/tree/enums
    // ClientApp
     ... client.sayHello(Test.HELLO)
    
    // Server Log: INFO GreeterServiceHandler - Request: HelloRequest(GOODBYE)
    // Client Log: INFO GreeterServiceClient - Request: HELLO - Result: HelloResponse(GOODBYE)
    Juan Pedro Moreno
    @juanpedromoreno
    @maurogonzalez , would you mind to submit an issue? We’ll take a look at it asap. Thanks!
    Mauro González
    @maurogonzalez
    Sure @juanpedromoreno higherkindness/mu#611 Also I'll take a look if it's related with Scala's Object and Java's dependencies.
    Juan Pedro Moreno
    @juanpedromoreno
    Thanks Mauro!
    Adrian Ramirez Fornell
    @AdrianRaFo
    @maurogonzalez One question, Do you have the enum elements declared on the same order for both the idl and the scala enum?
    Mauro González
    @maurogonzalez
    @AdrianRaFo Scala's are generated by srcGen and yes, they are in the same order. There are some issues with Scala object and java code because they are not really singletons from the java's perspective. An example: https://blog.softwaremill.com/is-your-scala-object-always-a-singleton-cb3fd24a2fd9 not sure if this is related with these "enums" and io.grpc (java).
    Maureen Elsberry
    @MaureenElsberry
    Javi has a new article on extracting metrics from mu-rpc microservices using Prometheus and DropWizard here: https://www.47deg.com/blog/metrics-integration-with-mu/
    Javier de Silóniz Sandino
    @jdesiloniz
    Please feel free to let us know your comments or questions about the article :)
    Lukasz Trojanowski
    @lstrojanowski_twitter
    Does anyone work on the kotlin version of mu, or is this currently on hold?
    Raúl Raja Martínez
    @raulraja
    @lstrojanowski_twitter we are getting started but prioritising work on Arrow Fx since streams is needed for Mu
    We will focus on Mu for Kotlin once Arrow 0.10 releases in a couple of weeks
    Ghost
    @ghost~576313fbc2f0db084a1e4ad4
    hi, i was looking at mu. it looks really interesting. i had a question, is it a bad idea to have a grpc client and server on the same JVM instance ?
    call graph server A <--> server B server A <--> server C and server B <--> server C
    its bi directional
    Juan Manuel Méndez Rey
    @vejeta
    @virdis For starters, Imagine that one of the processes make the JVM crash, for example, the client, that would destroy both client and server, separating them would prevent such problems.
    I don't understand the second question.
    sandeep virdi
    @_svirdi_twitter
    @vejeta thanks for the reply, apologies for not being very clear.
    I want server to server communication, and these servers form a "ring". From all that I have seen, it seems adding a client to the same JVM process is the way to go.
    Juan Manuel Méndez Rey
    @vejeta
    ah, ok, that makes more sense