|
From: Farah, A. <ami...@gs...> - 2004-10-20 20:51:11
|
Hello, I have a multi-threaded application that processes requests and responces between 2 servers. It is stateless and runs forever, waiting for messages to process. However, when run under Valgrind the application simply exits upon trying to create the first thread. It does give several messages about uninitialized variables (pasted below). It uses the RogueWave threading library (RW sourcepro-ed4) and runs on a multi-processor machine. Kernel: 2.4.18 Compiler: gcc-2.95.3 Has anyone noticed threading issues with RogueWave, which is a wrapper around pthread as far as I can tell. On a side note, what do messages like @@ unlikely looking definition in unparsed remains ";" supposed to mean? Thanks, amir Error details: @@ unlikely looking definition in unparsed remains ";" @@ unlikely looking definition in unparsed remains ";" @@ unlikely looking definition in unparsed remains ";" @@ unlikely looking definition in unparsed remains ";" start configuration /* Message from application */ GSLog not created, log output will go to stderr /* Message from application */ [041020 15:54:06.515] Config-I-LogDir set to:../logs [041020 15:54:06.620] Config-I-LogName set to:oma2exch /* Mesg from app */ [041020 15:54:06.633] Config-I-ConfigDir set to:../config /* mesg from app [041020 15:54:06.651] Config-I-GsLogConfigFileName set to:gslogconfig /* mesg from app */ finished configuration /* mesg from app */ AppControl instance created /* mesg from app */ ==30479== Conditional jump or move depends on uninitialised value(s) ==30479== at 0x1BC87F39: EqQueue<StateQEntry>::dequeue_already_locked(StateQEntry &, unsigned long &, bool &) (/opt/libsrc/libsrc-1.16/build-E/libsrc/eqcpputil/include/EqQueue.C:222) ==30479== by 0x1BCE860B: EqQueue<StateQEntry>::dequeue(StateQEntry &, unsigned long &, bool &) (/opt/libsrc/libsrc-1.16/build-E/libsrc/eqcpputil/include/EqQueue.C:172) ==30479== by 0x1BC4C8D8: StateManager::recover(void) (StateManager.C:274) ==30479== by 0x1BC4BE7F: StateManager::StateManager(RWClassicCString, int) (StateManager.C:248) ==30479== by 0x1BCA2052: O2XStateManager::O2XStateManager(void) (../include/StateManager.H:199) ==30479== by 0x1BCA1C41: O2XStateManager::instanceOf(void) (../include/StateManager.H:193) ==30479== by 0x1BC3FD97: ExchPersistQueue::ExchPersistQueue(RWClassicCString, RWClassicCString, RWClassicCString) (ExchPersistQueue.C:188) ==30479== by 0x1BBE07CB: QueStringIn::QueStringIn(RWClassicCString, RWClassicCString, RWClassicCString) (QueStringIn.C:21) ==30479== by 0x1BBE0C48: QueStringIn::instance(void) (QueStringIn.C:40) ==30479== by 0x1BC10E58: OmaDriver::start(void) (OmaDriver.C:91) ==30479== by 0x1BC1A5B7: AppControl::start(void) (AppControl.C:106) ==30479== by 0x80E9198: main (main.C:137) ==30479== warning: Valgrind's pthread_attr_destroy does nothing ==30479== your program may misbehave as a result starting connectThread for OmaDriver..... ==30479== warning: Valgrind's pthread_attr_getinheritsched is incomplete ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_attr_destroy does nothing ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_attr_setinheritsched does nothing ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_attr_getinheritsched is incomplete ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_attr_destroy does nothing ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_attr_getinheritsched is incomplete ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_attr_setinheritsched does nothing ==30479== your program may misbehave as a result ==30479== ==30479== Conditional jump or move depends on uninitialised value(s) ==30479== at 0x1CB71B86: RWThreadAttributeImp::_getDefaultSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB7AF10: RWThreadAttributeImp::_getSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB78210: RWThreadAttributeImp::getSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB6D024: RWThreadAttribute::getSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB91BCF: RWThreadImp::_createThread(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB9154B: RWThreadImp::_dispatchExec(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB5E900: RWRunnableImp::start(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB52D0C: RWRunnable::start(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1BC110A3: OmaDriver::startConnectThread(void) (OmaDriver.C:115) ==30479== by 0x1BC10E88: OmaDriver::start(void) (OmaDriver.C:97) ==30479== by 0x1BC1A5B7: AppControl::start(void) (AppControl.C:106) ==30479== by 0x80E9198: main (main.C:137) ==30479== ==30479== Conditional jump or move depends on uninitialised value(s) ==30479== at 0x1CB71B96: RWThreadAttributeImp::_getDefaultSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB7AF10: RWThreadAttributeImp::_getSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB78210: RWThreadAttributeImp::getSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB6D024: RWThreadAttribute::getSchedulingPolicy(void) const (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB91BCF: RWThreadImp::_createThread(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB9154B: RWThreadImp::_dispatchExec(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB5E900: RWRunnableImp::start(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1CB52D0C: RWRunnable::start(void) (in /opt/rogue/sourcepro-ed4/rw_buildspace/lib/libthread2312d.so) ==30479== by 0x1BC110A3: OmaDriver::startConnectThread(void) (OmaDriver.C:115) ==30479== by 0x1BC10E88: OmaDriver::start(void) (OmaDriver.C:97) ==30479== by 0x1BC1A5B7: AppControl::start(void) (AppControl.C:106) ==30479== by 0x80E9198: main (main.C:137) ==30479== warning: Valgrind's pthread_cond_destroy is incomplete ==30479== (it doesn't check if the cond is waited on) ==30479== your program may misbehave as a result ==30479== warning: Valgrind's pthread_cond_destroy is incomplete ==30479== (it doesn't check if the cond is waited on) ==30479== your program may misbehave as a result ==30479== ==30479== ERROR SUMMARY: 7 errors from 4 contexts (suppressed: 80 from 3) ==30479== malloc/free: in use at exit: 1167751 bytes in 7716 blocks. ==30479== malloc/free: 14416 allocs, 6700 frees, 2160617 bytes allocated. ==30479== For a detailed leak analysis, rerun with: --leak-check=yes ==30479== For counts of detected errors, rerun with: -v |