You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Ravindra Wagh (Jira)" <ji...@apache.org> on 2020/04/01 07:15:00 UTC

[jira] [Created] (ARROW-8304) [Flight][Python] Flight client with TLS root certificate is reporting error on do_get()

Ravindra Wagh created ARROW-8304:
------------------------------------

             Summary: [Flight][Python] Flight client with TLS root certificate is reporting error on do_get()
                 Key: ARROW-8304
                 URL: https://issues.apache.org/jira/browse/ARROW-8304
             Project: Apache Arrow
          Issue Type: Bug
          Components: FlightRPC, Python
    Affects Versions: 0.16.0
            Reporter: Ravindra Wagh


I have started a flight's local python server with TLS support using the testing certificates present in repo:

 
{code:java}
python3 <arrow_dir>/python/examples/flight/server.py  --host localhost --tls <arrow_dir>/testing/data/flight/cert0.pem <arrow_dir>/testing/data/flight/cert0.key{code}
This server is started successfully.

Now I started testing the python client with TLS support.

1. Client pushing a csv file to the flightendpoint server:

 

 
{code:java}
python3 <arrow_dir>/python/examples/flight/client.py put --tls --tls-roots <arrow_dir>/testing/data/flight/root-ca.pem localhost:5005 /sharedFolder/dataset/iris.csv{code}
 

File iris.csv is pushed successfully.

2. List the flights available on the server
{code:java}
python3 <arrow_dir>/python/examples/flight/client.py list --tls --tls-roots <arrow_dir>/testing/data/flight/root-ca.pem localhost:5005{code}
 It is listing the flight which is pushed in above step 1.

3. Get/Retrieve the specific flight(eg. /sharedFolder/dataset/iris.csv) from the server
{code:java}
python3 <arrow_dir>/python/examples/flight/client.py get --tls --tls-roots <arrow_dir>/testing/data/flight/root-ca.pem -p /sharedFolder/dataset/iris.csv localhost:5005{code}
 It is failing with following errors:
{quote}Ticket: <Ticket b"(1, None, (b'/sharedFolder/dataset/iris.csv',))">

<Location b'grpc+tls://localhost:5005'>

{color:#FF0000}E0401 06:43:30.164324553    1055 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.{color}

Traceback (most recent call last):

  File "<arrow_dir>/python/examples/flight/client.py", line 178, in <module>

    main()

  File "<arrow_dir>/python/examples/flight/client.py", line 174, in main

    commands[args.action](args, client)

  File "<arrow_dir>/python/examples/flight/client.py", line 98, in get_flight

    reader = get_client.do_get(endpoint.ticket)

  File "pyarrow/_flight.pyx", line 1144, in pyarrow._flight.FlightClient.do_get

  File "pyarrow/_flight.pyx", line 73, in pyarrow._flight.check_flight_status

pyarrow._flight.FlightUnavailableError: gRPC returned unavailable error, with message: Connect Failed
{quote}
Python client.py is working for functions like _list_flights(),  do_action(), push_data()_ but failing on 

_get_flight()_ function for code line.
{code:java}
reader = get_client.do_get(endpoint.ticket) {code}
.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)