DigitalOcean RocketChat 2.1 => 3.1.1 upgrade

Description

I have Rocket Chat Server installed as DO 1-click-install droplet. Verison is 2.1.
I wanted to upgrade it to latest version which rocketchatctl check-update says is 3.1.1

Upgrade failed. Log is attached below. Please check and advise how to upgrade

Server Setup Information

  • Version of Rocket.Chat Server: 2.1
  • Operating System: Ubuntu 18.04 LTS
  • Deployment Method: DigitalOcean 1-click-install droplet
  • Number of Running Instances: 1
  • DB Replicaset Oplog:
  • NodeJS Version: 8.16.2-1nodesource1
  • MongoDB Version: 4.0.3
  • Proxy:
  • Firewalls involved: no

Any additional Information

UPGRADE log

root@rocketcell:~# sudo rocketchatctl upgrade-rocketchatctl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 40038 100 40038 0 0 190k 0 --:–:-- --:–:-- --:–:-- 191k
rocketchatctl upgraded to latest version.
root@rocketcell:~#
root@rocketcell:~#
root@rocketcell:~# sudo rocketchatctl update
Updates could be risky, you can use the backup option # rocketchatctl backup, to create a backup of the rocketchat database first. Please check that you have enough space in your system to store the backup.
IMPORTANT: Update from version 2.x to 3.x requires node update, if you decide to update, your node version will change from 8.x to 12.x.
Current update available for RocketChat server: from 2.1.0 to 3.1.1.

Installing the NodeSource Node.js 12.x repo…

Populating apt-get cache…

  • apt-get update
    Get:1 h-ttp:mirrors.digitalocean.com/ubuntu bionic InRelease [242 kB]
    Get:2 h-ttp:mirrors.digitalocean.com/ubuntu bionic-updates InRelease [88.7 kB]
    Get:3 h-ttp:mirrors.digitalocean.com/ubuntu bionic-backports InRelease [74.6 kB]
    Hit:4 h-ttps:deb.nodesource.com/node_8.x bionic InRelease
    Get:5 h-ttp:security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
    Ign:6 h-ttps:repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 InRelease
    Hit:7 h-ttps:repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 Release
    Fetched 494 kB in 1s (634 kB/s)
    Reading package lists… Done

Confirming “bionic” is supported…

  • curl -sLf -o /dev/null ‘h-ttps:deb.nodesource.com/node_12.x/dists/bionic/Release’

Adding the NodeSource signing key to your keyring…

  • curl -s h-ttps:deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -OK

Creating apt sources list file for the NodeSource Node.js 12.x repo…

  • echo ‘deb h-ttps:deb.nodesource.com/node_12.x bionic main’ > /etc/apt/sources.list.d/nodesource.list
  • echo ‘deb-src h-ttps:deb.nodesource.com/node_12.x bionic main’ >> /etc/apt/sources.list.d/nodesource.list

Running apt-get update for you…

  • apt-get update
    Hit:1 h-ttp:security.ubuntu.com/ubuntu bionic-security InRelease
    Get:2 h-ttp:mirrors.digitalocean.com/ubuntu bionic InRelease [242 kB]
    Ign:3 h-ttps:repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 InRelease
    Get:4 h-ttps:deb.nodesource.com/node_12.x bionic InRelease [4584 B]
    Hit:5 h-ttp:mirrors.digitalocean.com/ubuntu bionic-updates InRelease
    Hit:6 h-ttp:mirrors.digitalocean.com/ubuntu bionic-backports InRelease
    Hit:7 h-ttps:repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 Release
    Get:8 h-ttps:deb.nodesource.com/node_12.x bionic/main amd64 Packages [765 B]
    Fetched 247 kB in 1s (410 kB/s)
    Reading package lists… Done

Run sudo apt-get install -y nodejs to install Node.js 12.x and npm

You may also need development tools to build native addons:

 sudo apt-get install gcc g++ make

