Skip to content

Stardoc crashes when interacting with apple_common global #76

@achew22

Description

@achew22

When Stardoc encounters the following bit of code in rules_go,

_PLATFORMS = {
    "armv7-apple-ios": (apple_common.platform.ios_device, apple_common.platform_type.ios),
    "armv7-apple-tvos": (apple_common.platform.tvos_device, apple_common.platform_type.tvos),
    "armv7k-apple-watchos": (apple_common.platform.watchos_device, apple_common.platform_type.watchos),
    "arm64-apple-ios": (apple_common.platform.ios_device, apple_common.platform_type.ios),
    "arm64-apple-tvos": (apple_common.platform.tvos_device, apple_common.platform_type.tvos),
    "i386-apple-ios": (apple_common.platform.ios_simulator, apple_common.platform_type.ios),
    "i386-apple-tvos": (apple_common.platform.tvos_simulator, apple_common.platform_type.tvos),
    "i386-apple-watchos": (apple_common.platform.watchos_simulator, apple_common.platform_type.watchos),
    "x86_64-apple-ios": (apple_common.platform.ios_simulator, apple_common.platform_type.ios),
    "x86_64-apple-tvos": (apple_common.platform.ios_simulator, apple_common.platform_type.tvos),
    "x86_64-apple-watchos": (apple_common.platform.watchos_simulator, apple_common.platform_type.watchos),
}

it throws the following error:

SUBCOMMAND: # //go:def-docs [action 'Generating proto for Starlark doc for def-docs', configuration: faff19e6fd939f490ac11578d94024c6b7a032836cde039fd5edd28b838194e8, execution platform: @local_config_platform//:host]
(cd <snip> && \
  exec env - \
  bazel-out/host/bin/external/io_bazel_stardoc/stardoc/stardoc '--input=//go:def.bzl' '--workspace_name=io_bazel_rules_go' '--dep_roots=.' '--dep_roots=external/io_bazel_rules_go' '--output=bazel-out/k8-fastbuild/bin/go/def-docs.raw')
ERROR: <snip>/rules_go/go/BUILD.bazel:61:8: Generating proto for Starlark doc for def-docs failed (Exit 1) stardoc failed: error executing command bazel-out/host/bin/external/io_bazel_stardoc/stardoc/stardoc '--input=//go:def.bzl' '--workspace_name=io_bazel_rules_go' '--dep_roots=.' '--dep_roots=external/io_bazel_rules_go' ... (remaining 1 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
com.google.devtools.build.skydoc.SkydocMain$StarlarkEvaluationException: Starlark evaluation error
        at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:423)
        at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:397)
        at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:397)
        at com.google.devtools.build.skydoc.SkydocMain.eval(SkydocMain.java:255)
        at com.google.devtools.build.skydoc.SkydocMain.main(SkydocMain.java:158)
Caused by: Traceback (most recent call last):
        File "./go/platform/apple.bzl", line 16, column 46, in <toplevel>
                "armv7-apple-ios": (apple_common.platform.ios_device, apple_common.platform_type.ios),
Error:
        at net.starlark.java.eval.Starlark.errorf(Starlark.java:555)
        at net.starlark.java.eval.Starlark.getattr(Starlark.java:606)
        at net.starlark.java.eval.Eval.evalDot(Eval.java:530)
        at net.starlark.java.eval.Eval.eval(Eval.java:446)
        at net.starlark.java.eval.Eval.evalList(Eval.java:704)
        at net.starlark.java.eval.Eval.eval(Eval.java:466)
        at net.starlark.java.eval.Eval.evalDict(Eval.java:509)
        at net.starlark.java.eval.Eval.eval(Eval.java:444)
        at net.starlark.java.eval.Eval.execAssignment(Eval.java:108)
        at net.starlark.java.eval.Eval.exec(Eval.java:260)
        at net.starlark.java.eval.Eval.execStatements(Eval.java:80)
        at net.starlark.java.eval.Eval.execFunctionBody(Eval.java:64)
        at net.starlark.java.eval.StarlarkFunction.fastcall(StarlarkFunction.java:155)
        at net.starlark.java.eval.Starlark.fastcall(Starlark.java:509)
        at net.starlark.java.eval.Starlark.execFileProgram(Starlark.java:779)
        at com.google.devtools.build.skydoc.SkydocMain.recursiveEval(SkydocMain.java:420)
        ... 4 more

To view, clone, and test this change, please see my CL to be: https://github.com/achew22/rules_go/pull/new/stardoc
and bazel build //go:def-docs

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions