Skip to content
This repository has been archived by the owner on Oct 2, 2023. It is now read-only.

Failure with Python 3 but without Python 2, due to build_tar shebang #1629

Closed
tchernobog opened this issue Sep 21, 2020 · 1 comment
Closed

Comments

@tchernobog
Copy link

Hi, I have only the python3 binary installed, no "python" binary (corresponding to python2) since my distribution is dropping python2 support. Whenever I try to build a rust image, I get the following error, I think due to a wrong shebang for build_tar. I am not sure how to change the generation of the build_tar script to use py3wrapper.sh instead, which seems to have the right logic for python interpreter detection.

Also passing --extra_toolchains=@bazel_tools//tools/python:autodetecting_toolchain_nonstrict does not work.

INFO: Analyzed target //components/hello-kube:hello-kube (84 packages loaded, 7276 targets configured).
INFO: Found 1 target...
ERROR: /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/external/cc_image_base/image/BUILD:4:17: SHA256 external/cc_image_base/image/000.tar.gz.nogz.sha256 failed (Exit 127) linux-sandbox failed: error executing command 
  (cd /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/sandbox/linux-sandbox/36/execroot/__main__ && \
  exec env - \
    LD_LIBRARY_PATH=:/home/matteo/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib:/home/matteo/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib \
    PATH=/home/matteo/.yarn/bin:/home/matteo/.config/yarn/global/node_modules/.bin:/home/matteo/.scripts:/home/matteo/.gem/ruby/2.5.0/bin:/home/matteo/.cargo/bin:/home/matteo/.local/bin:/bin:/usr/lib/ccache:/home/matteo/.cargo/bin:/home/matteo/.cargo/bin:/home/matteo/.yarn/bin:/home/matteo/.config/yarn/global/node_modules/.bin:/home/matteo/.scripts:/home/matteo/.gem/ruby/2.5.0/bin:/home/matteo/.cargo/bin:/home/matteo/.local/bin:/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin:/home/matteo/Android/Sdk/platform-tools:/home/matteo/.npm-packages/bin:/home/matteo/Android/Sdk/platform-tools:/home/matteo/.npm-packages/bin \
    TMPDIR=/tmp \
  /home/matteo/.cache/bazel/_bazel_matteo/install/129c3d389c2d09bb0ad5b4a301d67a9c/linux-sandbox -t 15 -w /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/sandbox/linux-sandbox/36/execroot/__main__ -w /tmp -w /dev/shm -D -- bazel-out/host/bin/external/bazel_tools/tools/build_defs/hash/sha256 bazel-out/k8-fastbuild/bin/external/cc_image_base/image/000.tar.gz.nogz bazel-out/k8-fastbuild/bin/external/cc_image_base/image/000.tar.gz.nogz.sha256)
