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

David Li commented on ARROW-7551:
---------------------------------

Ok - the issue is that we're both statically and dynamically linking gRPC. 
Interestingly this doesn't happen for me locally.

I configured GitHub to upload the artifacts, then pulled them down and examined 
them with otool and nm. 
https://github.com/lidavidm/arrow/commit/cd63e3046e65564b3021bc0c8275ba51257a7c75/checks?check_suite_id=405062849

Look at libarrow_flight.dylib:

{noformat}
> otool -L libarrow_flight.dylib
libarrow_flight.dylib:
        @rpath/libarrow_flight.100.dylib (compatibility version 100.0.0, 
current version 100.0.0)
        @rpath/libarrow.100.dylib (compatibility version 100.0.0, current 
version 100.0.0)
        /usr/local/opt/protobuf/lib/libprotobuf.22.dylib (compatibility version 
23.0.0, current version 23.2.0)
        /usr/local/opt/grpc/lib/libgrpc++.dylib (compatibility version 0.0.0, 
current version 0.0.0)
        /usr/local/opt/grpc/lib/libgrpc.dylib (compatibility version 0.0.0, 
current version 0.0.0)
        /usr/local/opt/grpc/lib/libgpr.dylib (compatibility version 0.0.0, 
current version 0.0.0)
        /usr/local/opt/grpc/lib/libaddress_sorting.dylib (compatibility version 
0.0.0, current version 0.0.0)
        /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib (compatibility version 
1.1.0, current version 1.1.0)
        /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib (compatibility 
version 1.1.0, current version 1.1.0)
        /usr/local/opt/glog/lib/libglog.0.dylib (compatibility version 0.0.0, 
current version 0.4.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 
800.7.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 1281.0.0)
> nm libarrow_flight.dylib | rg grpc | head
00000000000729e0 T __ZN4grpc10ByteBuffer10set_bufferEP16grpc_byte_buffer
000000000001a740 T __ZN4grpc10ByteBuffer12c_buffer_ptrEv
000000000001a240 t __ZN4grpc10ByteBuffer17ByteBufferPointerC1EPKS0_
{noformat}

We've run into this internally. IMO, we should only ever link gRPC dynamically. 
However, the official Python grpcio package needs to do the same, or else 
you'll get issues running both side by side (yet another problem we faced).

> [C++][Flight] Flight test on macOS periodically fails on master
> ---------------------------------------------------------------
>
>                 Key: ARROW-7551
>                 URL: https://issues.apache.org/jira/browse/ARROW-7551
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++, FlightRPC
>            Reporter: Neal Richardson
>            Assignee: David Li
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 0.16.0
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> See [https://github.com/apache/arrow/runs/380443548#step:5:179] for example. 
> {code}
> 64/96 Test #64: arrow-flight-test .........................***Failed    0.46 
> sec
> Running arrow-flight-test, redirecting output into 
> /Users/runner/runners/2.163.1/work/arrow/arrow/build/cpp/build/test-logs/arrow-flight-test.txt
>  (attempt 1/1)
> Running main() from 
> /Users/runner/runners/2.163.1/work/arrow/arrow/build/cpp/googletest_ep-prefix/src/googletest_ep/googletest/src/gtest_main.cc
> [==========] Running 42 tests from 11 test cases.
> [----------] Global test environment set-up.
> [----------] 2 tests from TestFlightDescriptor
> [ RUN      ] TestFlightDescriptor.Basics
> [       OK ] TestFlightDescriptor.Basics (0 ms)
> [ RUN      ] TestFlightDescriptor.ToFromProto
> [       OK ] TestFlightDescriptor.ToFromProto (0 ms)
> [----------] 2 tests from TestFlightDescriptor (0 ms total)
> [----------] 6 tests from TestFlight
> [ RUN      ] TestFlight.UnknownLocationScheme
> [       OK ] TestFlight.UnknownLocationScheme (0 ms)
> [ RUN      ] TestFlight.ConnectUri
> Server running with pid 15977
> /Users/runner/runners/2.163.1/work/arrow/arrow/cpp/build-support/run-test.sh: 
> line 97: 15971 Segmentation fault: 11  $TEST_EXECUTABLE "$@" 2>&1
>      15972 Done                    | $ROOT/build-support/asan_symbolize.py
>      15973 Done                    | ${CXXFILT:-c++filt}
>      15974 Done                    | 
> $ROOT/build-support/stacktrace_addr2line.pl $TEST_EXECUTABLE
>      15975 Done                    | $pipe_cmd 2>&1
>      15976 Done                    | tee $LOGFILE
> ~/runners/2.163.1/work/arrow/arrow/build/cpp/src/arrow/flight
> {code}
> It's not failing every time but I'm seeing it fail frequently.



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

Reply via email to