소스 검색

Merge pull request #5272 from richardkchapman/roxie-lookup-tracing

HPCC-10592 Roxie needs to cache dali lookups that fail to match

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 11 년 전
부모
커밋
011f96c4d9
3개의 변경된 파일13개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 0
      roxie/ccd/ccddali.cpp
  2. 8 1
      roxie/ccd/ccdstate.cpp
  3. 1 0
      system/jlib/jthread.cpp

+ 4 - 0
roxie/ccd/ccddali.cpp

@@ -435,6 +435,8 @@ public:
         }
         else // Legacy mode - recently cloned files should have the extra info
         {
+            if (traceLevel > 1)
+                DBGLOG("checkClonedFromRemote: Resolving %s in legacy mode", _lfn);
             SocketEndpoint cloneFrom;
             cloneFrom.set(fdesc->queryProperties().queryProp("@cloneFrom"));
             if (cloneFrom.isNull())
@@ -488,6 +490,8 @@ public:
                 xpath.append(lcname.append(logicalName).toLowerCase());
                 writeCache(xpath.str(), xpath.str(), pt);
             }
+            if (traceLevel > 1)
+                DBGLOG("Dali lookup %s returned %d", logicalName, dfsFile != NULL);
             return dfsFile.getClear();
         }
         else

+ 8 - 1
roxie/ccd/ccdstate.cpp

@@ -239,18 +239,25 @@ static Owned<KeptLowerCaseAtomTable> daliMisses;
 static void noteDaliMiss(const char *filename)
 {
     CriticalBlock b(daliMissesCrit);
+    if (traceLevel > 4)
+        DBGLOG("noteDaliMiss %s", filename);
     daliMisses->addAtom(filename);
 }
 
 static bool checkCachedDaliMiss(const char *filename)
 {
     CriticalBlock b(daliMissesCrit);
-    return daliMisses->find(filename) != NULL;
+    bool ret = daliMisses->find(filename) != NULL;
+    if (traceLevel > 4)
+        DBGLOG("checkCachedDaliMiss %s returns %d", filename, ret);
+    return ret;
 }
 
 static void clearDaliMisses()
 {
     CriticalBlock b(daliMissesCrit);
+    if (traceLevel)
+        DBGLOG("Clearing dali misses cache");
     daliMisses.setown(new KeptLowerCaseAtomTable);
 }
 

+ 1 - 0
system/jlib/jthread.cpp

@@ -1602,6 +1602,7 @@ public:
         sigemptyset(&blockset);
         act.sa_mask = blockset;
         act.sa_handler = SIG_IGN;
+        act.sa_flags = 0;
         sigaction(SIGPIPE, &act, NULL);
     }