[ https://issues.apache.org/jira/browse/ARROW-8304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17072776#comment-17072776 ]
David Li commented on ARROW-8304: --------------------------------- This is because client.py creates a new client to call do_get, but doesn't configure TLS certificates. > [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 > Priority: Major > > 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)