Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Archery Integration Test with c# failing on main #6577

Open
alamb opened this issue Oct 16, 2024 · 7 comments · May be fixed by #6611
Open

Archery Integration Test with c# failing on main #6577

alamb opened this issue Oct 16, 2024 · 7 comments · May be fixed by #6611
Assignees
Labels

Comments

@alamb
Copy link
Contributor

alamb commented Oct 16, 2024

Describe the bug
archery integration test is failing on main : https://github.com/apache/arrow-rs/actions/runs/11363774836/job/31608436255

 ################# FAILURES #################
  FAILED TEST: primitive Rust producing,  C# consuming
  <class 'RuntimeError'>: Command failed: /__w/arrow-rs/arrow-rs/csharp/artifacts/Apache.Arrow.Flight.IntegrationTest/Debug/net8.0/Apache.Arrow.Flight.IntegrationTest client --port 44909 --path /tmp/arrow-integration-hk4dbqi4/generated_primitive.json
  With output:
  --------------
  Unhandled exception: Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="Error connecting to subchannel.", DebugException="System.ArgumentException: IPv4 address 0.0.0.0 and IPv6 address ::0 are unspecified addresses that cannot be used as a target address. (Parameter 'hostName')")
   ---> System.ArgumentException: IPv4 address 0.0.0.0 and IPv6 address ::0 are unspecified addresses that cannot be used as a target address. (Parameter 'hostName')
     at System.Net.Dns.GetHostEntryOrAddressesCoreAsync(String hostName, Boolean justReturnParsedIp, Boolean throwOnIIPAny, Boolean justAddresses, AddressFamily family, CancellationToken cancellationToken)
     at System.Net.Dns.GetHostAddressesAsync(String hostNameOrAddress, AddressFamily family, CancellationToken cancellationToken)
     at System.Net.Sockets.SocketAsyncEventArgs.DnsConnectAsync(DnsEndPoint endPoint, SocketType socketType, ProtocolType protocolType)
     at System.Net.Sockets.Socket.ConnectAsync(SocketAsyncEventArgs e, Boolean userSocket, Boolean saeaCancelable)
     at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ConnectAsync(Socket socket)
     at System.Net.Sockets.Socket.ConnectAsync(EndPoint remoteEP, CancellationToken cancellationToken)
     at Grpc.Net.Client.Balancer.Internal.SocketConnectivitySubchannelTransport.OnConnect(Socket socket, DnsEndPoint endpoint, CancellationToken cancellationToken)
     at Grpc.Net.Client.Balancer.Internal.SocketConnectivitySubchannelTransport.TryConnectAsync(ConnectContext context, Int32 attempt)
     --- End of inner exception stack trace ---
     at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
     at Apache.Arrow.Flight.Internal.RecordBatchReaderImplementation.ReadSchemaAsync(CancellationToken cancellationToken) in /__w/arrow-rs/arrow-rs/csharp/src/Apache.Arrow.Flight/Internal/RecordBatchReaderImplementation.cs:line 74
     at Apache.Arrow.Flight.Internal.RecordBatchReaderImplementation.ReadNextRecordBatchAsync(CancellationToken cancellationToken) in /__w/arrow-rs/arrow-rs/csharp/src/Apache.Arrow.Flight/Internal/RecordBatchReaderImplementation.cs:line 118
     at Apache.Arrow.Flight.FlightRecordBatchStreamReader.MoveNext(CancellationToken cancellationToken) in /__w/arrow-rs/arrow-rs/csharp/src/Apache.Arrow.Flight/FlightRecordBatchStreamReader.cs:line 64
     at Apache.Arrow.Flight.IntegrationTest.Scenarios.JsonTestScenario.ConsumeFlightLocation(FlightClient client, FlightTicket ticket, RecordBatch[] batches) in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/Scenarios/JsonTestScenario.cs:line 160
     at Apache.Arrow.Flight.IntegrationTest.Scenarios.JsonTestScenario.RunClient(Int32 serverPort) in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/Scenarios/JsonTestScenario.cs:line 109
     at Apache.Arrow.Flight.IntegrationTest.FlightClientCommand.Execute() in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/FlightClientCommand.cs:line 45
     at Apache.Arrow.Flight.IntegrationTest.Program.<>c.<<Main>b__0_0>d.MoveNext() in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/Program.cs:line 50

To Reproduce

Expected behavior
Should pass

Additional context
Not sure if this is related to #6568 or not

@itsjunetime
Copy link
Contributor

I think #6585 might fix this as well

