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

Unit Tests failing on Alpine Linux due to non-portable mutex initializers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.11.0
    • 0.13.0
    • C++ - Library
    • None
    • Ubuntu Bionic (native)

      alpine:latest (docker)

    Description

      It seems that the lib/cpp/test suite is broken in the 0.11.0 tagged release because this fails in Ubuntu Bionic and inside of an Alpine Linux 3.8 Docker container.

      I would have thought all test suites would pass for tagged releases.

      In any case, I've narrowed the culprits down to the non-portable (NP) class of Mutex initializers.

      I'd rather not speculate at this point exactly why this problem is happening. Currently my patching just disables those tests undonditionally, but there should probably be a better solution used in the end. E.g. better .m4 testing for non-portable pthread features - if they are actually functional or just stubs.

      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.

       

      ```

      make[5]: Entering directory '/home/cfriedt/Desktop/thrift-20180627/lib/cpp/test'
      Running 54 test cases...
      An error message from getaddrinfo on the console is expected:
      Thrift: Wed Jun 27 20:16:03 2018 getaddrinfo -2: Name or service not known

          • No errors detected
            PASS: UnitTests
            Running 2 test cases...
            Thrift: Wed Jun 27 20:16:10 2018 ~TFDTransport TTransportException: 'TFDTransport::close(): Bad file descriptor'
          • No errors detected
            PASS: TFDTransportTest
            Running 1 test case...
          • No errors detected
            PASS: TPipedTransportTest
            Running 3 test cases...
          • No errors detected
            PASS: DebugProtoTest
            Running 11 test cases...
          • No errors detected
            PASS: JSONProtoTest
            Running 17 test cases...
          • No errors detected
            PASS: OptionalRequiredTest
            Running 4 test cases...
          • No errors detected
            PASS: RecursiveTest
            Running 1 test case...
          • No errors detected
            PASS: SpecializationTest
            Running 3 test cases...
            TBinaryProtocol => OK
            TLEBinaryProtocol => OK
            TCompactProtocol => OK
          • No errors detected
            PASS: AllProtocolsTest
            Running 285 test cases...
            Timeout alarm expired; attempting to unblock transport
            Timeout alarm expired; attempting to unblock transport
            Timeout alarm expired; attempting to unblock transport
            Timeout alarm expired; attempting to unblock transport
            Timeout alarm expired; attempting to unblock transport
            ^CMakefile:1436: recipe for target 'check-TESTS' failed
            make[5]: *** [check-TESTS] Interrupt
            Makefile:1559: recipe for target 'check-am' failed
            make[4]: *** [check-am] Interrupt
            Makefile:1562: recipe for target 'check' failed
            make[3]: *** [check] Interrupt
            Makefile:1658: recipe for target 'check-recursive' failed
            make[2]: *** [check-recursive] Interrupt
            Makefile:580: recipe for target 'check-recursive' failed
            make[1]: *** [check-recursive] Interrupt
            Makefile:663: recipe for target 'check-recursive' failed
            make: *** [check-recursive] Interrupt

      ```

      Attachments

        Issue Links

          Activity

            People

              jking3 James E. King III
              cfriedt Christopher Friedt
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: