Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-4594

Unable to Build Test Suite in Alpine Linux

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Duplicate
    • Affects Version/s: 0.11.0
    • Fix Version/s: None
    • Component/s: Test Suite
    • Labels:
      None
    • Environment:

      Ubuntu Bionic (native)

      alpine:latest (docker)

      Description

      It seems that the 0.11.0 lib/cpp/test suite is not building correctly when run inside of Alpine Linux 3.8 in a Docker container.

      I've narrowed the culprits down to the non-portable (NP) class of Mutex initializers. The failure occurs in unpatched code (and obviously in my CI build recipe, attached).

      Currently, I'm working on automating builds of thrift for Alpine Linux 3.8, and they will likely require "make check" to pass successfully in future versions. Might as well ensure it works now.

      If you want to duplicate my build easily in Docker, you can use the attachment (e.g. tar xpvzf thrift-ci-build-20180627.tar.xz; cd thrift-20180627; docker build -t foo .)

      make check
      ...
      /bin/bash ../../../libtool  --tag=CXX   --mode=link x86_64-alpine-linux-musl-g++ -Wall -Wextra -pedantic -Os -fomit-frame-pointer -L/usr/lib -Wl,--no-undefined -o TPipedTransportTest TPipedTransportTest.o TPipeInterruptTest.o libtestgencpp.la ../../../lib/cpp/libthrift.la /usr/lib/libboost_unit_test_framework.a /usr/lib/libboost_system.a /usr/lib/libboost_thread-mt.a -lrt -lpthread 
      concurrency/MutexTest.o: In function `MutexTest::happy_path::test_method()':
      MutexTest.cpp:(.text+0x18): undefined reference to `apache::thrift::concurrency::Mutex::ERRORCHECK_INITIALIZER(void*)'
      concurrency/MutexTest.o: In function `MutexTest::recursive_happy_path::test_method()':
      MutexTest.cpp:(.text+0x580): undefined reference to `apache::thrift::concurrency::Mutex::RECURSIVE_INITIALIZER(void*)'
      concurrency/MutexTest.o: In function `MutexTest::trylock::test_method()':
      MutexTest.cpp:(.text+0x1573): undefined reference to `apache::thrift::concurrency::Mutex::ADAPTIVE_INITIALIZER(void*)'
      concurrency/MutexTest.o: In function `LFAT::LFAT()':
      MutexTest.cpp:(.text._ZN4LFATC2Ev[_ZN4LFATC5Ev]+0x17): undefined reference to `apache::thrift::concurrency::Mutex::ERRORCHECK_INITIALIZER(void*)'
      collect2: error: ld returned 1 exit status
      make[5]: *** [Makefile:1190: UnitTests] Error 1
      make[5]: *** Waiting for unfinished jobs....
      libtool: link: x86_64-alpine-linux-musl-g++ -Wall -Wextra -pedantic -Os -fomit-frame-pointer -Wl,--no-undefined -o .libs/TFDTransportTest TFDTransportTest.o  -L/usr/lib ../../../lib/cpp/.libs/libthrift.so -lssl -lcrypto /usr/lib/libboost_unit_test_framework.a -lrt -lpthread
      libtool: link: x86_64-alpine-linux-musl-g++ -Wall -Wextra -pedantic -Os -fomit-frame-pointer -Wl,--no-undefined -o .libs/TPipedTransportTest TPipedTransportTest.o TPipeInterruptTest.o  -L/usr/lib ./.libs/libtestgencpp.a /home/alpine/thrift/src/thrift-0.11.0/lib/cpp/.libs/libthrift.so ../../../lib/cpp/.libs/libthrift.so -lssl -lcrypto /usr/lib/libboost_unit_test_framework.a /usr/lib/libboost_system.a /usr/lib/libboost_thread-mt.a -lrt -lpthread
      make[5]: Leaving directory '/home/alpine/thrift/src/thrift-0.11.0/lib/cpp/test'
      make[4]: *** [Makefile:1507: check-am] Error 2
      make[4]: Leaving directory '/home/alpine/thrift/src/thrift-0.11.0/lib/cpp/test'
      make[3]: *** [Makefile:1510: check] Error 2
      make[3]: Leaving directory '/home/alpine/thrift/src/thrift-0.11.0/lib/cpp/test'
      make[2]: *** [Makefile:1661: check-recursive] Error 1
      make[2]: Leaving directory '/home/alpine/thrift/src/thrift-0.11.0/lib/cpp'
      make[1]: Leaving directory '/home/alpine/thrift/src/thrift-0.11.0/lib'
      make[1]: *** [Makefile:576: check-recursive] Error 1
      make: *** [Makefile:659: check-recursive] Error 1
      >>> ERROR: thrift*: check failed
      >>> ERROR: thrift: all failed
      >>> thrift: Uninstalling dependencies..

        Attachments

        1. make-check-alpine-3.8.txt
          4 kB
          Christopher Friedt
        2. make-check-macos-10.13.5.text
          7 kB
          Christopher Friedt
        3. thrift-alpine-20180709.tar.gz
          8 kB
          Christopher Friedt

          Issue Links

            Activity

              People

              • Assignee:
                jking3 James E. King III
                Reporter:
                cfriedt Christopher Friedt
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: