Rocket.chat cannot be installed on my Syncloud

I cannot install Rocket.chat through web UI: after several minutes nothing happens.
It shouldn’t be a matter of disk space:

root@syncloud:~# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     372M   24M  348M   7% /run
/dev/mmcblk1p2 ext4      7.2G  2.9G  3.9G  43% /
tmpfs          tmpfs     1.9G  8.0K  1.9G   1% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/loop0     squashfs  283M  283M     0 100% /snap/nextcloud/210624280
/dev/loop1     squashfs   71M   71M     0 100% /snap/platform/210321656
/dev/loop2     squashfs  151M  151M     0 100% /snap/platform/2110221095
/dev/loop3     squashfs  151M  151M     0 100% /snap/platform/2110141091
/dev/md0       ext4      3.6T  264G  3.2T   8% /mnt/md0

Thanks a lot

Simone

Can you try this command and post the output?

snap install rocketchat
 
root@syncloud:~# snap install rocketchat
error: cannot perform the following tasks:
- Start snap "rocketchat" (190609478) services ([start snap.rocketc
hat.mongodb.service snap.rocketchat.server.service snap.rocketchat.
nginx.service] failed with exit status 1: Job for snap.rocketchat.n
ginx.service failed because the control process exited with error c
ode.
See "systemctl status snap.rocketchat.nginx.service" and "journalct
l -xe" for details.
)
root@syncloud:~#


thanks a lot
Simone

Strange, could you send logs from Settings - Support and reply to the email you receive so we know that it is this issue

Hi Boris,
just done. Sorry for being late in the reply.
Simone

I have just realised you are using 8Gb sd card as internal memory, what kind of device is this?

/dev/mmcblk1p2    7459244   4601808    2503760  65% /

Ideally you need a much bigger internal memory (preferably SSD) as apps are installed there. Probably you are running out of disk space when you try to install rocket chat.

If it is raspberry pi, I would suggest to try a bigger sd card like 64/128.

Just to make sure can you try installing again and send the logs right away as I cannot see install error?

The device is an Odroid HC4. The OS disk is an SD card, the storage consists of 2 rotating 4TB HD in RAID1 configuration.
Next steps: I’ll try installing Rocketchat again and will send you the logs immediately after so taht you can see what’s happening.
Increasing the size of the OS SD card is not a problem at all, if required.
Thanks in advance.

Simone

Just to make sure can you try installing again and send the logs right away as I cannot see install error?

Hi Boris,
sorry for being extremely late on this :wink:
I have just tried to install Rocketchat again and sent the logs immediately. In my opinion this time also there is nothing in the logs.
The error in the console is still the same and in my opinion it is a timeout error: I have to wait for 20 mins (!!) to get it. Anyway here it is:


