tensorflow / tensorflow/tensorboard

1.12.0 build fails because it uses wrong libstdc++.so.6

Open
#1,611 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:build/install
Dominant language
TypeScript
Stars
7.2k
Forks
1.7k
Avg merge
4d 22h
Merged PRs (30d)
1

Description

I'm trying to build tensorboard 0.12.0 on a centos7 machine, using my own copies of GCC 6.3.0, python 3.6.0 and bazel 0.19.1.

The build seems to be failing where it correctly detects that /lib64/libstdc++.so.6 is too old, when it should be checking the version of that library embeded in my GCC install.

I'm seeing this:

$ export TEST_TMPDIR=`mktemp -d`
$ bazel build //tensorboard/pip_package:build_pip_package
$TEST_TMPDIR defined: output root default is '/local/736080.1.24core-128G-2K80.q/tmp.nu1gxzcIT3' and max_idle_secs default is '15'.
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
INFO: Analysed target //tensorboard/pip_package:build_pip_package (288 packages loaded, 5205 targets configured).
INFO: Found 1 target...
INFO: From SkylarkAction external/bazel_tools/tools/jdk/platformclasspath.jar [for host]:
warning: could not find a JDK 8 bootclasspath in external/embedded_jdk, falling back to --release
INFO: From ProtoCompile tensorboard/plugins/scalar/plugin_data_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile tensorboard/plugins/custom_scalar/layout_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile tensorboard/plugins/pr_curve/plugin_data_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile tensorboard/plugins/audio/plugin_data_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile tensorboard/plugins/projector/projector_config_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
ERROR: /local/736080.1.24core-128G-2K80.q/tmp.nu1gxzcIT3/_bazel_issmcd/0bbf1e373d35136448169e269dfc1acd/external/org_tensorflow/tensorflow/core/BUILD:262:1: Generating JavaScript Protocol Buffer example_protos failed (Exit 1) protoc failed: error executing command bazel-out/host/bin/external/com_google_protobuf/protoc -Iexternal/org_tensorflow ... (remaining 3 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
bazel-out/host/bin/external/com_google_protobuf/protoc: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by bazel-out/host/bin/external/com_google_protobuf/protoc)
bazel-out/host/bin/external/com_google_protobuf/protoc: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by bazel-out/host/bin/external/com_google_protobuf/protoc)
bazel-out/host/bin/external/com_google_protobuf/protoc: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by bazel-out/host/bin/external/com_google_protobuf/protoc)
Target //tensorboard/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 67.884s, Critical Path: 17.58s, Remote (0.00% of the time): [queue: 0.00%, setup: 0.00%, process: 0.00%]
INFO: 236 processes: 234 processwrapper-sandbox, 2 worker.
FAILED: Build did NOT complete successfully

$ ldd bazel-out/host/bin/external/com_google_protobuf/protoc
	linux-vdso.so.1 =>  (0x00007ffde9f1c000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b913b3e9000)
	libm.so.6 => /lib64/libm.so.6 (0x00002b913b606000)
	libstdc++.so.6 => /apps/developers/compilers/gnu/6.3.0/1/default/lib64/libstdc++.so.6 (0x00002b913b908000)
	libgcc_s.so.1 => /apps/developers/compilers/gnu/6.3.0/1/default/lib64/libgcc_s.so.1 (0x00002b913bc89000)
	libc.so.6 => /lib64/libc.so.6 (0x00002b913bea1000)
	/lib64/ld-linux-x86-64.so.2 (0x000055cecc5aa000)

Any ideas of how to get it to check the right copy of libstdc++.so.6, please?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the Bazel target //tensorboard/pip_package:build_pip_package on CentOS 7 using the reported GCC installation. Start by inspecting how the external/com_google_protobuf/protoc action selects its runtime libraries; done means the target builds without resolving libstdc++.so.6 from the system copy.

Written by the indexing model from the issue text.

Assessment

Tech stack
centos, cpp, python
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.