[ 
https://issues.apache.org/jira/browse/ARROW-7583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17015984#comment-17015984
 ] 

David Li commented on ARROW-7583:
---------------------------------

Interesting. It seems an error from a path where gRPC gives a boolean success 
result (rather than a full error message) is masking the actual, intended error 
later on.

My guess is that this happens:
 # We start the DoPut, but this does not actually write any data.
 # We close the writer right away. {{RecordBatchPayloadWriter::Close}} calls 
{{CheckStarted}} first, which tries to write the schema.
 # If the test server responds quickly enough, the write fails. gRPC reports 
errors in this path as a boolean, so we report a generic error instead of the 
actual error message.

If the test server doesn't respond quickly enough, then the write appears to 
succeed (IIRC gRPC does some sort of buffering?) and then we actually close the 
stream, at which point we get the intended error message.

The solution might be to bypass RecordBatchPayloadWriter's close and go 
directly to our implementation.

> [C++][Flight] Auth handler tests fragile on Windows
> ---------------------------------------------------
>
>                 Key: ARROW-7583
>                 URL: https://issues.apache.org/jira/browse/ARROW-7583
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++, FlightRPC
>            Reporter: Antoine Pitrou
>            Priority: Minor
>
> This occurs often on AppVeyor:
> {code}
> [----------] 3 tests from TestAuthHandler
> [ RUN      ] TestAuthHandler.PassAuthenticatedCalls
> [       OK ] TestAuthHandler.PassAuthenticatedCalls (4 ms)
> [ RUN      ] TestAuthHandler.FailUnauthenticatedCalls
> ..\src\arrow\flight\flight_test.cc(1126): error: Value of: status.message()
> Expected: has substring "Invalid token"
>   Actual: "Could not write record batch to stream: "
> [  FAILED  ] TestAuthHandler.FailUnauthenticatedCalls (3 ms)
> [ RUN      ] TestAuthHandler.CheckPeerIdentity
> [       OK ] TestAuthHandler.CheckPeerIdentity (2 ms)
> [----------] 3 tests from TestAuthHandler (10 ms total)
> [----------] 3 tests from TestBasicAuthHandler
> [ RUN      ] TestBasicAuthHandler.PassAuthenticatedCalls
> [       OK ] TestBasicAuthHandler.PassAuthenticatedCalls (4 ms)
> [ RUN      ] TestBasicAuthHandler.FailUnauthenticatedCalls
> ..\src\arrow\flight\flight_test.cc(1224): error: Value of: status.message()
> Expected: has substring "Invalid token"
>   Actual: "Could not write record batch to stream: "
> [  FAILED  ] TestBasicAuthHandler.FailUnauthenticatedCalls (4 ms)
> [ RUN      ] TestBasicAuthHandler.CheckPeerIdentity
> [       OK ] TestBasicAuthHandler.CheckPeerIdentity (3 ms)
> [----------] 3 tests from TestBasicAuthHandler (11 ms total)
> {code}
> See e.g. 
> https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/30110376/job/vbtd22813g5hlgfl#L2252



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to