Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-8304

[Flight][Python] Flight client with TLS root certificate is reporting error on do_get()

    XMLWordPrintableJSON

Details

    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) 

      Attachments

        Activity

          People

            apitrou Antoine Pitrou
            ravindra.wagh Ravindra Wagh
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1.5h
                1.5h