Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nodejs v7.10.1 broken on CentOS 5. Error: "node: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by node)" #14182

Closed
tokyowizard opened this issue Jul 12, 2017 · 11 comments
Labels
build Issues and PRs related to build files or the CI.

Comments

@tokyowizard
Copy link

  • Version: v7.10.1
  • Platform: CentOS 5
  • Subsystem:

Version v.7.10.1 no longer works on CentOS 5.
Nodejs 7 versions have been working up until 7.10.0.

$ nvm use 7.8.0
Now using node v7.8.0 (npm v4.2.0)
$ node -v
v7.8.0
$ nvm use 7.9.0
Now using node v7.9.0 (npm v4.2.0)
$ node -v
v7.9.0
$ nvm use 7.10.0
Now using node v7.10.0 (npm v4.2.0)
$ node -v
v7.10.0
$ nvm use 7.10.1
Now using node v7.10.1 (npm v)
$ node -v
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.3' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by node)
$
@Trott
Copy link
Member

Trott commented Jul 12, 2017

@nodejs/build @nodejs/release

@mscdex mscdex added build Issues and PRs related to build files or the CI. v7.x labels Jul 12, 2017
@XadillaX
Copy link
Contributor

I think you should install glibc?

@ronkorving
Copy link
Contributor

@XadillaX A new version of glibc should not be a requirement for a security (patch level) release.

@Trott
Copy link
Member

Trott commented Jul 12, 2017

@XadillaX A new version of glibc should not be a requirement for a security (patch level) release.

@ronkorving In principle, I agree. However...see discussion at #12672. CentOS 5 went EOL (from the vendor) in March. If I'm reading that conversation right, it means that new releases of Node.js, even patch level ones, are not guaranteed to run there anymore.

@mscdex
Copy link
Contributor

mscdex commented Jul 12, 2017

The thing is though there aren't going to be many more v7.x releases (v7.10.1 might be the last one even), so I don't see how it could hurt to just use the same glibc throughout v7.x.

@Trott
Copy link
Member

Trott commented Jul 12, 2017

The thing is though there aren't going to be many more v7.x releases (v7.10.1 might be the last one even), so I don't see how it could hurt to just use the same glibc throughout v7.x.

I agree, but I'm not the one doing releases and maintaining the infrastructure, so I feel like my opinion counts for less because there may be issues I am not sensitive to. Moreover, 7.x isn't really the issue. It's 6.x, which will be supporting until April 2019. I suspect the breakage/upgrade/whatever-you-want-to-call-it happened there too.

This is unexpected and likely frustrating for users. At a minimum, we probably should find a place to repeat the text added in #12672 where it will be more visible. Maybe the README.md file. The README file refers to that file for the list of supported platforms, but it is arguably kind of hidden by virtue of being in the "Building Node.js" section. Like, @tokyowizard probably didn't think to look under "Building Node.js" and why would they? They're not building Node.js and the previous downloaded version worked just fine. From the end user perspective, why wouldn't and shouldn't this patch release be expected to work? We should put the information (that it might not work) somewhere that they might find it when they go looking for it.

@targos
Copy link
Member

targos commented Jul 12, 2017

That information should probably have been in the "notable changes" section of the release post.

@ronkorving
Copy link
Contributor

ronkorving commented Jul 12, 2017

@Trott Yeah, I think for most people a new Node release is just an nvm install away. I would expect new versions to run. Reading release notes may come later.

Speaking of which, this is where I would expect an explicit mention when a platform (or glibc version) is no longer supported. It's the first place where I as a user would look. (update: Ah, @targos just made the same point, I didn't hit refresh in my browser yet :))

@gibfahn
Copy link
Member

gibfahn commented Jul 12, 2017

So technically CentOS 5 hasn't been supported since Node 4. However I don't think we make this in any way visible (it's only in BUILDING.md) so I don't think we can reasonably expect users to see this.

In this situation I believe this is a bug with the release scripts, @rvagg added this crazy if expression to run on CentOS 5 For Node 7 and below, and CentOS 6 for Node 8 and above:

if [[ \
  $OSTYPE =~ linux && \
  $ARCH =~ x86_64|x64|i386|x86|ia32 && \
  ( \
    ( ${NODE_VERSION:0:1} -gt "7" && ! $NODE_LABELS =~ post-8-release ) || \
    ( ${NODE_VERSION:0:1} -lt "7" && $NODE_LABELS =~ post-8-release ) \
  ) \
]]; then
  echo "Not building Node.js ${NODE_VERSION:0:1} on $NODE_NAME"
  exit 0
fi

I'm pretty sure it should be -le not -lt. In fact I'm not sure how we have a linux build at all.

@gibfahn
Copy link
Member

gibfahn commented Jul 13, 2017

cc/ @nodejs/build , can anyone confirm that my suggestion is correct?

@bnoordhuis
Copy link
Member

@nodejs/build - please see @gibfahn's comment. I'm closing this out as the bug report is against v7.x and that's out of support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI.
Projects
None yet
Development

No branches or pull requests

8 participants