diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java index 78090e0a83..c68e7eb5b4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java @@ -914,14 +914,19 @@ public class PackageFunction implements SkyFunction { preprocessCache.put(packageId, preprocessingResult); } - SkylarkImportResult importResult = - discoverSkylarkImports( - buildFilePath, - buildFileFragment, - packageId, - env, - preprocessingResult.result, - preludeStatements); + SkylarkImportResult importResult; + try { + importResult = discoverSkylarkImports( + buildFilePath, + buildFileFragment, + packageId, + env, + preprocessingResult.result, + preludeStatements); + } catch (PackageFunctionException | InterruptedException e) { + preprocessCache.invalidate(packageId); + throw e; + } if (importResult == null) { return null; } |