To install the Yarn package manager, run:

 curl -sL h-ttps:dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
 echo "deb h-ttps:dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
 sudo apt-get update && sudo apt-get install yarn

Reading package lists… Done
Building dependency tree
Reading state information… Done
build-essential is already the newest version (12.4ubuntu1).
graphicsmagick is already the newest version (1.3.28-2ubuntu0.1).
0 upgraded, 0 newly installed, 0 to remove and 65 not upgraded.
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be upgraded:
nodejs
1 upgraded, 0 newly installed, 0 to remove and 64 not upgraded.
Need to get 17.9 MB of archives.
After this operation, 25.3 MB of additional disk space will be used.
Get:1 h-ttps:deb.nodesource.com/node_12.x bionic/main amd64 nodejs amd64 12.16.2-1nodesource1 [17.9 MB]
Fetched 17.9 MB in 0s (63.9 MB/s)
(Reading database … 132156 files and directories currently installed.)
Preparing to unpack …/nodejs_12.16.2-1nodesource1_amd64.deb …
Detected old npm client, removing…
Unpacking nodejs (12.16.2-1nodesource1) over (8.16.2-1nodesource1) …
Setting up nodejs (12.16.2-1nodesource1) …
Processing triggers for man-db (2.8.3-2ubuntu0.1) …
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js

  • npm@6.13.4
    added 65 packages from 19 contributors, removed 22 packages and updated 72 packages in 8.832s
    npm WARN deprecated request@2.88.2: request has been deprecated, see h-ttps:github.com/request/request/issues/3142/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
    /usr/local/bin/node-gyp -> /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js

ajv@6.12.1 postinstall /usr/local/lib/node_modules/node-gyp/node_modules/ajv
opencollective-postinstall || true

Thank you for using ajv!
If you rely on this package, please consider supporting our open collective:

h-ttps:opencollective.com/ajv/donate

  • inherits@2.0.4

  • node-gyp@4.0.0

  • n@6.5.1
    added 101 packages from 71 contributors in 4.501s

    ╭────────────────────────────────────────────────────────────────╮
    │ │
    │ New minor version of npm available! 6.4.1 → 6.14.4 │
    │ Changelog: h-ttps:github.com/npm/cli/releases/tag/v6.14.4 │
    │ Run npm install -g npm to update! │
    │ │
    ╰────────────────────────────────────────────────────────────────╯

    installing : node-v12.14.0
    mkdir : /usr/local/n/versions/node/12.14.0
    fetch : h-ttps:nodejs.org/dist/v12.14.0/node-v12.14.0-linux-x64.tar.xz
    installed : v12.14.0 (with npm 6.13.4)

    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 223 100 223 0 0 573 0 --:–:-- --:–:-- --:–:-- 573
    100 154M 100 154M 0 0 28.4M 0 0:00:05 0:00:05 --:–:-- 30.4M
    npm WARN deprecated request@2.88.2: request has been deprecated, see h-ttps:github.com/request/request/issues/3142

fibers@4.0.3 install /tmp/bundle/programs/server/node_modules/fibers
node build.js || nodejs build.js

linux-x64-72-glibc exists; testing
Binary is fine; exiting

ajv@6.12.1 postinstall /tmp/bundle/programs/server/node_modules/ajv
opencollective-postinstall || true

Thank you for using ajv!
If you rely on this package, please consider supporting our open collective:

h-ttps:opencollective.com/ajv/donate

npm WARN lifecycle meteor-dev-bundle@~install: cannot run in wd meteor-dev-bundle@ node npm-rebuild.js (wd=/tmp/bundle/programs/server)
added 147 packages from 123 contributors and audited 306 packages in 4.769s

1 package is looking for funding
run npm fund for details

found 1 moderate severity vulnerability
run npm audit fix to fix them, or npm audit for detailsWaiting up to 60 seconds for RocketChat server to be active … 2
Waiting up to 60 seconds for RocketChat server to be active … 4
Waiting up to 60 seconds for RocketChat server to be active … 6
Waiting up to 60 seconds for RocketChat server to be active … 8
Waiting up to 60 seconds for RocketChat server to be active … 10
Waiting up to 60 seconds for RocketChat server to be active … 12
Waiting up to 60 seconds for RocketChat server to be active … 14
Waiting up to 60 seconds for RocketChat server to be active … 16
Waiting up to 60 seconds for RocketChat server to be active … 18
Waiting up to 60 seconds for RocketChat server to be active … 20
Waiting up to 60 seconds for RocketChat server to be active … 22
Waiting up to 60 seconds for RocketChat server to be active … 24
Waiting up to 60 seconds for RocketChat server to be active … 26
Waiting up to 60 seconds for RocketChat server to be active … 28
Waiting up to 60 seconds for RocketChat server to be active … 30
Waiting up to 60 seconds for RocketChat server to be active … 32
Waiting up to 60 seconds for RocketChat server to be active … 34
Waiting up to 60 seconds for RocketChat server to be active … 36
Waiting up to 60 seconds for RocketChat server to be active … 38
Waiting up to 60 seconds for RocketChat server to be active … 40
Waiting up to 60 seconds for RocketChat server to be active … 42
Waiting up to 60 seconds for RocketChat server to be active … 44
Waiting up to 60 seconds for RocketChat server to be active … 46
Waiting up to 60 seconds for RocketChat server to be active … 48
Waiting up to 60 seconds for RocketChat server to be active … 50
Waiting up to 60 seconds for RocketChat server to be active … 52
Waiting up to 60 seconds for RocketChat server to be active … 54
Waiting up to 60 seconds for RocketChat server to be active … 56
Waiting up to 60 seconds for RocketChat server to be active … 58
Waiting up to 60 seconds for RocketChat server to be active … 60
Error in updated RocketChat server health check, restoring backup.

From syslog:

Apr 19 20:54:12 rocketcell systemd[1]: Started The Rocket.Chat server.
Apr 19 20:54:12 rocketcell rocketchat[7114]: ## There is an issue with node-fibers ##
Apr 19 20:54:12 rocketcell rocketchat[7114]: /opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-72-glibc/fibers.node is missing.
Apr 19 20:54:12 rocketcell rocketchat[7114]: Try running this to fix the issue: /usr/local/bin/node /opt/Rocket.Chat/programs/server/node_modules/fibers/build
Apr 19 20:54:12 rocketcell rocketchat[7114]: Error: Cannot find module ‘/opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-72-glibc/fibers’
Apr 19 20:54:12 rocketcell rocketchat[7114]: Require stack:
Apr 19 20:54:12 rocketcell rocketchat[7114]: - /opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js
Apr 19 20:54:12 rocketcell rocketchat[7114]: - /opt/Rocket.Chat/programs/server/boot.js
Apr 19 20:54:12 rocketcell rocketchat[7114]: - /opt/Rocket.Chat/main.js
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Function.Module._load (internal/modules/cjs/loader.js:690:27)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module.require (internal/modules/cjs/loader.js:852:19)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at require (internal/modules/cjs/helpers.js:74:18)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Object. (/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:14:39)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module._compile (internal/modules/cjs/loader.js:959:30)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Object.Module._extensions…js (internal/modules/cjs/loader.js:995:10)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module.load (internal/modules/cjs/loader.js:815:32)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Function.Module._load (internal/modules/cjs/loader.js:727:14)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module.require (internal/modules/cjs/loader.js:852:19)
Apr 19 20:54:12 rocketcell rocketchat[7114]: /opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:23
Apr 19 20:54:12 rocketcell rocketchat[7114]: #011#011throw new Error(‘Missing binary. See message above.’);
Apr 19 20:54:12 rocketcell rocketchat[7114]: #011#011^
Apr 19 20:54:12 rocketcell rocketchat[7114]: Error: Missing binary. See message above.
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Object. (/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:23:9)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module._compile (internal/modules/cjs/loader.js:959:30)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Object.Module._extensions…js (internal/modules/cjs/loader.js:995:10)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module.load (internal/modules/cjs/loader.js:815:32)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Function.Module._load (internal/modules/cjs/loader.js:727:14)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module.require (internal/modules/cjs/loader.js:852:19)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at require (internal/modules/cjs/helpers.js:74:18)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Object. (/opt/Rocket.Chat/programs/server/boot.js:1:13)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Module._compile (internal/modules/cjs/loader.js:959:30)
Apr 19 20:54:12 rocketcell rocketchat[7114]: at Object.Module._extensions…js (internal/modules/cjs/loader.js:995:10)
Apr 19 20:54:12 rocketcell systemd[1]: rocketchat.service: Main process exited, code=exited, status=1/FAILURE
Apr 19 20:54:12 rocketcell systemd[1]: rocketchat.service: Failed with result ‘exit-code’.

