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

[FlightRPC][Python] Regression in DoPut error handling

    XMLWordPrintableJSON

Details

    Description

      In PyArrow 8.0.0, any error raised while handling DoPut on the server results in FlightInternalError on the client.

      In PyArrow 7.0.0, errors raised while handling DoPut are propagated/converted to non-internal errors.

      Example: on 7.0.0, raising FlightCancelledError while handling DoPut on the server would propagate that error including extra_info all the way to the FlightClient. This is not the case anymore on 8.0.0.

      The FlightInternalError contains extra detail that is derived from the cancelled error though:

      /arrow/cpp/src/arrow/flight/client.cc:363: Close() failed: IOError: <error message from FlightError is here>. Detail: Cancelled. gRPC client debug context: {"created":"@1652777650.446052211","description":"Error received from peer ipv4:127.0.0.1:16001","file":"/opt/vcpkg/buildtrees/grpc/src/85a295989c-6cf7bf442d.clean/src/core/lib/surface/call.cc","file_line":903,"grpc_message":"<error message from FlightError is here>. Detail: Cancelled","grpc_status":1}. Client context: OK. Detail: Cancelled
       

      Note: skimming through the code, it seems this problem is not unique to PyArrow.

      Attachments

        Issue Links

          Activity

            People

              lidavidm David Li
              lupko Lubo Slivka
              Votes:
              0 Vote for this issue
              Watchers:
              5 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 - 50m
                  50m