소스 검색

HPCC-17540 Do not check PID for dropzone and ftslave in preflight

Signed-off-by: wangkx <kevin.wang@lexisnexis.com>
wangkx 8 년 전
부모
커밋
0a1ff4bb63
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      esp/services/ws_machine/ws_machineService.cpp

+ 7 - 2
esp/services/ws_machine/ws_machineService.cpp

@@ -1749,7 +1749,12 @@ void Cws_machineEx::setProcessInfo(IEspContext& context, CMachineInfoThreadParam
 void Cws_machineEx::setProcessComponent(IEspContext& context, CMachineInfoThreadParam* pParam, CProcessData& process,
      bool firstProcess, IArrayOf<IEspSWRunInfo>& processArray, IEspComponentInfo* pComponentInfo)
 {
-    if (pParam->m_options.getApplyProcessFilter() && (!process.getPID() || !*process.getPID()))
+    const char* procType = process.getType();
+    const char* procPID = process.getPID();
+    //If a component (ex. dropzone) has no process type, it is not a process and does not have a PID.
+    //FTSlaveProcess may not have a PID since it is launched dynamically during a spray.
+    if (pParam->m_options.getApplyProcessFilter() && (isEmptyString(procPID) &&
+        !isEmptyString(procType) && !strieq(procType, "FTSlaveProcess")))
     {
         Owned<IEspSWRunInfo> info = static_cast<IEspSWRunInfo*>(new CSWRunInfo(""));
         info->setName(process.getName());
@@ -1809,7 +1814,7 @@ void Cws_machineEx::setProcessComponent(IEspContext& context, CMachineInfoThread
         }
     }
 
-    if (!dependencyDown && process.getPID() && *process.getPID())
+    if (!dependencyDown && (!isEmptyString(procPID) || isEmptyString(procType) || strieq(procType, "FTSlaveProcess")))
     {
         //conditions: unknown, normal, warning, minor, major, critical, fatal
         pComponentInfo->setCondition( 1 );