Noticed after #6215 in #6023 that there were certain cases where RPCs were hanging in tests. These happened to be FlightServiceGrpcImpl#getFlightInfo and FlightServiceGrpcImpl#getSchema calls with unauthenticated users where the implementation returns an ExportObject in that contains an error, the service does not end up ever calling onError.
There is a partial workaround by reverting part of #6215 where the TicketRouter explicitly catches RuntimeException and re-wraps as SessionState.wrapAsFailedExport, but this is not sufficient as the TicketResolver itself may choose to wrap an exception in an ExportObject instead of throwing it.
Noticed after #6215 in #6023 that there were certain cases where RPCs were hanging in tests. These happened to be
FlightServiceGrpcImpl#getFlightInfo
andFlightServiceGrpcImpl#getSchema
calls with unauthenticated users where the implementation returns an ExportObject in that contains an error, the service does not end up ever callingonError
.There is a partial workaround by reverting part of #6215 where the
TicketRouter
explicitly catchesRuntimeException
and re-wraps asSessionState.wrapAsFailedExport
, but this is not sufficient as theTicketResolver
itself may choose to wrap an exception in anExportObject
instead of throwing it.