Переглянути джерело

HPCC-14117 Continue loading packagemap after preload file fails

Signed-off-by: Anthony Fishbeck <anthony.fishbeck@lexisnexis.com>
Anthony Fishbeck 9 роки тому
батько
коміт
f1a2414305
1 змінених файлів з 18 додано та 9 видалено
  1. 18 9
      roxie/ccd/ccdstate.cpp

+ 18 - 9
roxie/ccd/ccdstate.cpp

@@ -614,19 +614,28 @@ protected:
                 const char *name = super.queryProp("@id");
                 if (name)
                 {
-                    const IResolvedFile *resolved = lookupFileName(name, false, true, true, NULL, true);
-                    if (resolved)
+                    try
                     {
-                        files.append(*const_cast<IResolvedFile *>(resolved));
-                        doPreload(0, resolved);
-                        Owned<IPropertyTreeIterator> it = ccdChannels->getElements("RoxieSlaveProcess");
-                        ForEach(*it)
+                        const IResolvedFile *resolved = lookupFileName(name, false, true, true, NULL, true);
+                        if (resolved)
                         {
-                            unsigned channelNo = it->query().getPropInt("@channel", 0);
-                            assertex(channelNo);
-                            doPreload(channelNo, resolved);
+                            files.append(*const_cast<IResolvedFile *>(resolved));
+                            doPreload(0, resolved);
+                            Owned<IPropertyTreeIterator> it = ccdChannels->getElements("RoxieSlaveProcess");
+                            ForEach(*it)
+                            {
+                                unsigned channelNo = it->query().getPropInt("@channel", 0);
+                                assertex(channelNo);
+                                doPreload(channelNo, resolved);
+                            }
                         }
                     }
+                    catch (IException *E)
+                    {
+                        VStringBuffer msg("Failed to preload file %s for package node %s", name, queryId());
+                        EXCLOG(E, msg.str());
+                        E->Release();
+                    }
                 }
             }
         }