From 186c068a5ed81ab9008edfd1dd2a3b4a8e59740f Mon Sep 17 00:00:00 2001 From: Andrea Michelotti <andrea.michelotti@lnf.infn.it> Date: Tue, 11 Oct 2016 18:11:03 +0200 Subject: [PATCH] bug on command error fixed, but better solution must be found --- CMakeLists.txt | 15 +++++++++------ .../batch_command/BatchCommandSandbox.cpp | 2 +- .../slow_command/SlowCommandExecutor.cpp | 18 +++++++++++++----- config/localhost/cu.cfg | 2 +- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 48e5b3b64..488389541 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ option(CHAOS_WAN "Chaos Wan Service" ON) option(CHAOS_DATA_EXPORT "Chaos Data Export" ON) option(CHAOS_EXAMPLES "Chaos Examples" ON) option(CHAOS_CCS "Chaos CCS Compile needs qt5.6-static-x86_64 installed" OFF) - +set(QMAKE_PATH "Default QT QMAKE PATH" CACHE STRING "/usr/local/chaos/qt-install/5.6/gcc_64/bin") EXECUTE_PROCESS( COMMAND ./version.sh @@ -140,9 +140,10 @@ ENDIF() ENDIF() IF(CHAOS_CCS) MESG("CCS compilation ENABLED") - IF(EXISTS "/usr/local/chaos/qt5.6-static-x86_64/bin/qmake") + IF(EXISTS "${QMAKE_PATH}/qmake") + MESG("Found 'qmake' in ${QMAKE_PATH}") execute_process( - COMMAND /usr/local/chaos/qt5.6-static-x86_64/bin/qmake + COMMAND ${QMAKE_PATH}/qmake WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ccs RESULT_VARIABLE err OUTPUT_VARIABLE out @@ -160,11 +161,13 @@ ENDIF() if( err) ERROR("error compiling: ${out}") endif() - FILE(GLOB exe ccs/ccs ccs/ccs.sh) - FILE(COPY ${exe} DESTINATION bin/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + ELSE() ERROR("missing /usr/local/chaos/qt5.6-static-x86_64/bin/qmake") ENDIF() ENDIF() - + IF (EXISTS ccs/ccs) + FILE(GLOB exe ccs/ccs ccs/ccs.sh) + FILE(COPY ${exe} DESTINATION bin/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + ENDIF() #add test diff --git a/chaos/common/batch_command/BatchCommandSandbox.cpp b/chaos/common/batch_command/BatchCommandSandbox.cpp index b3354a47e..739773c6a 100644 --- a/chaos/common/batch_command/BatchCommandSandbox.cpp +++ b/chaos/common/batch_command/BatchCommandSandbox.cpp @@ -479,7 +479,7 @@ void BatchCommandSandbox::checkNextCommand() { if (event_handler) event_handler->handleCommandEvent(command_to_delete->element->cmdImpl->command_alias, command_to_delete->element->cmdImpl->unique_id, BatchCommandEventType::EVT_FAULT, - static_cast<FaultDescription*> (&command_to_delete->element->cmdImpl->fault_description), + dynamic_cast<FaultDescription*> (&command_to_delete->element->cmdImpl->fault_description), sizeof (FaultDescription)); break; diff --git a/chaos/cu_toolkit/control_manager/slow_command/SlowCommandExecutor.cpp b/chaos/cu_toolkit/control_manager/slow_command/SlowCommandExecutor.cpp index 9d395ba11..ab713dbe0 100644 --- a/chaos/cu_toolkit/control_manager/slow_command/SlowCommandExecutor.cpp +++ b/chaos/cu_toolkit/control_manager/slow_command/SlowCommandExecutor.cpp @@ -201,14 +201,21 @@ void SlowCommandExecutor::handleCommandEvent(const std::string& command_alias, case BatchCommandEventType::EVT_FAULT: { - CDataWrapper *command_and_fault = static_cast<CDataWrapper*>(type_value_ptr); - if(command_and_fault && - command_and_fault->hasKey(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_CODE) && + // CDataWrapper *command_and_fault = static_cast<CDataWrapper*>((CDataWrapper*)type_value_ptr); + FaultDescription *command_and_fault = static_cast<FaultDescription*>((FaultDescription*)type_value_ptr); + if(command_and_fault /*&& + command_and_fault->hasKey(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_CODE) && command_and_fault->hasKey(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_MESSAGE) && - command_and_fault->hasKey(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_DOMAIN)) { - const int32_t code = command_and_fault->getInt32Value(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_CODE); + command_and_fault->hasKey(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_DOMAIN)*/ + ) { + /* const int32_t code = command_and_fault->getInt32Value(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_CODE); const std::string message = command_and_fault->getStringValue(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_MESSAGE); const std::string domain = command_and_fault->getStringValue(MetadataServerLoggingDefinitionKeyRPC::ErrorLogging::PARAM_NODE_LOGGING_LOG_ERROR_DOMAIN); + */ + const int32_t code=command_and_fault->code; + const std::string message = command_and_fault->description; + const std::string domain = command_and_fault->domain; + //log error on metadata server error_logging_channel->logError(control_unit_instance->getCUID(), command_alias, @@ -218,6 +225,7 @@ void SlowCommandExecutor::handleCommandEvent(const std::string& command_alias, CException ex(code, message, domain); //async go into recoverable error boost::thread(boost::bind(&AbstractControlUnit::_goInRecoverableError, control_unit_instance, ex)).detach(); + command_data=NULL; } else { SCELERR_ << "Command id " << command_seq << " gone in fault without exception"; } diff --git a/config/localhost/cu.cfg b/config/localhost/cu.cfg index b6e8a009c..101d98ca4 100644 --- a/config/localhost/cu.cfg +++ b/config/localhost/cu.cfg @@ -3,4 +3,4 @@ log-level=debug log-file=cu.log log-on-file=yes event-disable=1 - +publishing-interface=lo -- GitLab