I don't understand the handle terminology. Can you please explain what you 
mean by handle. Thanks.

On Wednesday, September 23, 2020 at 11:08:35 PM UTC+5:30 [email protected] 
wrote:

> 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/65656b59-cc4d-40d7-a00f-eef9b8f785ecn%40googlegroups.com.

Reply via email to