src/main/tools/linux-sandbox.cc:156: linux-sandbox-pid1 has PID 67620
src/main/tools/process-tools.cc:131: sigaction(32, &sa, nullptr) failed
src/main/tools/process-tools.cc:131: sigaction(33, &sa, nullptr) failed
src/main/tools/linux-sandbox-pid1.cc:176: working dir: /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/sandbox/linux-sandbox/36/execroot/__main__
src/main/tools/linux-sandbox-pid1.cc:208: writable: /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/sandbox/linux-sandbox/36/execroot/__main__
src/main/tools/linux-sandbox-pid1.cc:208: writable: /tmp
src/main/tools/linux-sandbox-pid1.cc:208: writable: /dev/shm
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/kernel/security
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/unified
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/systemd
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/freezer
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/net_cls,net_prio
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/cpuset
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/perf_event
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/blkio
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/devices
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/rdma
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/cpu,cpuacct
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/pids
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/cgroup/memory
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/pstore
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/firmware/efi/efivars
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/bpf
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/kernel/debug
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/kernel/tracing
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /sys/fs/fuse/connections
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /dev
src/main/tools/linux-sandbox-pid1.cc:279: remount rw: /dev/shm
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /dev/pts
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /dev/mqueue
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /dev/hugepages
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /run
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /run/lock
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /run/rpc_pipefs
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /run/user/1000
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /run/user/1000/gvfs
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /run/user/1000/doc
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /proc
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /proc/sys/fs/binfmt_misc
src/main/tools/linux-sandbox-pid1.cc:300: remount(nullptr, /proc/sys/fs/binfmt_misc, nullptr, 2101281, nullptr) failure (Operation not permitted) ignored
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /proc/sys/fs/binfmt_misc
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /home
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/gtk-common-themes/1506
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/snapd/8790
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/gnome-3-28-1804/128
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/airtame-application/x1
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /boot
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /boot/efi
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/core18/1885
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/core18/1880
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /snap/snapd/9279
src/main/tools/linux-sandbox-pid1.cc:279: remount ro: /var/lib/docker/btrfs
src/main/tools/linux-sandbox-pid1.cc:279: remount rw: /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/sandbox/linux-sandbox/36/execroot/__main__
src/main/tools/linux-sandbox-pid1.cc:279: remount rw: /home/matteo/.cache/bazel/_bazel_matteo/0bbabc6ffd05b81064152f7846d51e79/sandbox/linux-sandbox/36/execroot/__main__
src/main/tools/linux-sandbox-pid1.cc:279: remount rw: /tmp
src/main/tools/linux-sandbox-pid1.cc:279: remount rw: /dev/shm
src/main/tools/process-tools.cc:131: sigaction(32, &sa, nullptr) failed
src/main/tools/process-tools.cc:131: sigaction(33, &sa, nullptr) failed
/usr/bin/env: 'python': No such file or directory
src/main/tools/linux-sandbox-pid1.cc:436: waitpid returned 2
src/main/tools/linux-sandbox-pid1.cc:456: child exited with code 127
src/main/tools/linux-sandbox.cc:206: child exited normally with exitcode 127
Target //components/hello-kube:hello-kube failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 7.764s, Critical Path: 0.02s
INFO: 0 processes.
FAILED: Build did NOT complete successfully

My WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "bazel_skylib",
    urls = [
        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
    ],
    sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
)

http_archive(
    name = "io_bazel_rules_rust",
    sha256 = "9158524bbbdfded6326d00e76d4fb293efbb07d4e4881416210bac221613432f",
    strip_prefix = "rules_rust-7d9e890c58ca00eacf8dd4a2ba991cfe9c3f44e4",
    urls = [
        "https://github.com/bazelbuild/rules_rust/archive/7d9e890c58ca00eacf8dd4a2ba991cfe9c3f44e4.tar.gz",
    ],
)

http_archive(
    name = "io_bazel_rules_docker",
    sha256 = "316c5ee34a624dbe50b1967ea6c471f7f5a3982f06734644e7340a32cf2e155f",
    strip_prefix = "rules_docker-bd64baac70176e782828b437319e1d4e9ecac8cf",
    urls = [
        "https://github.com/bazelbuild/rules_docker/archive/bd64baac70176e782828b437319e1d4e9ecac8cf.tar.gz"
    ],
)

# ----------------------------------------------------------------------

load("@io_bazel_rules_rust//:workspace.bzl", "bazel_version")
bazel_version(name = "bazel_version")

load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
bazel_skylib_workspace()

load("@io_bazel_rules_rust//rust:repositories.bzl", "rust_repositories")
rust_repositories(version = "1.44.0", edition = "2018")

load("@io_bazel_rules_docker//repositories:repositories.bzl", container_repositories = "repositories")
container_repositories()

load("@rules_python//python:pip.bzl", "pip_repositories", "pip3_import")
pip_repositories()
pip3_import( # force usage of python3 over python2 for pip
    name = "pip_deps",
    requirements = "@io_bazel_rules_docker//repositories:requirements-pip.txt",
)
load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")
container_deps()

load("@io_bazel_rules_docker//repositories:pip_repositories.bzl", "pip_deps")
pip_deps()

load("@io_bazel_rules_docker//rust:image.bzl", rust_image_repos = "repositories")
rust_image_repos()

BUILD:

load("@io_bazel_rules_docker//rust:image.bzl", "rust_image")

rust_image(
    name = "hello-kube",
    srcs = ["src/bin.rs"],
)
@tchernobog tchernobog changed the title Error without Python2.7 due to build_tar shebang Failure with Python 3 but without Python 2, due to build_tar shebang Sep 21, 2020
@tchernobog
Copy link
Author

Apparently this is an issue present in Bazel itself. See bazelbuild/bazel#11554. Closing in favor of upstream issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant