Skip to content

Crash when applying patch to external repository #17897

@uhthomas

Description

@uhthomas

Description of the bug:

(19:26:10) FATAL: bazel crashed due to an internal error. Printing stack trace:
java.lang.RuntimeException: Unrecoverable error while evaluating node 'REPOSITORY_DIRECTORY:@com_github_abc' (requested by nodes 'PACKAGE_LOOKUP:@com_github_abc//')
        at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:642)
        at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: net.starlark.java.eval.Starlark$UncheckedEvalException: IndexOutOfBoundsException thrown during Starlark evaluation (LOADING)
        at <starlark>.patch(<builtin>:0)
        at <starlark>.patch(/private/var/tmp/_bazel_thomas/d95eb470615df18f91feffc144a9a015/external/bazel_tools/tools/build_defs/repo/utils.bzl:167)
        at <starlark>._http_archive_impl(/private/var/tmp/_bazel_thomas/d95eb470615df18f91feffc144a9a015/external/bazel_tools/tools/build_defs/repo/http.bzl:143)
Caused by: java.lang.IndexOutOfBoundsException: Index 15096 out of bounds for length 15096
        at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
        at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source)
        at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
        at java.base/java.util.Objects.checkIndex(Unknown Source)
        at java.base/java.util.ArrayList.get(Unknown Source)
        at com.github.difflib.patch.Chunk.verify(Chunk.java:72)
        at com.github.difflib.patch.AbstractDelta.verifyChunk(AbstractDelta.java:57)
        at com.github.difflib.patch.ChangeDelta.applyTo(ChangeDelta.java:43)
        at com.google.devtools.build.lib.bazel.repository.PatchUtil.applyDelta(PatchUtil.java:149)
        at com.google.devtools.build.lib.bazel.repository.PatchUtil.applyTo(PatchUtil.java:103)
        at com.google.devtools.build.lib.bazel.repository.PatchUtil.applyOffsetPatchTo(PatchUtil.java:90)
        at com.google.devtools.build.lib.bazel.repository.PatchUtil.applyPatchToFile(PatchUtil.java:303)
        at com.google.devtools.build.lib.bazel.repository.PatchUtil.apply(PatchUtil.java:648)
        at com.google.devtools.build.lib.bazel.repository.starlark.StarlarkRepositoryContext.patch(StarlarkRepositoryContext.java:399)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at net.starlark.java.eval.MethodDescriptor.call(MethodDescriptor.java:162)
        at net.starlark.java.eval.BuiltinFunction.fastcall(BuiltinFunction.java:77)
        at net.starlark.java.eval.Starlark.fastcall(Starlark.java:638)
        at net.starlark.java.eval.Eval.evalCall(Eval.java:682)
        at net.starlark.java.eval.Eval.eval(Eval.java:497)
        at net.starlark.java.eval.Eval.exec(Eval.java:271)
        at net.starlark.java.eval.Eval.execStatements(Eval.java:82)
        at net.starlark.java.eval.Eval.execFor(Eval.java:126)
        at net.starlark.java.eval.Eval.exec(Eval.java:276)
        at net.starlark.java.eval.Eval.execStatements(Eval.java:82)
        at net.starlark.java.eval.Eval.execIf(Eval.java:205)
        at net.starlark.java.eval.Eval.exec(Eval.java:283)
        at net.starlark.java.eval.Eval.execStatements(Eval.java:82)
        at net.starlark.java.eval.Eval.execFunctionBody(Eval.java:66)
        at net.starlark.java.eval.StarlarkFunction.fastcall(StarlarkFunction.java:173)
        at net.starlark.java.eval.Starlark.fastcall(Starlark.java:638)
        at net.starlark.java.eval.Eval.evalCall(Eval.java:682)
        at net.starlark.java.eval.Eval.eval(Eval.java:497)
        at net.starlark.java.eval.Eval.exec(Eval.java:271)
        at net.starlark.java.eval.Eval.execStatements(Eval.java:82)
        at net.starlark.java.eval.Eval.execFunctionBody(Eval.java:66)
        at net.starlark.java.eval.StarlarkFunction.fastcall(StarlarkFunction.java:173)
        at net.starlark.java.eval.Starlark.fastcall(Starlark.java:638)
        at net.starlark.java.eval.Starlark.call(Starlark.java:604)
        at com.google.devtools.build.lib.bazel.repository.starlark.StarlarkRepositoryFunction.fetch(StarlarkRepositoryFunction.java:220)
        at com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction.fetchRepository(RepositoryDelegatorFunction.java:413)
        at com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction.compute(RepositoryDelegatorFunction.java:344)
        at com.google.devtools.build.skyframe.AbstractParallelEvaluator$Evaluate.run(AbstractParallelEvaluator.java:571)
        at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:382)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)

What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

Not sure, it could be important to note the external repository is a Bazel projects.

Which operating system are you running Bazel on?

macOS aarch64

What is the output of bazel info release?

release 6.1.1

If bazel info release returns development version or (@non-git), tell us how you built Bazel.

No response

What's the output of git remote get-url origin; git rev-parse master; git rev-parse HEAD ?

No response

Have you found anything relevant by searching the web?

No response

Any other information, logs, or outputs that you want to share?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2We'll consider working on this in future. (Assignee optional)team-ExternalDepsExternal dependency handling, remote repositiories, WORKSPACE file.type: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions