LayLow
(LayLow)
December 25, 2018, 5:48am
1
@all Happy holiday season.
@mrmarkuz ,
It seems that NS does not completely meet the requirements for Onlyoffice document server. Onlyoffice Document server requires Nodejs version 8 where NS comes Nodejs version 6 (nodejs-6.14.3-1.el7.x86_64) by default.
This results in too high CPU usage, a massive ammount of worker restarts and very large log files. (see /var/log/onlyoffice/documentserver/spellchecker). Please also see top to identify the processes.
The remidy seems to be to use Nodejs version 8, which is available via Software Collections (rh-nodejs8-nodejs).
Any chance you are willing to take a look at this please?
Reference:
https://dev.onlyoffice.org/viewtopic.php?f=4&t=11632&p=18901&hilit=cpu+usage#p18901
Although not the exact same error, my log huge log files have and endless:
Error: Module version mismatch. Expected 48, got 57.
at Error (native)
at Object.Module._extensionsā¦node (module.js:604:18)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object. (/var/www/onlyoffice/documentserver/server/SpellChecker/sources/spellCheck.js:13:17)
at Module._compile (module.js:577:32)
at Object.Module._extensionsā¦js (module.js:586:10)
module.js:604
return process.dlopen(module, path._makeLong(filename));
^
Which suggests that there is an issue regarding the Nodejs version used.
Edit: And while weāre at it, it seems the requirements must include an NPM update too according the changelog:
https://helpcenter.onlyoffice.com/server/document/changelog.aspx
2 Likes
mrmarkuz
(Markus Neuberger)
December 26, 2018, 12:17pm
2
For sure, thanks for testing and sharing.
Actually I couldnāt reproduce it on a fresh installed vm but on an older server. Thanks for the pointers about nodejs, Iāll have a look and reportā¦
LayLow
(LayLow)
December 26, 2018, 12:48pm
3
Meanwhile I wanted to install the scl version of nodejs8 to do some testing. Unfortunately I came across this error:
Transaction check error:
file /usr/lib/rpm/nodejs_native.req from install of rh-nodejs8-nodejs-8.11.4-1.el7.x86_64 conflicts with file from package nodejs-1:6.14.3-1.el7.x86_64
I could use --force, but I do not want to mess up the RPM db and logic.
mrmarkuz
(Markus Neuberger)
December 26, 2018, 12:59pm
4
The original onlyoffice-documentserver rpm requires the nodejs package from epel which conflicts with rh-nodejs8.
Here it seems nodejs 6.9 is required and 6.14 is provided by epel:
LayLow
(LayLow)
December 26, 2018, 1:01pm
5
Yes, nodejs 6.9 is listed, but that document is over 2 years old
mrmarkuz
(Markus Neuberger)
December 26, 2018, 1:03pm
7
LayLow:
Is this solvable?
If itās really a nodejs version problem it should be posted at the onlyoffice side so they could change their package.
I am going to check if itās solvable without changing nodejsā¦
EDIT:
You may add the nodejs repo
curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
https://helpcenter.onlyoffice.com/server/linux/document/linux-installation-centos.aspx
EDIT2:
For me itās working now without high CPU load of the node processā¦
LayLow
(LayLow)
December 26, 2018, 1:35pm
8
Also interesting, the SCL version of Nodejs version 8 is Nodejs 8.11:
Installing:
rh-nodejs8 x86_64 3.0-3.el7 centos-sclo-rh 6.6 k
Installing for dependencies:
rh-nodejs8-nodejs x86_64 8.11.4-1.el7 centos-sclo-rh 7.1 M
rh-nodejs8-npm x86_64 5.6.0-8.11.4.1.el7 centos-sclo-rh 4.4 M
rh-nodejs8-runtime x86_64 3.0-3.el7 centos-sclo-rh 1.1 M
Whilse the minimum version required by Onlyoffice is version 8.12 (and I believe that is a LTS version)
So using nodejs from SCL is not a an option
mrmarkuz
(Markus Neuberger)
December 26, 2018, 1:36pm
9
Please try this, it works for me without high CPU load:
curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
yum install nodejs
LayLow
(LayLow)
December 26, 2018, 1:38pm
10
mrmarkuz:
Please try this
Result:
[root@srv01 ~]# curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
Installing the NodeSource Node.js 8.x LTS Carbon repoā¦
Inspecting systemā¦
rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release
uname -m
Confirming āel7-x86_64ā is supportedā¦
Downloading release setup RPMā¦
Installing release setup RPMā¦
rpm -i --nosignature --force ā/tmp/tmp.dsWo2XM5lhā
Cleaning upā¦
rm -f ā/tmp/tmp.dsWo2XM5lhā
Checking for existing installationsā¦
rpm -qa ānode|npmā | grep -v nodesource
Your system appears to already have Node.js installed from an alternative source.
Run sudo yum remove -y nodejs npm
to remove these first.
Run sudo yum install -y nodejs
to install Node.js 8.x LTS Carbon and npm.
You may also need development tools to build native addons:
sudo yum install gcc-c++ make
To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
mrmarkuz
(Markus Neuberger)
December 26, 2018, 1:40pm
11
These are instructions howto use the script, you may just run
yum install nodejs
.
If it does not work remove nodejs first with yum remove nodejs
.
LayLow
(LayLow)
December 26, 2018, 1:41pm
12
mrmarkuz:
yum install nodejs
.
[root@srv01 ~]# yum install nodejs
Loaded plugins: changelog, fastestmirror, nethserver_events
Loading mirror speeds from cached hostfile
ce-base: mi.mirror.garr.it
ce-extras: mi.mirror.garr.it
ce-updates: mi.mirror.garr.it
Excluding mirror: mirror.de.leaseweb.net
Excluding mirror: mirror.nl.leaseweb.net
epel: ftp.uni-stuttgart.de
nethforge: nethserver.interlin.nl
nethserver-base: nethserver.interlin.nl
nethserver-updates: nethserver.interlin.nl
nodesource | 2.5 kB 00:00:00
nodesource/x86_64/primary_db | 43 kB 00:00:00
Resolving Dependencies
ā Running transaction check
ā> Package nodejs.x86_64 1:6.14.3-1.el7 will be updated
ā Processing Dependency: nodejs = 1:6.14.3-1.el7 for package: 1:npm-3.10.10-1.6.14.3.1.el7.x86_64
ā> Package nodejs.x86_64 2:8.14.1-1nodesource will be an update
ā Finished Dependency Resolution
Error: Package: 1:npm-3.10.10-1.6.14.3.1.el7.x86_64 (@epel )
Requires: nodejs = 1:6.14.3-1.el7
Removing: 1:nodejs-6.14.3-1.el7.x86_64 (@epel )
nodejs = 1:6.14.3-1.el7
Updated By: 2:nodejs-8.14.1-1nodesource.x86_64 (nodesource)
nodejs = 2:8.14.1-1nodesource
Available: 2:nodejs-8.0.0-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.0.0-1nodesource.el7.centos
Available: 2:nodejs-8.1.0-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.1.0-1nodesource.el7.centos
Available: 2:nodejs-8.1.1-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.1.1-1nodesource.el7.centos
Available: 2:nodejs-8.1.2-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.1.2-1nodesource.el7.centos
Available: 2:nodejs-8.1.3-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.1.3-1nodesource.el7.centos
Available: 2:nodejs-8.1.4-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.1.4-1nodesource.el7.centos
Available: 2:nodejs-8.2.0-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.2.0-1nodesource.el7.centos
Available: 2:nodejs-8.2.1-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.2.1-1nodesource.el7.centos
Available: 2:nodejs-8.3.0-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.3.0-1nodesource.el7.centos
Available: 2:nodejs-8.4.0-1nodesource.el7.centos.x86_64 (nodesource)
nodejs = 2:8.4.0-1nodesource.el7.centos
Available: 2:nodejs-8.5.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.5.0-1nodesource
Available: 2:nodejs-8.6.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.6.0-1nodesource
Available: 2:nodejs-8.7.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.7.0-1nodesource
Available: 2:nodejs-8.8.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.8.0-1nodesource
Available: 2:nodejs-8.8.1-1nodesource.x86_64 (nodesource)
nodejs = 2:8.8.1-1nodesource
Available: 2:nodejs-8.9.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.9.0-1nodesource
Available: 2:nodejs-8.9.1-1nodesource.x86_64 (nodesource)
nodejs = 2:8.9.1-1nodesource
Available: 2:nodejs-8.9.2-1nodesource.x86_64 (nodesource)
nodejs = 2:8.9.2-1nodesource
Available: 2:nodejs-8.9.3-1nodesource.x86_64 (nodesource)
nodejs = 2:8.9.3-1nodesource
Available: 2:nodejs-8.9.4-1nodesource.x86_64 (nodesource)
nodejs = 2:8.9.4-1nodesource
Available: 2:nodejs-8.10.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.10.0-1nodesource
Available: 2:nodejs-8.11.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.11.0-1nodesource
Available: 2:nodejs-8.11.1-1nodesource.x86_64 (nodesource)
nodejs = 2:8.11.1-1nodesource
Available: 2:nodejs-8.11.2-1nodesource.x86_64 (nodesource)
nodejs = 2:8.11.2-1nodesource
Available: 2:nodejs-8.11.3-1nodesource.x86_64 (nodesource)
nodejs = 2:8.11.3-1nodesource
Available: 2:nodejs-8.11.4-1nodesource.x86_64 (nodesource)
nodejs = 2:8.11.4-1nodesource
Available: 2:nodejs-8.12.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.12.0-1nodesource
Available: 2:nodejs-8.13.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.13.0-1nodesource
Available: 2:nodejs-8.14.0-1nodesource.x86_64 (nodesource)
nodejs = 2:8.14.0-1nodesource
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
mrmarkuz
(Markus Neuberger)
December 26, 2018, 1:43pm
13
You have to do
yum remove nodejs
first. I am afraid it will remove documentserver tooā¦you have to reinstall.
LayLow
(LayLow)
December 26, 2018, 1:46pm
14
Yup, was trying to avoid thatā¦
[root@srv01 ~]# yum remove nodejs
Loaded plugins: changelog, fastestmirror, nethserver_events
Resolving Dependencies
ā Running transaction check
ā> Package nodejs.x86_64 1:6.14.3-1.el7 will be erased
ā Processing Dependency: nodejs >= 8.0.0 for package: onlyoffice-documentserver-5.2.3-64.x86_64
ā Processing Dependency: nodejs = 1:6.14.3-1.el7 for package: 1:npm-3.10.10-1.6.14.3.1.el7.x86_64
ā Running transaction check
ā> Package npm.x86_64 1:3.10.10-1.6.14.3.1.el7 will be erased
ā> Package onlyoffice-documentserver.x86_64 0:5.2.3-64 will be erased
ā Processing Dependency: onlyoffice-documentserver for package: nethserver-onlyoffice-0.0.1-4.ns7.noarch
ā Running transaction check
ā> Package nethserver-onlyoffice.noarch 0:0.0.1-4.ns7 will be erased
ā Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
Removing:
nodejs x86_64 1:6.14.3-1.el7 @epel 16 M
Removing for dependencies:
nethserver-onlyoffice noarch 0.0.1-4.ns7 @mrmarkuz 8.2 k
npm x86_64 1:3.10.10-1.6.14.3.1.el7 @epel 9.8 M
onlyoffice-documentserver x86_64 5.2.3-64 installed 759 M
Transaction Summary
Remove 1 Package (+3 Dependent packages)
mrmarkuz
(Markus Neuberger)
December 26, 2018, 1:48pm
15
Actually doing the same procedure on another serverā¦
LayLow
(LayLow)
December 26, 2018, 1:56pm
16
Iāll leave you to it for now. Let it sink in
Thanks!
1 Like
mrmarkuz
(Markus Neuberger)
December 26, 2018, 3:26pm
17
For me it works with nodejs 8 without high CPU load. Thanks for pointing that out.
I updated the module and the wiki entry to support installation of nodejs 8:
https://wiki.nethserver.org/doku.php?id=onlyoffice#install_nodejs_repo
giacomo
(Giacomo Sanchietti)
December 27, 2018, 10:08am
18
If you still have an high load, just disable the systemd unit which spawn the dictionary module
Iāve already done it on a test machine, but I donāt remember the unit name.
1 Like
LayLow
(LayLow)
December 27, 2018, 11:22am
19
I can confirm. CPU load dropped drastically and no more nodejs errors in the log files. And as a bonus, the spellchecker is now functional
Many thanks.
1 Like