The CcdFileTest can fail on same environment but different machine based on we have two different CLazyIO classes linked into same executable.
The stack trace of a passed test is:
__GI___pthread_mutex_lock() at pthread_mutex_lock.c:63 0x7ffff6678407
CriticalSection::enter() at jmutex.hpp:300 0x42ed4d
CriticalBlock::CriticalBlock() at jmutex.hpp:341 0x42ee5c
CLazyFileIO::read() at ccdfile.cpp:311 0x7fffe2b654b5
CcdFileTest::testCopy() at ccdfile.cpp:2,699 0x7fffe2b71daf
CppUnit::TestCaller<CcdFileTest>::runTest() at TestCaller.h:166 0x7fffe2b75d92
But the stack in a failed test is different, the Thor CLazyFileIO::read() called instead of same method in Roxie:
__lll_lock_wait() at lowlevellock.S:135 0x7ffff6805f1c
_L_lock_909() at 0x7ffff6801649
__GI___pthread_mutex_lock() at pthread_mutex_lock.c:79 0x7ffff6801470
enter() at jmutex.hpp:300 0x7fffec0d67e0
CriticalBlock() at jmutex.hpp:341 0x7fffec0d67e0
CLazyFileIO::read() at thgraphslave.cpp:1,787 0x7fffec0d67e0
CRoxieFileCache::openFile() at ccdfile.cpp:720 0x7fffe38dc0fa
CcdFileTest::testCopy() at ccdfile.cpp:2,694 0x7fffe38e470b
CppUnit::TestCaseMethodFunctor::operator()() const at 0x7ffff7181262
I excluded this test case from Smoketest environment until it will be fixed.
I think rename them to CThorLazyFileIO and/or CRoxieLazyFileIO would be a good solution.
Jake Smith Richard Chapman what is your opinion?