Просмотр исходного кода

Merge pull request #7788 from afishbeck/preloadPkgFailure

HPCC-14117 Continue loading packagemap after preload file fails

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 9 лет назад
Родитель
Сommit
d4745607fd
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();
+                    }
                 }
             }
         }