summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-04-15 16:07:57 +0000
committerwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-04-15 16:07:57 +0000
commit0e9e1bf70d09009e40c3da748e798ac1a7cf8eac (patch)
tree2152a0ecc355d04a78288f9dabaa475be43e894d
parente743a80a1f39c3bec039e8a4fce759fc9c332cfe (diff)
downloadATCD-0e9e1bf70d09009e40c3da748e798ac1a7cf8eac.tar.gz
ChangeLogTag: Wed Apr 15 15:58:24 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
-rw-r--r--CIAO/ChangeLog34
-rw-r--r--CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp52
-rw-r--r--CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h10
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl1
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp19
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h7
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp13
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h12
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp28
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h2
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp3
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl2
-rw-r--r--CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp69
13 files changed, 184 insertions, 68 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 17313f32563..9c9d1d882d8 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,37 @@
+Wed Apr 15 15:58:24 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/FTComponents/FTClient.idl
+ * DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp
+ * DAnCE/tests/CIAO/FTComponents/FTClient_exec.h:
+
+ Added attribute logstart to delay logging for a number of
+ invocations.
+
+ * DAnCE/tests/CIAO/FTComponents/Worker.idl
+ * DAnCE/tests/CIAO/FTComponents/FTTask_exec.h
+ * DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp:
+
+ Changed run_task return value, server shutdown behavior and
+ naming convention for ior file.
+
+ * DAnCE/tests/CIAO/FTComponents/client_trigger.cpp:
+
+ Added support for triggering several clients in one invocation.
+
+ * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h
+ * DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp:
+
+ Changed logging output.
+
+ * DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp:
+
+ Changed shutdown behavior.
+
+ * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h
+ * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp:
+
+ Changed logging behavior.
+
Tue Mar 17 17:45:13 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
* DAnCE/tests/CIAO/FTComponents/Worker.idl
diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp
index 1d314b5523f..90a53fe4f9d 100644
--- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp
+++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.cpp
@@ -11,6 +11,7 @@
//=============================================================================
#include "ace/High_Res_Timer.h"
+#include "ace/Date_Time.h"
#include "FaultCorrelationManager_Impl.h"
#include "ciao/FTComponentServer/CIAO_PropertiesC.h"
#include "DAnCE/Logger/Log_Macros.h"
@@ -78,16 +79,33 @@ namespace DAnCE
// add all logged proc_failure info to the log file
std::ofstream out;
out.open ("fou-shutdown.txt", ios_base::app);
+ ACE_Date_Time start, end;
- for (SHUTDOWN_TIME_LIST::iterator it = history_.begin ();
- it != history_.end ();
- ++it)
- {
- out << it->second << " " << it->first << std::endl;
- }
+ {
+ ACE_Guard <ACE_Thread_Mutex> guard (history_lock_);
+
+ for (SHUTDOWN_TIME_LIST::iterator it = history_.begin ();
+ it != history_.end ();
+ ++it)
+ {
+ start.update (it->start_shutdown);
+ end.update (it->end_shutdown);
+ out << it->fou_id << " "
+ << start.hour () << ":"
+ << start.minute () << ":"
+ << start.second () << ":"
+ << start.microsec () << " "
+ << end.hour () << ":"
+ << end.minute () << ":"
+ << end.second () << ":"
+ << end.microsec () << " "
+ << it->shutdown << std::endl;
+ }
+ history_.clear ();
+ }
+
out.close ();
- history_.clear ();
}
return 0;
@@ -115,10 +133,12 @@ namespace DAnCE
return;
}
- Deployment::Applications_var apps = dam->getApplications();
+ ACE_Time_Value start (ACE_OS::gettimeofday ());
timer_.start ();
+ Deployment::Applications_var apps = dam->getApplications();
+
for (size_t i = 0; i < apps->length(); ++i)
{
try
@@ -152,7 +172,12 @@ namespace DAnCE
ACE_Time_Value tv;
timer_.elapsed_time (tv);
- history_.push_back (TFouShutdownTime (tv.msec (), fou_id));
+ TFouShutdownTime sample = {tv.msec (), start, ACE_OS::gettimeofday (), fou_id};
+
+ {
+ ACE_Guard <ACE_Thread_Mutex> guard (history_lock_);
+ history_.push_back (sample);
+ }
}
catch (const CORBA::Exception & ex)
{
@@ -170,6 +195,8 @@ namespace DAnCE
{
DANCE_DEBUG ((LM_TRACE, "FCM: app_failure ()\n"));
+ ACE_Time_Value tv = ACE_OS::gettimeofday ();
+
{
ACE_Guard <ACE_Thread_Mutex> guard (app_failure_lock_);
@@ -182,6 +209,13 @@ namespace DAnCE
}
new_notification_.signal ();
+
+ TFouShutdownTime sample = {0, tv, ACE_Time_Value (), host};
+
+ {
+ ACE_Guard <ACE_Thread_Mutex> guard (history_lock_);
+ history_.push_back (sample);
+ }
}
void
diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h
index ce599ca05f4..4ebea005ec1 100644
--- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h
+++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Impl.h
@@ -150,10 +150,18 @@ namespace DAnCE
ACE_High_Res_Timer timer_;
- typedef std::pair <unsigned long, std::string> TFouShutdownTime;
+ struct TFouShutdownTime {
+ unsigned long shutdown;
+ ACE_Time_Value start_shutdown;
+ ACE_Time_Value end_shutdown;
+ std::string fou_id;
+ };
+
typedef std::list <TFouShutdownTime> SHUTDOWN_TIME_LIST;
SHUTDOWN_TIME_LIST history_;
+
+ ACE_Thread_Mutex history_lock_;
};
}
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl
index 92c08593835..9d34148944b 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient.idl
@@ -12,6 +12,7 @@ module DeCoRAM
attribute double period;
attribute double execution_time;
attribute unsigned long iterations;
+ attribute unsigned long logstart;
attribute string server_ior;
attribute string name;
};
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp
index bafe9c51f9b..2d77006a6c7 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.cpp
@@ -53,8 +53,8 @@ namespace CIDL_FTClient_Impl
rt_current->the_priority (client_executor_->priority ());
*/
- CIAO_DEBUG ((LM_TRACE, "s(%d) ",
- count_));
+ CIAO_DEBUG ((LM_EMERGENCY, "s(%s) ",
+ client_executor_->name ()));
if (CORBA::is_nil (server_.in ()))
{
@@ -67,20 +67,23 @@ namespace CIDL_FTClient_Impl
}
}
- CORBA::ULong server_processing_time;
+ ACE_Time_Value server_processing_time;
timer_.start ();
- server_processing_time =
- server_->run_task (client_executor_->execution_time ());
+ server_processing_time.msec (
+ server_->run_task (client_executor_->execution_time ()));
timer_.stop ();
ACE_Time_Value rt;
timer_.elapsed_time (rt);
- if (logging_)
- history_.push_back (rt.msec () - server_processing_time);
+ if (logging_ && (count_ >= client_executor_->logstart ()))
+ {
+ ResponseTimeMeasurement m = {server_processing_time, rt};
+ history_.push_back (m);
+ }
}
catch (CORBA::Exception & ex)
{
@@ -128,7 +131,7 @@ namespace CIDL_FTClient_Impl
it != history_.end ();
++it)
{
- out << *it << std::endl;
+ out << it->server_time.msec () << " " << it->client_time.msec () << std::endl;
}
out.close ();
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h
index 294004f2d57..5bc689df815 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_Timer_Handler.h
@@ -46,7 +46,12 @@ namespace CIDL_FTClient_Impl
CORBA::ULong count_;
- typedef std::list<CORBA::ULong> TimingList;
+ struct ResponseTimeMeasurement {
+ ACE_Time_Value server_time;
+ ACE_Time_Value client_time;
+ };
+
+ typedef std::list<ResponseTimeMeasurement> TimingList;
TimingList history_;
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp
index 35827be7852..69866151ab4 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.cpp
@@ -111,6 +111,19 @@ namespace CIDL_FTClient_Impl
iterations_ = iterations;
}
+
+ CORBA::ULong
+ FTClient_exec_i::logstart (void)
+ {
+ return logstart_;
+ }
+
+ void
+ FTClient_exec_i::logstart (CORBA::ULong logstart)
+ {
+ logstart_ = logstart;
+ }
+
char *
FTClient_exec_i::server_ior ()
{
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h
index 6b03abebe6d..89e6f7dfb0c 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTClient_exec.h
@@ -61,11 +61,17 @@ namespace CIDL_FTClient_Impl
virtual void
execution_time (::CORBA::Double execution_time);
- virtual ::CORBA::ULong
+ virtual CORBA::ULong
iterations (void);
virtual void
- iterations (::CORBA::ULong iterations);
+ iterations (CORBA::ULong iterations);
+
+ virtual CORBA::ULong
+ logstart (void);
+
+ virtual void
+ logstart (CORBA::ULong logstart);
virtual char *
server_ior (void);
@@ -114,6 +120,8 @@ namespace CIDL_FTClient_Impl
CORBA::ULong iterations_;
+ CORBA::ULong logstart_;
+
CORBA::String_var server_ior_;
std::string name_;
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp
index 1760c858cee..2f75d0050da 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.cpp
@@ -58,11 +58,11 @@ namespace CIDL_FTTask_Impl
// Supported or inherited operations.
- CORBA::ULong
+ CORBA::Long
FTTask_exec_i::run_task (
::CORBA::Double execution_time)
{
- CIAO_DEBUG ((LM_TRACE, "x(%d, %f) ", state_, execution_time));
+ CIAO_DEBUG ((LM_EMERGENCY, "x(%s) ", object_id_.c_str ()));
timer_.start ();
@@ -85,7 +85,6 @@ namespace CIDL_FTTask_Impl
FTTask_exec_i::stop (void)
{
task_.stop ();
- this->orb_->shutdown ();
}
void
@@ -343,23 +342,28 @@ namespace CIDL_FTTask_Impl
(primary_ ? 1 : 2),
myself_.in ());
+ DeCoRAM::Worker_var ref = DeCoRAM::Worker::_narrow (myself_.in ());
+
// publish application in NameService for the client
if (primary_)
{
Name_Helper_T <Worker> tnh (orb_.in ());
- DeCoRAM::Worker_var ref = DeCoRAM::Worker::_narrow (myself_.in ());
-
tnh.bind ("FLARE_TESTAPPLICATION/" + object_id_,
ref.in ());
+ }
- // and write it to a file
- std::string iorfilename = object_id_ + ".ior";
- std::ofstream file (iorfilename.c_str ());
- file << orb_->object_to_string (ref.in ());
- file.flush ();
- file.close ();
- }
+ // and write it to a file
+ std::string iorfilename;
+ if (!primary_)
+ iorfilename = object_id_ + "-b.ior";
+ else
+ iorfilename = object_id_ + ".ior";
+
+ std::ofstream file (iorfilename.c_str ());
+ file << orb_->object_to_string (ref.in ());
+ file.flush ();
+ file.close ();
task_.init (orb_.in (), suicidal_count_);
task_.activate ();
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h
index bffe397af9c..ab5df8df465 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/FTTask_exec.h
@@ -47,7 +47,7 @@ namespace CIDL_FTTask_Impl
// Supported or inherited operations.
- virtual CORBA::ULong
+ virtual CORBA::Long
run_task (
::CORBA::Double execution_time);
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp
index c7b769961be..51677bfeb51 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/Failure_Task.cpp
@@ -40,8 +40,7 @@ Failure_Task::svc (void)
}
// don't call shutdown on regular stop
- if (!stop_)
- orb_->shutdown ();
+ orb_->shutdown (true);
return 0;
}
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl b/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl
index 30fd2e12fde..2628afcbbfe 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/Worker.idl
@@ -7,7 +7,7 @@ module DeCoRAM
* ms.
* @return time in ms that has elapsed since the method started.
*/
- unsigned long run_task (in double execution_time);
+ long run_task (in double execution_time);
void stop ();
};
};
diff --git a/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp b/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp
index c9b0ff71b76..eba2316170e 100644
--- a/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp
+++ b/CIAO/DAnCE/tests/CIAO/FTComponents/client_trigger.cpp
@@ -1,36 +1,29 @@
// $Id$
+#include <string>
+#include <vector>
#include "TriggerC.h"
#include "ace/Get_Opt.h"
-const ACE_TCHAR *first_ior = ACE_TEXT ("file://first.ior");
const ACE_TCHAR *prefix = ACE_TEXT ("");
+std::vector <std::string> applications;
int
parse_args (int argc, ACE_TCHAR *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:n:"));
- int c;
+ if (argc > 1)
+ prefix = argv[1];
+
+ if (argc > 2)
+ {
+ for (int i = 2; i < argc; ++i)
+ {
+ applications.push_back (argv[i]);
+ }
+ }
+ else
+ return -1;
- while ((c = get_opts ()) != -1)
- switch (c)
- {
- case 'k':
- first_ior = get_opts.opt_arg ();
- break;
- case 'n':
- prefix = get_opts.opt_arg ();
- break;
- case '?':
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "usage: %s"
- "-k <ior> "
- "-n <prefix>"
- "\n",
- argv [0]),
- -1);
- }
// Indicates sucessful parsing of the command line
return 0;
}
@@ -45,19 +38,33 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- CORBA::Object_var tmp = orb->string_to_object(first_ior);
+ std::vector <Trigger_var> triggers;
- Trigger_var trigger = Trigger::_narrow(tmp.in ());
-
- if (CORBA::is_nil (trigger.in ()))
+ for (std::vector<std::string>::iterator it = applications.begin ();
+ it != applications.end ();
+ ++it)
{
- ACE_ERROR_RETURN ((LM_DEBUG,
- "Nil Trigger reference <%s>\n",
- first_ior),
- 1);
+ CORBA::Object_var tmp = orb->string_to_object(it->c_str ());
+
+ Trigger_var trigger = Trigger::_narrow(tmp.in ());
+
+ if (CORBA::is_nil (trigger.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil Trigger reference <%s>\n",
+ it->c_str ()),
+ 1);
+ }
+
+ triggers.push_back (trigger);
}
- trigger->start (CORBA::string_dup (prefix));
+ for (std::vector<Trigger_var>::iterator it2 = triggers.begin ();
+ it2 != triggers.end ();
+ ++it2)
+ {
+ (*it2)->start (CORBA::string_dup (prefix));
+ }
orb->destroy ();
}