Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.16.0
Description
I have started a flight's local python server with TLS support using the testing certificates present in repo:
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
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:
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
File iris.csv is pushed successfully.
2. List the flights available on the server
python3 <arrow_dir>/python/examples/flight/client.py list --tls --tls-roots <arrow_dir>/testing/data/flight/root-ca.pem localhost:5005
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
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
It is failing with following errors:
Ticket: <Ticket b"(1, None, (b'/sharedFolder/dataset/iris.csv',))">
<Location b'grpc+tls://localhost:5005'>
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.
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
Python client.py is working for functions like list_flights(), do_action(), push_data() but failing on
get_flight() function for code line.
reader = get_client.do_get(endpoint.ticket)