tensorflow / tensorflow/tensorboard

tensorboard_data_server is not valid manylinux2010 wheel

Open
#5,949 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

When I run TensorBoard, I get the following error: lib/python3.9/site-packages/tensorboard_data_server/bin/server: /lib64/libc.so.6: version 'GLIBC_2.18' not found (required by lib/python3.9/site-packages/tensorboard_data_server/bin/server). (I removed irrelevant path parts, as well as fixed a quote so Markdown formatting works.) Although I did not encounter any other problems while using Tensorboard, the error message is concerning.

I am running on CentOS 7, and the most recent version of glibc on my system is GLIBC_2.17.[^1] This is consistent with PEP 599, which states that the manylinux2014 platform tag is based on CentOS 7 and supports up to GLIBC_2.17. According to PEP 571, manylinux2010 only supports up to GLIBC_2.12, which is what TensorFlow is compiled with.

Given that you said you target manylinux2010 because TensorFlow does, I searched the TensorFlow repository. There is a complex build process spread across many files, but their build process seems to specifically download an older version of glibc just to create wheels. For an example, look at tensorflow/tools/ci_build/Dockerfile.rbe.cuda11.1-cudnn8-ubuntu18.04-manylinux2010-multipython and tensorflow/tools/ci_build/devtoolset/build_devtoolset.sh.

I don't know if modifying the build process is extremely important (I can't seem to find any other glibc-related bugs in the issue tracker), but hopefully the scripts in the main TensorFlow repository can help fix the workflow if you deem it worth doing.

[^1]: I found it by running strings /lib64/libc.so.6 | grep '^GLIBC_' | sort --sort=version | uniq, which is based on https://gist.github.com/michaelchughes/85287f1c6f6440c060c3d86b4e7d764b#check-the-old-location-of-libcso6.

Originally posted by @aphedges in https://github.com/tensorflow/tensorboard/issues/4928#issuecomment-1032227950

This got no response in a closed issue, so I figured I'd make a new one.

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

Start by reading tensorflow/tools/ci_build/Dockerfile.rbe.cuda11.1-cudnn8-ubuntu18.04-manylinux2010-multipython and tensorflow/tools/ci_build/devtoolset/build_devtoolset.sh, then trace how tensorboard_data_server wheels are built. Done means the published manylinux2010 wheel runs on CentOS 7 with glibc 2.17 and no longer requires GLIBC_2.18.

Written by the indexing model from the issue text.

Assessment

Tech stack
dockerfile, linux, python, tensorflow
Domain
build-system, devops, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.