I would expect there to be more to the error message than just
"client_class". I'm assuming there's an indentation problem in your
original post and that the instantiation of the "client_class" message is
happening within the Get_Data handler. What happens if you try to
instantiate a "client_class" outside of the handler, on the main thread. Do
you get a more illuminating error message?
On Wednesday, September 23, 2020 at 9:20:45 AM UTC-4 Jatin Sharma wrote:
> I want to send a class to the grpc server. So, I am pickling the class and
> sharing as a bytes format in the message.
> The .proto file(serverdata.proto) looks like below:
>
> syntax = "proto3";
>
> service DataProvider{
> rpc Get_Data(client_class) returns (result);
> }
>
> message client_class{
> bytes class_str = 1;
> }
>
> message result{
> int64 res = 1;
> }
>
> client.py file looks like below:
>
> import grpc
> import serverdata_pb2
> import serverdata_pb2_grpc
> import pickle
> import pandas as pd
>
>
> class Get_Hash():
> def get_hash(self,df):
> return pd.util.hash_pandas_object(df).sum()
>
> a = serverdata_pb2.client_class()
> a.class_str = pickle.dumps(Get_Hash)
>
> channel = grpc.insecure_channel('localhost:50051')
> # create a stub (client)
> stub = serverdata_pb2_grpc.DataProviderStub(channel)
> response = stub.Get_Data(a)
>
> print(response.res)
>
> On running this client, I'm getting the following error:
>
> Traceback (most recent call last):
> File "client.py", line 18, in <module>
> response = stub.Get_Data(a)
> File "/home/jatin/.local/lib/python3.8/site-packages/grpc/_channel.py",
> line 826, in __call__
> return _end_unary_response_blocking(state, call, False, None)
> File "/home/jatin/.local/lib/python3.8/site-packages/grpc/_channel.py",
> line 729, in _end_unary_response_blocking
> raise _InactiveRpcError(state)
> grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated
> with:
> status = StatusCode.UNKNOWN
> details = "Exception calling application: client_class"
> debug_error_string =
> "{"created":"@1600867086.557068214","description":"Error received from peer
> ipv6:[::1]:50051","file":"src/core/lib/surface/call.cc","file_line":1061,"grpc_message":"Exception
>
> calling application: client_class","grpc_status":2}"
> >
>
> I'm unable to resolve this error. I checked the type of the pickle file.
> It was 'bytes'. So, I changed the type in the .proto file to bytes. I'd be
> grateful if someone can help me resolve this error.
>
> Regards,
> Jatin
>
>
>
>
>
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/94820718-28c9-4238-bbf9-9169f7448a52n%40googlegroups.com.