root@syncloud:~#  sudo snap install rocketchat
error: cannot perform the following tasks:
- Start snap "rocketchat" (190609478) services ([start snap.rocketchat.server.service snap.rocketchat.nginx.service snap.rocketchat.mongodb.service] failed with exit status 1: Job for snap.rocketchat.nginx.service failed because the control process exited with error code.
See "systemctl status snap.rocketchat.nginx.service" and "journalctl -xe" for details.

Looks like mongodb cannot be started:

Dec  5 20:20:11 syncloud mongod.bin.27017[7479]: [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
Dec  5 20:20:11 syncloud mongod.bin.27017[7479]:

Can you send the output of these:

free
df -h /
journalctl | grep mongo

root@syncloud:~# free
              total        used        free      shared  buff/cache   available
Mem:        3800596      526744      210104       78064     3063748     3016408
Swap:             0           0           0
root@syncloud:~# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk1p2   59G   16G   41G  28% /

root@syncloud:~# journalctl | grep mongo
root@syncloud:~#

The last command did not return any output in the console, hence the word “mongo” is not present in the system journal, if I am not wrong. :wink:
Thanks

Simone

Hi Boris,
do you think that installing (and running) Mongodb by myself through this official page could solve the problem?
The installation is based on apt and I don’t know if it will “fit” well with the snap procedure.
For the moment I don’t do anything till I receive an advise from you. Thanks, ciao

Simone

Hi Boris,
while waiting for news from your side, I’m still trying to understand what’s wrong with Mongodb and my Syncloud device. It seems like ARM64 architecture is not officially supported by Mongodb and that the only solution is a rebuild for this architecture: git clone, etc… This is one of the pages reporting that.
I have tried to install MongoDb through their official page and I can confirm that in their official repositories there is no candidate for the installation on my system.
What version is aimed to be installed in the snap procedure? Does it really perform a rebuild “runtime”? Do you think there will be a solution to this problem? Thanks a lot.
Simone

Oh, is odroid hc4 arm64?
But anyway we are using arm32 image I guess and I am not even sure if there is any arm64.
can you run:

uname -a

We should be using this mongo db binary.
Can you download it and check (it is a huge package)?

wget https://github.com/syncloud/3rdparty/releases/download/1/mongodb-armv7l.tar.gz
tar xf mongodb-armv7l.tar.gz
LC_ALL=C ./mongodb/bin/mongod --help

HI Boris,
here follow in a sequence what you asked me for.
Thanks

root@syncloud:~# uname -a
Linux syncloud 4.9.236-63 #1 SMP PREEMPT Wed Dec 9 22:25:50 UTC 2020 aarch64 GNU/Linux

root@syncloud:~# wget https://github.com/syncloud/3rdparty/releases/download/1/mongodb-armv7l.tar.gz
--2021-12-14 21:45:21--  https://github.com/syncloud/3rdparty/releases/download/1/mongodb-armv7l.tar.gz
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/37301457/d6dc6800-fd5f-11e9-9a13-f48612d31fe8?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20211214%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20211214T214522Z&X-Amz-Expires=300&X-Amz-Signature=9e81244773fb119951a0bcc370304c1dcf8dd0fb3b0715101a80eefbf7f32def&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=37301457&response-content-disposition=attachment%3B%20filename%3Dmongodb-armv7l.tar.gz&response-content-type=application%2Foctet-stream [following]
--2021-12-14 21:45:22--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/37301457/d6dc6800-fd5f-11e9-9a13-f48612d31fe8?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20211214%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20211214T214522Z&X-Amz-Expires=300&X-Amz-Signature=9e81244773fb119951a0bcc370304c1dcf8dd0fb3b0715101a80eefbf7f32def&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=37301457&response-content-disposition=attachment%3B%20filename%3Dmongodb-armv7l.tar.gz&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.111.133, 185.199.110.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 484427190 (462M) [application/octet-stream]
Saving to: 'mongodb-armv7l.tar.gz'

mongodb-armv7l.tar.gz      100%[========================================>] 461.99M  13.7MB/s    in 38s

2021-12-14 21:46:01 (12.0 MB/s) - 'mongodb-armv7l.tar.gz' saved [484427190/484427190]

root@syncloud:~# tar xf mongodb-armv7l.tar.gz
root@syncloud:~# LC_ALL=C ./mongodb/bin/mongod --help
Options:

General options:
  -h [ --help ]                 show this usage information
  --version                     show version information
  -f [ --config ] arg           configuration file specifying additional
                                options
  -v [ --verbose ] [=arg(=v)]   be more verbose (include multiple times for
                                more verbosity e.g. -vvvvv)
  --quiet                       quieter output
  --port arg                    specify port number - 27017 by default
  --bind_ip arg                 comma separated list of ip addresses to listen
                                on - all local ips by default
  --ipv6                        enable IPv6 support (disabled by default)
  --maxConns arg                max number of simultaneous connections -
                                1000000 by default
  --logpath arg                 log file to send write to instead of stdout -
                                has to be a file, not directory
  --syslog                      log to system's syslog facility instead of file
                                or stdout
  --syslogFacility arg          syslog facility used for mongodb syslog message
  --logappend                   append to logpath instead of over-writing
  --logRotate arg               set the log rotation behavior (rename|reopen)
  --timeStampFormat arg         Desired format for timestamps in log messages.
                                One of ctime, iso8601-utc or iso8601-local
  --pidfilepath arg             full path to pidfile (if not set, no pidfile is
                                created)
  --keyFile arg                 private key for cluster authentication
  --noauth                      run without security
  --setParameter arg            Set a configurable parameter
  --httpinterface               enable http interface
  --clusterAuthMode arg         Authentication mode used for cluster
                                authentication. Alternatives are
                                (keyFile|sendKeyFile|sendX509|x509)
  --nounixsocket                disable listening on unix sockets
  --unixSocketPrefix arg        alternative directory for UNIX domain sockets
                                (defaults to /tmp)
  --filePermissions arg         permissions to set on UNIX domain socket file -
                                0700 by default
  --fork                        fork server process
  --auth                        run with security
  --jsonp                       allow JSONP access via http (has security
                                implications)
  --rest                        turn on simple rest api
  --slowms arg (=100)           value of slow for profile and console log
  --profile arg                 0=off 1=slow, 2=all
  --cpu                         periodically show cpu and iowait utilization
  --sysinfo                     print some diagnostic system information
  --noIndexBuildRetry           don't retry any index builds that were
                                interrupted by shutdown
  --noscripting                 disable scripting engine
  --notablescan                 do not allow table scans
  --shutdown                    kill a running server (for init scripts)

Replication options:
  --oplogSize arg               size to use (in MB) for replication op log.
                                default is 5% of disk space (i.e. large is
                                good)

Master/slave options (old; use replica sets instead):
  --master                      master mode
  --slave                       slave mode
  --source arg                  when slave: specify master as <server:port>
  --only arg                    when slave: specify a single database to
                                replicate
  --slavedelay arg              specify delay (in seconds) to be used when
                                applying master ops to slave
  --autoresync                  automatically resync if slave data is stale

Replica set options:
  --replSet arg                 arg is <setname>[/<optionalseedhostlist>]
  --replIndexPrefetch arg       specify index prefetching behavior (if
                                secondary) [none|_id_only|all]
  --enableMajorityReadConcern   enables majority readConcern

Sharding options:
  --configsvr                   declare this is a config db of a cluster;
                                default port 27019; default dir /data/configdb
  --configsvrMode arg           Controls what config server protocol is in use.
                                When set to "sccc" keeps server in legacy
                                SyncClusterConnection mode even when the
                                service is running as a replSet
  --shardsvr                    declare this is a shard db of a cluster;
                                default port 27018

Storage options:
  --storageEngine arg           what storage engine to use - defaults to
                                wiredTiger if no data files present
  --dbpath arg                  directory for datafiles - defaults to /data/db
  --directoryperdb              each database will be stored in a separate
                                directory
  --noprealloc                  disable data file preallocation - will often
                                hurt performance
  --nssize arg (=16)            .ns file size (in MB) for new databases
  --quota                       limits each database to a certain number of
                                files (8 default)
  --quotaFiles arg              number of files allowed per db, implies --quota
  --smallfiles                  use a smaller default file size
  --syncdelay arg (=60)         seconds between disk syncs (0=never, but not
                                recommended)
  --upgrade                     upgrade db if needed
  --repair                      run repair on all dbs
  --repairpath arg              root directory for repair files - defaults to
                                dbpath
  --journal                     enable journaling
  --nojournal                   disable journaling (journaling is on by default
                                for 64 bit)
  --journalOptions arg          journal diagnostic options
  --journalCommitInterval arg   how often to group/batch commit (ms)

root@syncloud:~#

interesting, you have arm64 and standalone mongo 32 bit binary actually works fine.
ok the next step, could you write image again to reset everything and then install just rocketchat?

At some point soon we will have to drop 32 bit arm support for for mongo as we cannot upgrade to the latest version of rocketchat because of that. That probably means rocketchat2 app only for amd64/arm64. WHich may help you depending on what is the real issue here.

could you write image again to reset everything and then install just rocketchat?

ok for me, available to do that. I suppose that you want to package a new image. I am gonna wait for it. Thanks a lot.

Simone

No, i mean if you could repeat the process but this time install only rocket chat to make sure nothing esle is causing it not to work.
Send the logs right away.
Also logs will be cleaner to find the issue.
Right now I know that mongo fails to start when it is part of the app but is fine standalone.

1 Like

Hi Boris,
ok, got it. Some questions:

  1. Do I have to start from scratch as if I had a brand new device? In that case I’m just wondering if I can reuse the same domain name because I do like the keep the same.
  2. In case the procedure does not consist of starting over, do you have a link to the documentation that shows the process?
  3. will Syncloud be able to mount my data partion (RAID1) again with no need to formatting? Formatting would be a shame: I don’t have other supports big enough to store all data inside;

Thanks a lot

Simone

  1. Of cause you can, domain belongs to your DNS account (Accounts · syncloud/platform Wiki · GitHub)
  2. The doc is the same and starts here: Home · syncloud/platform Wiki · GitHub
  3. Data should stay of cause.

Ok instead starting from scratch which is too much in your case, can you uninstall all apps and try to install rocketchat?

If not I will come up with more rocketchat specific tests.