you’r better off deploying an empty Ubuntu box on Digital Ocean and installing Rocket Chat from SNAPs

https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps/

How to migrate chat database? Will there be issues?

Hi all,

just to inform that this can be closed.

Used rocketchactl backup to dump database and restored it in new DigitalOcean droplet (Ubuntu 18) with manually installed Rocketchat.

mongorestore --host localhost:27017 --db rocketchat --drop --noIndexRestore --archive --gzip < dump_1588538963.gz

Got this in syslog, but after rocketchat service restart, I don’t see any problems or issues in work.

Error dropping index: users -> name_text_username_text_bio_text MongoError: index not found with name [name_text_username_text_bio_text]
May 3 20:57:51 rocket rocketchat[25017]: at Connection. (/opt/Rocket.Chat/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:443:61)
May 3 20:57:51 rocket rocketchat[25017]: at Connection.emit (events.js:210:5)
May 3 20:57:51 rocket rocketchat[25017]: at Connection.EventEmitter.emit (domain.js:475:20)
May 3 20:57:51 rocket rocketchat[25017]: at processMessage (/opt/Rocket.Chat/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:364:10)
May 3 20:57:51 rocket rocketchat[25017]: at Socket. (/opt/Rocket.Chat/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:533:15)
May 3 20:57:51 rocket rocketchat[25017]: at Socket.emit (events.js:210:5)
May 3 20:57:51 rocket rocketchat[25017]: at Socket.EventEmitter.emit (domain.js:475:20)
May 3 20:57:51 rocket rocketchat[25017]: at addChunk (_stream_readable.js:309:12)
May 3 20:57:51 rocket rocketchat[25017]: at readableAddChunk (stream_readable.js:290:11)
May 3 20:57:51 rocket rocketchat[25017]: at Socket.Readable.push (stream_readable.js:224:10)
May 3 20:57:51 rocket rocketchat[25017]: at TCP.onStreamRead (internal/stream_base_commons.js:182:23) {
May 3 20:57:51 rocket rocketchat[25017]: operationTime: Timestamp { bsontype: ‘Timestamp’, low: 924, high
: 1588539471 },
May 3 20:57:51 rocket rocketchat[25017]: ok: 0,
May 3 20:57:51 rocket rocketchat[25017]: errmsg: ‘index not found with name [name_text_username_text_bio_text]’,
May 3 20:57:51 rocket rocketchat[25017]: code: 27,
May 3 20:57:51 rocket rocketchat[25017]: codeName: ‘IndexNotFound’,
May 3 20:57:51 rocket rocketchat[25017]: ‘$clusterTime’: {
May 3 20:57:51 rocket rocketchat[25017]: clusterTime: Timestamp { bsontype: ‘Timestamp’, low: 924, high
: 1588539471 },
May 3 20:57:51 rocket rocketchat[25017]: signature: { hash: [Binary], keyId: 0 }
May 3 20:57:51 rocket rocketchat[25017]: },
May 3 20:57:51 rocket rocketchat[25017]: name: ‘MongoError’,
May 3 20:57:51 rocket rocketchat[25017]: [Symbol(mongoErrorContextSymbol)]: {}
May 3 20:57:51 rocket rocketchat[25017]: }