Native debian 9 collabora package does (not) install correctly

As there is no community forum or something ( I did not find it ) to post issues and questions. I hope someone here may be of help.

I installed a native collabora package according to the instructions on Collabora Online Development Edition (CODE) - Collabora Office and Collabora Online
No error messages, no warnings. All passed.
Nextcloud says:

Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

Nothing in the server log, but the syslog shows this:

Sep 19 17:17:49 hom3 systemd[1]: Started LibreOffice Online WebSocket Daemon.
Sep 19 17:17:49 hom3 loolwsd[6528]: wsd-06528-06528 15:17:49.866297 [ loolwsd ] ERR  Failed to write to pipe. Data: [setconfig limit_virt_mem_mb 0
Sep 19 17:17:49 hom3 loolwsd[6528]: setconfig limit_stack_mem_kb 8000
Sep 19 17:17:49 hom3 loolwsd[6528]: setconfig limit_file_size_mb 50
Sep 19 17:17:49 hom3 loolwsd[6528]: ]. (errno: Bad file descriptor)| common/IoUtil.cpp:200
Sep 19 17:17:49 hom3 loolwsd[6528]: wsd-06528-06528 15:17:49.867488 [ loolwsd ] FTL  Cannot load CA file/directory at /etc/loolwsd/ca-chain.cert.pem (error:02001002:system library:fopen:No such file or directory)| wsd/LOOLWSD.cpp:2707
Sep 19 17:17:49 hom3 loolwsd[6528]: Cannot load CA file/directory at /etc/loolwsd/ca-chain.cert.pem (error:02001002:system library:fopen:No such file or directory)
Sep 19 17:17:49 hom3 loolwsd[6528]: wsd-06528-06528 15:17:49.867815 [ loolwsd ] WRN  Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: wsd-06528-06528 15:17:49.867866 [ loolwsd ] WRN  Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.867958 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.867992 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868021 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868053 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868082 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868113 [ loolwsd ] WRN  Waking up dead poll thread [accept_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868151 [ loolwsd ] WRN  Waking up dead poll thread [prisoner_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868182 [ loolwsd ] WRN  Waking up dead poll thread [prisoner_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868220 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 systemd[1]: loolwsd.service: Main process exited, code=exited, status=70/n/a
Sep 19 17:17:49 hom3 loolwsd[6528]: <shutdown>-06528 15:17:49.868249 [ loolwsd ] WRN  Waking up dead poll thread [websrv_poll], started: false, finished: false| ./net/Socket.hpp:507
Sep 19 17:17:49 hom3 systemd[1]: loolwsd.service: Unit entered failed state.
Sep 19 17:17:49 hom3 systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Sep 19 17:17:50 hom3 systemd[1]: loolwsd.service: Service hold-off time over, scheduling restart.
Sep 19 17:17:50 hom3 systemd[1]: Stopped LibreOffice Online WebSocket Daemon.
Sep 19 17:17:50 hom3 systemd[1]: loolwsd.service: Start request repeated too quickly.
Sep 19 17:17:50 hom3 systemd[1]: Failed to start LibreOffice Online WebSocket Daemon.
Sep 19 17:17:50 hom3 systemd[1]: loolwsd.service: Unit entered failed state.
Sep 19 17:17:50 hom3 systemd[1]: loolwsd.service: Failed with result 'exit-code'.

When I check running processes, indeed I see LOOLWSD not running.
The paths in the log file indeed do not exist. Checking /lib/systemd/system/loolwsd.service I see it has paths that are in there do not exist on my server.

[Unit]
Description=LibreOffice Online WebSocket Daemon
After=network.target

[Service]
EnvironmentFile=-/etc/sysconfig/loolwsd
ExecStart=/usr/bin/loolwsd --version --o:sys_template_path=/opt/lool/systemplate --o:lo_template_path=/opt/collaboraoffice5.3 --o:child_root_path=/opt/lool/child-roots --o:file_server_root_path=/usr/share/loolwsd
User=lool
KillMode=control-group
Restart=always

[Install]
WantedBy=multi-user.target

It sort of looks like I am missing some parts in the instruction? Or is the package not working like it should?
Anyone?

If you look real close at the log, you’ll see…

I had this same problem. You either need to copy your SSL certs to where loolwsd expects them, make some symlinks, or update the loolwsd.xml to point to where your certificates are.

Scott

Thanks… symlinks did not work, had to hardcopy the ssl files.
Now it shows to be active but this is in the syslog

Sep 28 11:57:58 hom3 systemd[1]: Started LibreOffice Online WebSocket Daemon.
Sep 28 11:57:58 hom3 loolwsd[4744]: wsd-04744-04744 09:57:58.644453 [ loolwsd ] ERR  Failed to write to pipe. Data: [setconfig limit_virt_mem_mb 0
Sep 28 11:57:58 hom3 loolwsd[4744]: setconfig limit_stack_mem_kb 8000
Sep 28 11:57:58 hom3 loolwsd[4744]: setconfig limit_file_size_mb 50
Sep 28 11:57:58 hom3 loolwsd[4744]: ]. (errno: Bad file descriptor)| common/IoUtil.cpp:200
Sep 28 11:57:58 hom3 loolwsd[4744]: frk-04747-04747 09:57:58.729197 [ forkit ] ERR  Failed to set RLIMIT_NOFILE to 52428800 bytes. (errno: Operation not permitted)| common/Seccomp.cpp:273
Sep 28 11:57:58 hom3 loolwsd[4744]: loolforkit version details: 2.1.3 - 277d2b8
Sep 28 11:58:02 hom3 loolwsd[4744]: office version details: { "ProductName": "Collabora Office", "ProductVersion": "5.3", "ProductExtension": ".10.22", "BuildId": "91005a37b489c9598566e57a6534eb9b6cca3b25" }
Sep 28 11:58:02 hom3 loolwsd[4744]: wsd-04744-04744 09:58:02.800710 [ loolwsd ] ERR  Failed to bind to: 0.0.0.0:9980 (errno: Address already in use)| wsd/LOOLWSD.cpp:2400
Sep 28 11:58:02 hom3 loolwsd[4744]: wsd-04744-04744 09:58:02.801502 [ loolwsd ] ERR  Failed to bind to: 0.0.0.0:9981 (errno: Address already in use)| wsd/LOOLWSD.cpp:2400

Any thoughts?

to find out if the errors (the missing pipe and memory) really matter, best stop the daemon and try to run it manually (maybe just run /usr/bin/loolwsd) and in debug mode (if it has one). maybe you have to adjust some system settings (eg RLIMIT_NOFILE) .
you can find out which process is listening on :9980 and :9981 with netstat and kill it manually, if necessary.

did you follow all the insctructions from https://nextcloud.com/collaboraonline/ regarding apache_proxy etc.?
GOOD LUCK!

Hi Thanks for your help. I am learning :slight_smile:
Just running this as root gives me.

terminate called after throwing an instance of 'std::runtime_error'
  what():  Do not run as root. Please run as lool user.

running it as user lool doesn’t do anything.

The port issues have gone or stopped. Probably a mishap as some previous proces wasn’t stopped properly.

I am stuck at this:

Sep 28 16:53:55 hom3 systemd[1]: Started LibreOffice Online WebSocket Daemon.
Sep 28 16:53:55 hom3 loolwsd[15987]: wsd-15987-15987 14:53:55.769777 [ loolwsd ] ERR  Failed to write to pipe. Data: [setconfig limit_virt_mem_mb 0
Sep 28 16:53:55 hom3 loolwsd[15987]: setconfig limit_stack_mem_kb 8000
Sep 28 16:53:55 hom3 loolwsd[15987]: setconfig limit_file_size_mb 50
Sep 28 16:53:55 hom3 loolwsd[15987]: ]. (errno: Bad file descriptor)| common/IoUtil.cpp:200
Sep 28 16:53:55 hom3 loolwsd[15987]: frk-15990-15990 14:53:55.811578 [ forkit ] ERR  Failed to set RLIMIT_NOFILE to 52428800 bytes. (errno: Operation not permitted)| common/Seccomp.cpp:273
Sep 28 16:53:55 hom3 loolwsd[15987]: loolforkit version details: 2.1.3 - 277d2b8
Sep 28 16:53:58 hom3 loolwsd[15987]: office version details: { "ProductName": "Collabora Office", "ProductVersion": "5.3", "ProductExtension": ".10.22", "BuildId": "91005a37b489c9598566e57a6534eb9b6cca3b25" }

When I check URLs that show in the hosts file
The reverse proxy is working ok. the /hosting/discovery shows the xml allright… status 200 ok
/loleaflet gives me 404 not found

/loleaflet/dist/admin/admin.html gives me 401 Unauthorized… even though I did set a user and password in the loolwsd.xml (tried with and without credentials in URL.)

i could not see in Chrome, but can in Firefox… :slight_smile: in the options it does show the “missing” or “not able to store / pipe” values"
Trying to save them triggers the same errors in the log.

There is something about that pipe storage thing… I do not have any experience with that…

Well it’s nice to see I’m not alone. I just opened a similar issue here. Mine is doing the same thing. :frowning:

I wonder, I see these messages in a lot of threads on the docker installs.
Some refer to the storage driver issue.
Can this also be in a package install?

Mine is a package install. Almost like something in CODE changed.

You maybe right…

I do have a working instance running in a docker container. Even on a split host. Debian 8.
Now it looks like they did not test it properly before publishing it as a package for debian 9
I tried the docker in debian 9 but that would not work also… container is up, loolwsd/collabora giving me the errors.
That is why I went for the package but that gave even more trouble.

Pity is that collabora does not have an issue tracker like nextcloud… I love that the rest of the apps is on github.
It makes things a lot easier…

Now it becomes a trial and error thing without the devs involved…

Thanks for the troubleshooting efforts! Time to harass Collabora! :smiley:

That is not easy as there is no real point of contact for issues on colabora code.
Checking “participate in the project” does not really open up an issue tracker on their work… the bugzilla link is for a liberoffice bug list on the libre office apps… I cannot find any yet on the problems we have… :frowning:

Anyone from collabora here that can jump in?

mm I got rid of the errors since the last update. It actually seems to work… sort off.

following the instructions I now have a collabora instance that can be reached using https://collabora.domain.com/loleaflet/b4b777d/loleaflet.html? or /hosting/discovery or loleaflet/dist/admin/admin.html

But seems not accessible through nextcloud…

Ideas? Can it be someting I need to set in the loolwsd.xml… does somenone have a sample?

Found it…when I looked at the docker start command and all attributions I noticed it needed to have the domain of the nextcloud instance.

Add this: to the WOPI part:

<host desc="Regex pattern of hostname to allow or deny." allow="true">share\.domain\.com</host>

make sure to escape the dots, single backslash this time… fill in the domain of your nextcloud instance…

Now I am only left with some faulty “tools” in the toolbar of collabora… Will post something new for that.

Which certificates do I have to link in the loolwsd.xml? Tge certs for my office domain, or the selfsigned certs the reverse proxy uses?

I used the same certs I used as in my nextcloud instance as I have it setup like:
nextcloud.domain.com
collabora.domain.com
they both use the same wildcard cert i bought… but you can also setup a letsencrypt cert.
As it is all on the same machine, I added these certs to the xml too.

I use Letsencrypt, yes. So I just paste the certificate path of the collabora-domain from it’s Apache proxy into the xml? And do I need to fill in the Root CA certificate, or only certificate and private key?

I have all three certs of them there…
depending on the permissions you can paste the paths, create a symlink or make copies of the certs…

I gave read permissions to the cert files and pasted the path, but service loolwsd status still says that it failed to start loolwsd.

i added user “lool” as a member to the group where my certs are… I did not change the permissions on the files themselves.

what does the log say about it?

Hi, I previously pasted the path of the symlink in the letsencrypt/live folder into the loolwsd.xml - I have now added the right path and it works. Thanks for your help!