[ 
https://issues.apache.org/jira/browse/ARROW-15908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Dunderdale updated ARROW-15908:
-------------------------------------
    Description: 
Hi all

I'm busy testing arrow flight and I'm noticing that requesting actions from C# 
to Python is raising the following exception.
{code:java}
Unhandled exception. System.AggregateException: One or more errors occurred. 
(Status(StatusCode="Unknown", Detail="a bytes-like object is required, not 
'str'. Detail: Python exception: TypeError"))
 ---> Grpc.Core.RpcException: Status(StatusCode="Unknown", Detail="a bytes-like 
object is required, not 'str'. Detail: Python exception: TypeError")
   at 
Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken
 cancellationToken)
   at Apache.Arrow.Flight.Internal.StreamReader`2.MoveNext(CancellationToken 
cancellationToken)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 
CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at Test.Program.Main(String[] args) in C:\Users\Chris\Test\Program.cs:line 33
 {code}
I've built a [C# 
client|https://github.com/apache/arrow/tree/master/csharp/examples/FlightClientExample]
 and [Python 
server|https://github.com/apache/arrow/tree/master/python/examples/flight] 
which I've obtained from the Arrow Github repo.

I've trimmed down the C# client to just the following code:
{code:java}
using System;
using Grpc.Net.Client;
using Apache.Arrow.Flight.Client;
using Apache.Arrow.Flight;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            var address = "http://localhost:5005";;
            Console.WriteLine($"Connecting to: {address}");
            var channel = GrpcChannel.ForAddress(address);
            var client = new FlightClient(channel);
            var shutdownAction = client.DoAction(new FlightAction("shutdown")); 
                shutdownAction.ResponseStream.MoveNext(default).Wait();
            
        }
    }
} {code}
 

I've noted that the original code on the github repo example uses await (which 
no longer seems to work) and if I leave the final line out, the do_action() 
method is never called server-side.

  was:
Hi all

I'm busy testing arrow flight and I'm noticing that requesting actions from C# 
to Python is raising the following exception.
{code:java}
Unhandled exception. System.AggregateException: One or more errors occurred. 
(Status(StatusCode="Unknown", Detail="a bytes-like object is required, not 
'str'. Detail: Python exception: TypeError"))
 ---> Grpc.Core.RpcException: Status(StatusCode="Unknown", Detail="a bytes-like 
object is required, not 'str'. Detail: Python exception: TypeError")
   at 
Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken
 cancellationToken)
   at Apache.Arrow.Flight.Internal.StreamReader`2.MoveNext(CancellationToken 
cancellationToken)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 
CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at Test.Program.Main(String[] args) in C:\Users\Chris\Test\Program.cs:line 33
 {code}
I've built [C# 
client|https://github.com/apache/arrow/tree/master/csharp/examples/FlightClientExample]
 and [Python 
server|https://github.com/apache/arrow/tree/master/python/examples/flight] 
which I've obtained from the Arrow Github repo.

 

I've trimmed down the C# client to just the following code:

 
{code:java}
using System;
using Grpc.Net.Client;
using Apache.Arrow.Flight.Client;
using Apache.Arrow.Flight;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            var address = "http://localhost:5005";;
            Console.WriteLine($"Connecting to: {address}");
            var channel = GrpcChannel.ForAddress(address);
            var client = new FlightClient(channel);
            var shutdownAction = client.DoAction(new FlightAction("shutdown")); 
                shutdownAction.ResponseStream.MoveNext(default).Wait();
            
        }
    }
} {code}
 

I've noted that the original code on the github repo example uses await (which 
no longer seems to work) and if I leave the final line out, the do_action() 
method is never called server-side.


> [Python] FlightClient.DoAction raises RPC exception (C# Client <-> Python 
> Server Flight)
> ----------------------------------------------------------------------------------------
>
>                 Key: ARROW-15908
>                 URL: https://issues.apache.org/jira/browse/ARROW-15908
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C#, Python
>    Affects Versions: 7.0.0
>         Environment: Rider 2021.3
> Windows
> Installed Nuget Packages:
> Grpc.Net.Client 2.42.0
> Apache.Arrow.Flight
>            Reporter: Chris Dunderdale
>            Priority: Major
>              Labels: C#, Python3
>
> Hi all
> I'm busy testing arrow flight and I'm noticing that requesting actions from 
> C# to Python is raising the following exception.
> {code:java}
> Unhandled exception. System.AggregateException: One or more errors occurred. 
> (Status(StatusCode="Unknown", Detail="a bytes-like object is required, not 
> 'str'. Detail: Python exception: TypeError"))
>  ---> Grpc.Core.RpcException: Status(StatusCode="Unknown", Detail="a 
> bytes-like object is required, not 'str'. Detail: Python exception: 
> TypeError")
>    at 
> Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken
>  cancellationToken)
>    at Apache.Arrow.Flight.Internal.StreamReader`2.MoveNext(CancellationToken 
> cancellationToken)
>    --- End of inner exception stack trace ---
>    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 
> CancellationToken cancellationToken)
>    at System.Threading.Tasks.Task.Wait()
>    at Test.Program.Main(String[] args) in C:\Users\Chris\Test\Program.cs:line 
> 33
>  {code}
> I've built a [C# 
> client|https://github.com/apache/arrow/tree/master/csharp/examples/FlightClientExample]
>  and [Python 
> server|https://github.com/apache/arrow/tree/master/python/examples/flight] 
> which I've obtained from the Arrow Github repo.
> I've trimmed down the C# client to just the following code:
> {code:java}
> using System;
> using Grpc.Net.Client;
> using Apache.Arrow.Flight.Client;
> using Apache.Arrow.Flight;
> namespace Test
> {
>     class Program
>     {
>         static void Main(string[] args)
>         {
>             var address = "http://localhost:5005";;
>             Console.WriteLine($"Connecting to: {address}");
>             var channel = GrpcChannel.ForAddress(address);
>             var client = new FlightClient(channel);
>             var shutdownAction = client.DoAction(new 
> FlightAction("shutdown"));                 
> shutdownAction.ResponseStream.MoveNext(default).Wait();
>             
>         }
>     }
> } {code}
>  
> I've noted that the original code on the github repo example uses await 
> (which no longer seems to work) and if I leave the final line out, the 
> do_action() method is never called server-side.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to