@alamb
Copy link
Contributor Author

alamb commented Oct 20, 2024

I think #6585 might fix this as well

Thanks @itsjunetime -- unfortunately it seems like the tests are still failing even with #6585 (recent example) . I'll see what I can do

@alamb
Copy link
Contributor Author

alamb commented Oct 20, 2024

I poked around in the arrow repo. There are two PRs that went in around the same time this test started failing that could be related

apache/arrow#44377 specifically looks related as this test appears to be new. I will ask some questions there and make a PR to disable this test in arrow-rs while we investigate more

@alamb
Copy link
Contributor Author

alamb commented Oct 20, 2024

Here is another more specific message from the logs https://github.com/apache/arrow-rs/actions/runs/11409436304/job/31749661931

 ======================================================================
  Testing file null
  Traceback (most recent call last):
    File "/__w/arrow-rs/arrow-rs/dev/archery/archery/integration/util.py", line 136, in run_cmd
      output = subprocess.check_output(cmd, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/conda/envs/arrow/lib/python3.11/subprocess.py", line 466, in check_output
      return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/conda/envs/arrow/lib/python3.11/subprocess.py", line 571, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['/__w/arrow-rs/arrow-rs/csharp/artifacts/Apache.Arrow.Flight.IntegrationTest/Debug/net8.0/Apache.Arrow.Flight.IntegrationTest', 'client', '--port', '46599', '--path', '/tmp/arrow-integration-2gthhuy4/generated_null.json']' returned non-zero exit status 1.
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "/__w/arrow-rs/arrow-rs/dev/archery/archery/integration/runner.py", line 435, in _run_flight_test_case
      consumer.flight_request(port, **client_args)
    File "/__w/arrow-rs/arrow-rs/dev/archery/archery/integration/tester_csharp.py", line 218, in flight_request
      run_cmd(cmd)
    File "/__w/arrow-rs/arrow-rs/dev/archery/archery/integration/util.py", line 145, in run_cmd
      raise RuntimeError(sio.getvalue())
  RuntimeError: Command failed: /__w/arrow-rs/arrow-rs/csharp/artifacts/Apache.Arrow.Flight.IntegrationTest/Debug/net8.0/Apache.Arrow.Flight.IntegrationTest client --port 46599 --path /tmp/arrow-integration-2gthhuy4/generated_null.json
  With output:
  --------------
  Unhandled exception: Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="Error connecting to subchannel.", DebugException="System.ArgumentException: IPv4 address 0.0.0.0 and IPv6 address ::0 are unspecified addresses that cannot be used as a target address. (Parameter 'hostName')")
   ---> System.ArgumentException: IPv4 address 0.0.0.0 and IPv6 address ::0 are unspecified addresses that cannot be used as a target address. (Parameter 'hostName')
     at System.Net.Dns.GetHostEntryOrAddressesCoreAsync(String hostName, Boolean justReturnParsedIp, Boolean throwOnIIPAny, Boolean justAddresses, AddressFamily family, CancellationToken cancellationToken)
     at System.Net.Dns.GetHostAddressesAsync(String hostNameOrAddress, AddressFamily family, CancellationToken cancellationToken)
     at System.Net.Sockets.SocketAsyncEventArgs.DnsConnectAsync(DnsEndPoint endPoint, SocketType socketType, ProtocolType protocolType)
     at System.Net.Sockets.Socket.ConnectAsync(SocketAsyncEventArgs e, Boolean userSocket, Boolean saeaCancelable)
     at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ConnectAsync(Socket socket)
     at System.Net.Sockets.Socket.ConnectAsync(EndPoint remoteEP, CancellationToken cancellationToken)
     at Grpc.Net.Client.Balancer.Internal.SocketConnectivitySubchannelTransport.OnConnect(Socket socket, DnsEndPoint endpoint, CancellationToken cancellationToken)
     at Grpc.Net.Client.Balancer.Internal.SocketConnectivitySubchannelTransport.TryConnectAsync(ConnectContext context, Int32 attempt)
     --- End of inner exception stack trace ---
     at Apache.Arrow.Flight.Internal.RecordBatchReaderImplementation.ReadSchemaAsync(CancellationToken cancellationToken) in /__w/arrow-rs/arrow-rs/csharp/src/Apache.Arrow.Flight/Internal/RecordBatchReaderImplementation.cs:line 74
     at Apache.Arrow.Flight.Internal.RecordBatchReaderImplementation.ReadNextRecordBatchAsync(CancellationToken cancellationToken) in /__w/arrow-rs/arrow-rs/csharp/src/Apache.Arrow.Flight/Internal/RecordBatchReaderImplementation.cs:line 118
     at Apache.Arrow.Flight.FlightRecordBatchStreamReader.MoveNext(CancellationToken cancellationToken) in /__w/arrow-rs/arrow-rs/csharp/src/Apache.Arrow.Flight/FlightRecordBatchStreamReader.cs:line 64
     at Apache.Arrow.Flight.IntegrationTest.Scenarios.JsonTestScenario.ConsumeFlightLocation(FlightClient client, FlightTicket ticket, RecordBatch[] batches) in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/Scenarios/JsonTestScenario.cs:line 160
     at Apache.Arrow.Flight.IntegrationTest.Scenarios.JsonTestScenario.RunClient(Int32 serverPort) in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/Scenarios/JsonTestScenario.cs:line 109
     at Apache.Arrow.Flight.IntegrationTest.FlightClientCommand.Execute() in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/FlightClientCommand.cs:line 45
     at Apache.Arrow.Flight.IntegrationTest.Program.<>c.<<Main>b__0_0>d.MoveNext() in /__w/arrow-rs/arrow-rs/csharp/test/Apache.Arrow.Flight.IntegrationTest/Program.cs:line 50
  --- End of stack trace from previous location ---
     at System.CommandLine.Invocation.AnonymousCommandHandler.InvokeAsync(InvocationContext context)
     at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
  --- End of stack trace from previous location ---
     at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
  
  --------------

