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

john.edmonds at bt.com john.edmonds at bt.com
Tue May 20 12:38:58 CEST 2008


Hello,
 
I have received no reply to this, and earlier e-mails, have you had a chance to review them?
 
Best regards,
John Edmonds

________________________________

From: Edmonds,J,John,JGFTX C
Sent: Mon 12/05/2008 13:47
To: agentpp at agentpp.org
Subject: Sub agent, AgentX, core dump - related to shared table row removal


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