Hello! I tried to update the MyServer package for NixOS and stumbled upon these issues.
First, ‘tests_suite’ (which should really be called ‘test_suite’) was not explicitly linked against libgcrypt so something along these lines was needed:
tests_suite_LDADD = ../src/libmyserver.a ../lib/libgnu.a $(CPPUNIT_LDFLAGS) \ $(PTHREAD_LIB) $(IDN_LIB) $(XNET_LIB) $(EVENT_LIB) $(DL_LIB) $(SSL_LIB) \ - $(ZLIB_LIB) $(XML_LIBS) $(LDFLAGS) + $(ZLIB_LIB) $(XML_LIBS) -lgcrypt $(LDFLAGS)
Second, the test suite makes progress for some time and eventually hangs, burning 100% CPU. Attaching GDB at this point show this (apparently this is all being compiled without debugging symbols): --8<---------------cut here---------------start------------->8--- (gdb) info threads 2 Thread 0x2b4d7099e950 (LWP 31254) 0x00002b4d6d19dc70 in __pthread_mutex_unlock_usercnt () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0 * 1 Thread 0x2b4d6f592bf0 (LWP 31235) 0x00002b4d6d1a1b9b in accept () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0 (gdb) bt #0 0x00002b4d6d1a1b9b in accept () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0 #1 0x00000000005212cd in Socket::accept(sockaddr_storage*, unsigned int*) () #2 0x00000000004e3591 in TestSocket::testRecv() () #3 0x00000000004e0a28 in CppUnit::TestCaller<TestSocket>::runTest() () #4 0x00002b4d6cf73d4a in CppUnit::TestCaseMethodFunctor::operator()() const () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #5 0x00002b4d6cf664f4 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #6 0x00002b4d6cf7006f in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #7 0x00002b4d6cf7bd72 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #8 0x00002b4d6cf73ac3 in CppUnit::TestCase::run(CppUnit::TestResult*) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #9 0x00002b4d6cf74273 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #10 0x00002b4d6cf74196 in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #11 0x00002b4d6cf74273 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #12 0x00002b4d6cf74196 in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #13 0x00002b4d6cf7b5ba in CppUnit::TestResult::runTest(CppUnit::Test*) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #14 0x00002b4d6cf7db62 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #15 0x00002b4d6cf807bb in CppUnit::TextTestRunner::run(std::string, bool, bool, bool) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #16 0x0000000000425367 in main () (gdb) thread 2 [Switching to thread 2 (Thread 0x2b4d7099e950 (LWP 31254))]#0 0x00002b4d6d19dc70 in __pthread_mutex_unlock_usercnt () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0 (gdb) bt #0 0x00002b4d6d19dc70 in __pthread_mutex_unlock_usercnt () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0 #1 0x00002b4d6ec89599 in dl_iterate_phdr () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6 #2 0x00002b4d6e980a89 in _Unwind_Find_FDE () from /nix/store/5m02zhx43wykfm52krz79mgzmbpdg3w8-gcc-4.3.3/lib64/libgcc_s.so.1 #3 0x00002b4d6e97deb3 in uw_frame_state_for () from /nix/store/5m02zhx43wykfm52krz79mgzmbpdg3w8-gcc-4.3.3/lib64/libgcc_s.so.1 #4 0x00002b4d6e97eea6 in _Unwind_RaiseException () from /nix/store/5m02zhx43wykfm52krz79mgzmbpdg3w8-gcc-4.3.3/lib64/libgcc_s.so.1 #5 0x00002b4d6e4a426d in __cxa_throw () from /nix/store/5m02zhx43wykfm52krz79mgzmbpdg3w8-gcc-4.3.3/lib64/libstdc++.so.6 #6 0x00002b4d6cf63c9a in CppUnit::Asserter::fail(CppUnit::Message const&, CppUnit::SourceLine const&) () from /nix/store/ig3g3b2k8l0354z3lblqqap6rsv5xf86-cppunit-1.12.0/lib/libcppunit-1.12.so.0 #7 0x00000000004df86a in testRecvClient(void*) () #8 0x00002b4d6d19af97 in start_thread () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libpthread.so.0 #9 0x00002b4d6ec5456d in clone () from /nix/store/s88vdfglm94x7jn0vqm24pqhq460s0c7-glibc-2.9/lib/libc.so.6 --8<---------------cut here---------------end--------------->8--- Any idea? Thanks, Ludo’.