@alamb
Copy link
Contributor Author

alamb commented Oct 20, 2024

Here is the job definition:

jobs:
integration:
name: Archery test With other arrows
runs-on: ubuntu-latest
container:
image: apache/arrow-dev:amd64-conda-integration
env:
ARROW_USE_CCACHE: OFF
ARROW_CPP_EXE_PATH: /build/cpp/debug
ARROW_NANOARROW_PATH: /build/nanoarrow
ARROW_RUST_EXE_PATH: /build/rust/debug
BUILD_DOCS_CPP: OFF
ARROW_INTEGRATION_CPP: ON
ARROW_INTEGRATION_CSHARP: ON
ARROW_INTEGRATION_GO: ON
ARROW_INTEGRATION_JAVA: ON
ARROW_INTEGRATION_JS: ON
ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS: "rust"
# Disable nanoarrow integration, due to https://github.com/apache/arrow-rs/issues/5052
ARCHERY_INTEGRATION_WITH_NANOARROW: "0"
# https://github.com/apache/arrow/pull/38403/files#r1371281630
ARCHERY_INTEGRATION_WITH_RUST: "1"
# These are necessary because the github runner overrides $HOME
# https://github.com/actions/runner/issues/863
RUSTUP_HOME: /root/.rustup
CARGO_HOME: /root/.cargo
defaults:
run:
shell: bash
steps:
# This is necessary so that actions/checkout can find git
- name: Export conda path
run: echo "/opt/conda/envs/arrow/bin" >> $GITHUB_PATH
# This is necessary so that Rust can find cargo
- name: Export cargo path
run: echo "/root/.cargo/bin" >> $GITHUB_PATH
- name: Check rustup
run: which rustup
- name: Check cmake
run: which cmake
- name: Checkout Arrow
uses: actions/checkout@v4
with:
repository: apache/arrow
submodules: true
fetch-depth: 0
- name: Checkout Arrow Rust
uses: actions/checkout@v4
with:
path: rust
fetch-depth: 0
- name: Checkout Arrow nanoarrow
uses: actions/checkout@v4
with:
repository: apache/arrow-nanoarrow
path: nanoarrow
fetch-depth: 0
# Workaround https://github.com/rust-lang/rust/issues/125067
- name: Downgrade rust
working-directory: rust
run: rustup override set 1.77
- name: Build
run: conda run --no-capture-output ci/scripts/integration_arrow_build.sh $PWD /build
- name: Run
run: conda run --no-capture-output ci/scripts/integration_arrow.sh $PWD /build

@alamb
Copy link
Contributor Author

alamb commented Oct 20, 2024

Posted upstream on apache/arrow#44377 (comment) to see if we can get any hints on how to fix this

@alamb alamb linked a pull request Oct 21, 2024 that will close this issue
@alamb alamb self-assigned this Oct 21, 2024
@alamb
Copy link
Contributor Author

alamb commented Oct 21, 2024

Here is a fix: #6611 but it is not clear if it is the right one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants