Archived

This forum has been archived. Please start a new discussion on GitHub.

"make test" failure on Ice 3.0.1 installation. SUSE 10.1.

pchapin
pchapin Vermont, USA
Hello! I just downloaded the Ice 3.0.1 source distribution and attempted to build it on a freshly installed SUSE 10.1 system. I inspected Make.rules but I liked what I saw so without changing anything I executed "make." The build seemed to go fine; there were no problems reported.

However, "make test" fails immediately. Here is what I get:

---> cut <---
pchapin@dustdevil:/usr/local/src/Ice-3.0.1> make test

*** running tests in ./test/IceUtil/thread
starting client... ok
running mutex test... ../../../include/IceUtil/Mutex.h:318: IceUtil::ThreadSyscallException:
thread syscall exception: Resource deadlock avoided failed
test mutex failed
test in ./test/IceUtil/thread failed with exit status 256
---> cut <---

Line 318 in Mutex.h pertains to a call to pthread_mutex_trylock that returns an unexpected error code. I'm not sure what this error means to me; what should I be looking at to fix or workaround this? I considered just ignoring the error and trying to use the system anyway but even if that appeared to work, I'd be concerned about eventually running into bad mutex behavior.

I'm running Linux under VirtualPC on a WindowsXP host system in case that matters. I compiled Ice with gcc v4.1.0.

Thanks for any advice you might have!

Comments

  • bernard
    bernard Jupiter, FL
    Hi Peter,

    It's actually a (small) bug in Ice 3.0.1. This thread gives all the details.

    Best regards,
    Bernard
  • pchapin
    pchapin Vermont, USA
    Thanks, that was helpful, but it didn't completely solve the problem. I modified MutexTest.cpp as mentioned in the other thread and now the first test passes. However, there is a very similar failure a bit further on:

    ---> cut <---
    *** running tests in ./test/IceUtil/thread
    starting client... ok
    running mutex test... ok
    running countDownLatch test... ok
    running thread start test... ok
    running thread create test... ok
    running thread alive test... ok
    running recursive mutex test... ok
    running read/write recursive mutex test... ok
    running static mutex test... ok
    running monitor<mutex> test... ../../../include/IceUtil/Mutex.h:318: IceUtil::ThreadSyscallException:
    thread syscall exception: Resource deadlock avoided failed
    test monitor<mutex> failed
    test in ./test/IceUtil/thread failed with exit status 256
    ---> cut <---

    I noticed there was a similar place in StaticMutexTest.cpp (line 121) where code was being conditionally compiled based on __FreeBSD__. I added the check for __linux there as well, but it didn't help. The issue seems to be arising somewhere else too, but I'm not sure where to look (I tried a few random greps, but didn't find anything).
  • bernard
    bernard Jupiter, FL
    Hi Peter,

    It's actually a problem with the monitor<mutex> test, i.e. MonitorMutexTest.cpp.
    Please comment out line 111 and 112 in that file.

    Cheers,
    Bernard
  • pchapin
    pchapin Vermont, USA
    Yes, that was it. All the tests are passing now, and I got my sample Ice program compiled and running as well. I'm on my way.

    Thanks for your help!