[AGENT++] Sub agent, AgentX, core dump - related to shared table row removal

john.edmonds at bt.com john.edmonds at bt.com
Mon May 12 14:47:54 CEST 2008


I am still experiencing core dumps related to shared table row removal.  
I have implemented 
 
mib->lock_mib();
table->start_synch();
mib->unlock_mib();
table->remove_row(index);     (or table->allocate_index(index);)
table->end_synch();

to synchronise row removal.  The core dumps are less frequent with this code in place, but still prevent us from being able to deploy the AgentX code.  The stack backtrace for the core dump with the above synch code in place is as follows:
 
#7 thread_starter () at threads.cpp:486
#6 Agentpp::TaskManager::run () at threads.cpp:742
#5 Agentpp::MibTask::run () at threads.cpp:920
#4 Agentpp::SubAgentXMib::do_process_request () at agent_subagent.cpp:1030
#3 Agentpp::ThreadPool::execute () at threads.cpp:805
#2 Agentpp::Synchronised::wait () at threads.cpp:301
#1 pthread_cond_timedwait_relative () at queue.h:27
#0 __pthread_cond_signal () at condvar.c:267
 
 
I notice in the example, subagent.cpp, there is a suggestion that the call to remove_row() is coded such that mib->process_request() and ifTable->remove_row() can't be executing at the same time, as they would be on the same thread.  Do I need to modify my implementation to mimic this?
 


More information about the AGENTPP mailing list