Don’t you just love it when package maintainers break you blog? Yeah, me too. Tonight I went to post an article (no, not this one) and found my site to be down. When I went to start it back up I got this:
[ghost ~]$ /usr/bin/npm start --production node: error while loading shared libraries: libhttp_parser.so.2: cannot open shared object file: No such file or directory
As it turns out, the maintainer of the
nodejs-6.10.3-1.el7.x86_64 package added this to their changelog:
* Wed May 10 2017 Stephen Gallagher <firstname.lastname@example.org> - 1:6.10.3-1 - Update to 6.10.3 (LTS) - https://nodejs.org/en/blog/release/v6.10.3/ - Stop using the bundled http-parser now that there is an upstream release with a new-enough version.
What they didn’t do was update the their dependancies to pull in the
http-parser package. Thus, when the update ran and the service bounced my blog stopped working. Even though the fix was a simple
yum install http-parser this should have never happened as breaking changes like this are contrary to why people run CentOS and RHEL.
For anyone interested, I filed a ticket for this at https://bugs.centos.org/view.php?id=13380.
update 24 Aug. 2017
It seems things have gotten worse if you are not yet on the code from CentOS 7.4 as
http-parser has been removed from EPEL per https://bugzilla.redhat.com/show_bug.cgi?id=1481470