DocumentServer Word not working on ARM

Created on 10 Aug 2017  路  87Comments  路  Source: ONLYOFFICE/DocumentServer

Hello everyone,

I have successfully compiled OnlyOffice DocumentServer for ARM (latest GIT clone, on an ODroid XU4 running Debian Jessie) and integrated it with Nextcloud.

I can edit spreadsheets and presentations flawlessly, however, when I try to open a Word document, the loading screen gets stuck at 100% and I log messages like:

2017-08-10 01:38:15.688] [ERROR] nodeJS - changesError: docId = 3344951502280414 Error: Uncaught TypeError: Cannot read property 'kb' of null Script: https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js Line: 7205:203 userAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 platform: Linux x86_64 StackTrace: TypeError: Cannot read property 'kb' of null
at Sa.yV (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203)
at wf (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:94:300)
at kt.ASb (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8644:493)
at kt.v7c (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8642:264)
at kt.Rka (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8639:197)
at Ea.Rka (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:698:177)
at Ea.mAc (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:699:137)
at Object.W3a (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5357:79)
at gxc (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5358:85)

I do not expect that you fix these errors as I know that ARM is not sufficiently supported. But maybe you can give me an indication on how to debug this, the compressed *.js files are not really readable.

Best regards,
pi-xel

enhancement

Most helpful comment

still waiting... +1

All 87 comments

Hi there. Personally I've never tried to compile our project on ARM.
Does x2t working well? I think core (x2t is part of this project) will have most troubles for compiling on ARM
Is it working well?
What is output of /var/www/onlyoffice/documentserver/server/FileConverter/bin/x2t?
It should show some help.
And if it work correctly - try to convert some random doc file to docx using it

Hey,

Thanks for your response. Output of x2t:

-------------------------------------------------------------------------------
OOX/binary file converter. Version: 2.4.470.0
-------------------------------------------------------------------------------

USAGE: x2t "path_to_params_xml"
or
USAGE: x2t "path_to_file_1" "path_to_file_2" ["path_to_font_selection"]
WHERE:
"path_to_file_1" is a path to file to be converted
"path_to_file_2" is a path to the corresponding output file
"path_to_font_selection" is a path to 'font_selection.bin' location

Tried to convert a file from doc to docx, i.e. ./x2t /tmp/test.doc /tmp/test.docx. This worked flawlessly, x2t did not produce any output and the generated docx can be opened and is valid.

@pi-xel Wow. This is a great news.
Did you compile core using cross-compiling or it can be achieved on that ODroid XU4 device?

@pi-xel also - is there any error in browser whyle you trying to open it? And did you try to open empty document or with some content

I compiled everything on XU4, except for CEF which I cross-compiled on my PC. Also ICU I had to compile manually, as the provided download link was only x86.

When I open a docx in the browser, no matter whether it's empty or not, the file loads to 100% and then gets stuck in that screen. And all that is logged is the error message I've sent in my first post.

PS: Also had to switch from GCC 4.9 to GCC 6 coz I got some compiler internal errors when compiling core and had to do some manual tweaking on obtaining and compiling certain node modules which I don't remember exactly to get sdkjs compiled (which also took an awful long time on XU4, each module (word, sheet, cell) took about 6-8 hours).

no matter whether it's empty or not, the file loads to 100% and then gets stuck in that screen.

小an you attach data from WebSocket?
socketdata

at Sa.yV (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203)

Your error in logs contains dates. Did you add them manually? Because if I remember correctly - path to sdk.js on manually compiled DocumentServer should be like this https://example.com/sdkjs/word/sdk-all.js
/etc/nginx/sites-available/onlyoffice-documentserver file have not dates in our instruction
http://helpcenter.onlyoffice.com/server/linux/document/compile-source-code.aspx

I wanted the server to run using SSL and did not manage to derive a working configuration from the one given in the source code instructions. Before trying for too long, I simply copied the configuration from the respective *.deb package.

Which websocket data do you want?

@pi-xel There is two websockets, one for spell check - we don't need it, other for docservice, data should look like on my screenshot - we need that data

Here we go:
screenshot

@pi-xel Sorry, but we need whole data, not only screenshot. Could you copy paste each line to text file, replace your secret data and attach it here?

a["{\"type\":\"license\",\"license\":{\"type\":7,\"light\":false,\"trial\":false,\"rights\":1,\"buildVersion\":\"0.0.0\",\"buildNumber\":0,\"branding\":false}}"]

["{\"type\":\"auth\",\"docid\":\"6027281502367408\",\"documentCallbackUrl\":\"https://nextcloud.example.com/index.php/apps/onlyoffice/track?doc=dm9XOVdld0tjVVZyWjFKcnB3cHYzQ21nVjV3dmFQS3NBZUd3QVgyZS9zRT0/eyJmaWxlSWQiOjYwMjcyOCwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJ0cmFjayJ9\",\"token\":\"fghhfgsjdgfjs\",\"user\":{\"id\":\"xxxx\",\"username\":\"Xxxx\",\"firstname\":null,\"lastname\":null,\"indexUser\":-1},\"editorType\":0,\"lastOtherSaveTime\":-1,\"block\":[],\"sessionId\":null,\"sessionTimeConnect\":null,\"sessionTimeIdle\":0,\"documentFormatSave\":0,\"view\":false,\"isCloseCoAuthoring\":false,\"openCmd\":{\"c\":\"open\",\"id\":\"6027281502367408\",\"userid\":\"xxxx\",\"format\":\"docx\",\"url\":\"https://nextcloud.example.com/index.php/apps/onlyoffice/download?doc=MTRYbS9RUjNwa3RWeU1ucWJjYkZiQ3dVN2RjTUl4OU5YVDM3elg4TElYUT0/eyJmaWxlSWQiOjYwMjcyOCwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJkb3dubG9hZCJ9\",\"title\":\"test.docx\"},\"lang\":null,\"mode\":null,\"permissions\":null}"]

a["{\"type\":\"auth\",\"result\":1,\"sessionId\":\"af676707-e22b-4ce5-afb9-c396520f0b0c\",\"sessionTimeConnect\":1502381007762,\"participants\":[{\"id\":\"xxxx3\",\"idOriginal\":\"xxxx\",\"username\":\"Xxxx\",\"indexUser\":3,\"view\":false,\"connectionId\":\"af676707-e22b-4ce5-afb9-c396520f0b0c\",\"isCloseCoAuthoring\":false}],\"locks\":{},\"changes\":[],\"changesIndex\":0,\"indexUser\":3,\"g_cAscSpellCheckUrl\":\"/spellchecker\",\"buildVersion\":\"0.0.0\",\"buildNumber\":0}"]

a["{\"type\":\"documentOpen\",\"data\":{\"type\":\"open\",\"status\":\"ok\",\"data\":{\"Editor.bin\":\"https://onlyoffice.example.com/cache/files/6027281502367408/Editor.bin/Editor.bin?md5=WEF6wITV1U5kJWkGH36t3g==&expires=1504973010&disposition=attachment&ooname=output.bin\"}}}"]

["{\"type\":\"changesError\",\"stack\":\"Error: Uncaught TypeError: Cannot read property 'kb' of null Script: https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js Line: 7205:203 userAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 platform: Linux x86_64 StackTrace: TypeError: Cannot read property 'kb' of null\\n at Sa.yV (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203)\\n at wf (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:94:300)\\n at kt.ASb (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8644:493)\\n at kt.v7c (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8642:264)\\n at kt.Rka (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8639:197)\\n at Ea.Rka (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:698:177)\\n at Ea.mAc (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:699:137)\\n at Object.W3a (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5357:79)\\n at gxc (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5358:85)\"}"]

Does that tell you something?

@pi-xel

\"title\":\"test.docx\"

Could you attach this file?

@ShockwaveNN This is a newly created file from within Nextcloud, but the result is the same for already existent (externally created) files. Have attached the file.

test.docx

@pi-xel could you attach sdkjs/word/sdk-all.js and sdkjs/word/sdk-all-min.js

Attached.

sdk-all.zip

@pi-xel How did you compiled sdk js files?
Like in instruction cd ../sdkjs && make or did you use some hack?

Followed instructions there, no hack if I remember correctly

@pi-xel In attached sdk-all you have header Version: 4.4.2 (build:20). This is strange, it should be Version: 0.0.0 (build:0)

Oh yeah, I have recompiled these yesterday, setting version and build in Makefile because Nextcloud client was complaining about too low version number and I wanted to exclude that some inappropriate legacy actions were performed when using v0.0.0.

But the outcome was the same for both versions, i.e. the very same error message appears.

Have run a diff on my sdkjs folder and the sdkjs folder from git.

Only differences are the version numbers in Makefile, as well as the instruction that Grunt should compile using flag -Xms1024m instead of -Xms2048m.

Also ran a diff on core. These are the differences (left is original, right is modified):

diff -r core/Common/3dParty/v8/build.sh ../onlyoffice/core/Common/3dParty/v8/build.sh
36c36
< CFLAGS="-fPIC" CXXFLAGS="-fPIC" make native GYPFLAGS=-Dclang=0
---
> CFLAGS="-fPIC -Wno-unused-function" CXXFLAGS="-fPIC -Wno-unused-function" make native GYPFLAGS=-Dclang=0 -j 4
55c55
< CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native
---
> CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native -j 4
diff -r core/Common/3dParty/v8/build.sh ../onlyoffice/core/Common/3dParty/v8/build.sh
36c36
< CFLAGS="-fPIC" CXXFLAGS="-fPIC" make native GYPFLAGS=-Dclang=0
---
> CFLAGS="-fPIC -Wno-unused-function" CXXFLAGS="-fPIC -Wno-unused-function" make native GYPFLAGS=-Dclang=0 -j 4
55c55
< CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native
---
> CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native -j 4
diff -r core/DesktopEditor/cximage/jasper/jpc/jpc_dec.c ../onlyoffice/core/DesktopEditor/cximage/jasper/jpc/jpc_dec.c
2157c2157
<   if (tab->maxents < maxents) {
---
>   if ((int)tab->maxents < maxents) {
diff -r core/DesktopEditor/doctrenderer/docbuilder_p.h ../onlyoffice/core/DesktopEditor/doctrenderer/docbuilder_p.h
198c198,199
<             return false;
---
>             //return false;
>       return "";
212c213,214
<                 return false;
---
>                 //return false;
>       return "";
diff -r core/Makefile ../onlyoffice/core/Makefile
22c22,23
<       MAKE := make -j $(shell grep -c ^processor /proc/cpuinfo)
---
> #     MAKE := make -j $(shell grep -c ^processor /proc/cpuinfo)
>       MAKE := make

Besides, there are quite some diffs in core/Common/3dParty/curl/include/curl/curlbuild.h and core/Common/3dParty/curl/lib/curl_config.h because I ran ./configure manually there. Dunno if this could be an issue.

As said, pptx and xlsx work flawlessly, only docx is problematic.

Edit: Diff on server and web-apps shows both folders being identical.

@pi-xel We think there is something wrong with google-closure compiler process or something like this.
I want to simplify our problem and we should try to compile sdk-all on your ARM machine again.
Could you do a clean setup of sdkjs

git clone https://github.com/ONLYOFFICE/sdkjs.git
cd sdkjs
npm install -g grunt-cli
npm install --prefix build
grunt --level=ADVANCED --base build --gruntfile build/Gruntfile.js

And attach word/sdk-all.js and word/sdk-all-min.js
It should took a lot time I think, but we currrenlty have no arm machine to try ourselfs

Thanks again for your help.

Do I need to recompile whole sdkjs or is the word part sufficient? This is 8 vs 24 hours compile time...

For the rest, now that I've shown that OnlyOffice indeed works on Arm, maybe you could consider supporting it officially.

If you don't have Arm devices to build & test, maybe you could cross-compile and/or setup a virtual machine.

If you should decide to go that route and should run into issues in the compilation, I would gladly help to get it right.

@pi-xel yeah, word part is enough
And yes, your example show us that we should took ARM into considuration

Alright, building.

Will come back to you once it's finished.

Build finished, copied sdk-all.js and sdk-all-min.js to /var/www/onlyoffice/sdkjs/word - and it works flawlessly.

As requested, find the newly generated files attached.

Now everything seems to be up & running, thanks a lot for your help!

sdk-all.zip

Could you maybe also check the following thread? I don't know where the issues lie, within OnlyOffice itself or within OnlyOffice integration app.

Faulty callback, no modification timestamp in NC #96

@pi-xel yeah, I show it to people who work with Owncloud

Thanks :)

@ShockwaveNN Two updates:

  1. Documents are not saved correctly to NC (see other thread #96).
  2. I believe that the error lies in OnlyOffice, not in the integration app. I have tracked some variables and see that when the editor is called, the editorConfig/customization/goback/url is set correctly to https://nextcloud.example.com/index.php/apps/files/?dir=/&scrollto=test.docx. But when the editor calls back to NC, the URL directive is simply missing, as can be seen from document server log:
[2017-08-13 11:08:22.903] [ERROR] nodeJS - sendServerRequest error: docId = 9481851502610297;url = https://nextcloud.example.com/index.php/apps/onlyoffice/track?doc=RzFXbmluY1d3MFJqWXZtVVh3VjhIWEJLWHNtamhnb2tWbWRyRGl3d1RjYz0/eyJmaWxlSWQiOjk0ODE4NSwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJ0cmFjayJ9;data = {"key":"9481851502610297","status":3,"users":["xxxx"],"actions":[{"type":0,"userid":"xxxx"}],"lastsave":"2017-08-13T09:08:06.304Z","notmodified":false}
Error: Error response: statusCode:500 ;body:
{"message":"Error occurred in the document service: Unknown error"}
    at Request._callback (/var/www/onlyoffice/documentserver/server/Common/sources/utils.js:269:18)
    at Request.self.callback (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:188:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:1171:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:1091:12)
    at IncomingMessage.g (events.js:292:16)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)

@pi-xel sorry, integration with other service is out of my area of expertise, I contacted with our people, they respond to you ASAP

@ShockwaveNN I have now debugged some more. Nevermind about my comment regarding goback/url, I now realize it is used for a different purpose (for the "back" button).

But what I see is that on callback, the status is set to 3 by document server, meaning according to the API description (https://api.onlyoffice.com/editors/callback) that a document saving error has occured (in OnlyOffice).

Edit: There are lots of folders in /var/lib/onlyoffice/documentserver/App_Data/cache/files/error...

Some more logs:

[2017-08-14 18:06:39.887] [INFO] nodeJS - Connection closed or timed out: userId = xxx1 isCloseConnection = true docId = 9738711502726770
[2017-08-14 18:06:44.912] [DEBUG] nodeJS - Start saveFromChanges: docId = 9738711502726770
[2017-08-14 18:06:45.017] [DEBUG] nodeJS - AddTask saveFromChanges: docId = 9738711502726770
[2017-08-14 18:06:45.671] [DEBUG] nodeJS - Start receiveTask: docId = 9738711502726770 {"cmd":{"c":"sfc","id":"9738711502726770","userid":"xxxx","data":null,"title":"output.","outputformat":2055,"outputpath":"output.","status_info":-80,"savekey":"9738711502726770_5374","useractionid":"xxxx"}}
[2017-08-14 18:06:45.721] [DEBUG] nodeJS - Start commandSfcCallback: docId = 9738711502726770
[2017-08-14 18:06:45.728] [DEBUG] nodeJS - Callback commandSfcCallback: docId = 9738711502726770 callback = https://127.0.0.1/index.php/apps/onlyoffice/track?doc=b0ZZWDVTRWk4QUw1d2VWOXpaQ3g5a2hTTmUzVm9QMWFPTWVFYXZCaDVyZz0/eyJmaWxlSWQiOjk3Mzg3MSwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJ0cmFjayJ9
[2017-08-14 18:06:45.742] [DEBUG] nodeJS - hasEditors commandSfcCallback: docId = 9738711502726770 hasEditors = 0
[2017-08-14 18:06:45.766] [DEBUG] nodeJS - postData request: docId = 9738711502726770;url = https://127.0.0.1/index.php/apps/onlyoffice/track?doc=b0ZZWDVTRWk4QUw1d2VWOXpaQ3g5a2hTTmUzVm9QMWFPTWVFYXZCaDVyZz0/eyJmaWxlSWQiOjk3Mzg3MSwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJ0cmFjayJ9;data = {"key":"9738711502726770","status":3,"users":["xxxx"],"actions":[{"type":0,"userid":"xxxx"}],"lastsave":"2017-08-14T16:06:33.930Z","notmodified":false}
[2017-08-14 18:06:46.032] [DEBUG] nodeJS - Start convert request docId = conv_973871_docx
[2017-08-14 18:06:46.091] [DEBUG] nodeJS - Start receiveTask: docId = conv_973871_docx {"cmd":{"c":"conv","id":"conv_973871_docx","format":"","url":null,"title":"output.docx","outputformat":65,"outputpath":"output.docx","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":-1}}
[2017-08-14 18:06:46.156] [DEBUG] nodeJS - End receiveTask: docId = conv_973871_docx
[2017-08-14 18:06:47.124] [DEBUG] nodeJS - End convert request url undefined status -1 docId = conv_973871_docx
[2017-08-14 18:06:47.174] [ERROR] nodeJS - sendServerRequest error: docId = 9738711502726770;url = https://127.0.0.1/index.php/apps/onlyoffice/track?doc=b0ZZWDVTRWk4QUw1d2VWOXpaQ3g5a2hTTmUzVm9QMWFPTWVFYXZCaDVyZz0/eyJmaWxlSWQiOjk3Mzg3MSwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJ0cmFjayJ9;data = {"key":"9738711502726770","status":3,"users":["xxxx"],"actions":[{"type":0,"userid":"xxxx"}],"lastsave":"2017-08-14T16:06:33.930Z","notmodified":false}
Error: Error response: statusCode:500 ;body:
{"message":"Error occurred in the document service: Unknown error"}
    at Request._callback (/var/www/onlyoffice/documentserver/server/Common/sources/utils.js:269:18)
    at Request.self.callback (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:188:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:1171:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (/var/www/onlyoffice/documentserver/server/Common/node_modules/request/request.js:1091:12)
    at IncomingMessage.g (events.js:292:16)
    at emitNone (events.js:91:20)
[2017-08-14 18:06:47.188] [DEBUG] nodeJS - End commandSfcCallback: docId = 9738711502726770
[2017-08-14 18:06:47.191] [DEBUG] nodeJS - End receiveTask: docId = 9738711502726770

and params.xml in error directory:

<?xml version="1.0" encoding="utf-8"?><TaskQueueDataConvert xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><m_sKey>9738711502726770_5374</m_sKey><m_sFileFrom>/tmp/ASC_CONVERT117714-t5r43b.aew76z85mi/source/Editor.bin</m_sFileFrom><m_sFileTo>/tmp/ASC_CONVERT117714-t5r43b.aew76z85mi/result/output.</m_sFileTo><m_nFormatTo>2055</m_nFormatTo><m_nCsvTxtEncoding xsi:nil="true" /><m_nCsvDelimiter xsi:nil="true" /><m_nCsvDelimiterChar xsi:nil="true" /><m_bPaid xsi:nil="true" /><m_bEmbeddedFonts xsi:nil="true" /><m_bFromChanges>true</m_bFromChanges><m_sFontDir>/usr/share/fonts</m_sFontDir><m_sThemeDir>/var/www/onlyoffice/documentserver/sdkjs/slide/themes</m_sThemeDir><m_nDoctParams xsi:nil="true" /><m_sPassword xsi:nil="true" /><m_oTimestamp>2017-08-14T16:06:44.978Z</m_oTimestamp></TaskQueueDataConvert>

@ShockwaveNN Could you maybe help me once more?

In the other thread, I was asked to test whether the "download as" function in the editor works properly, to test whether the issue is with OnlyOffice or with NC integration.

The "download as" function works correctly (i.e. all file modifications show up in the downloaded files), but for "download as PDF" I get an error message ("An error has occured while saving the file") and the following messages show up in my fileconverter log:

[2017-08-15 08:22:47.049] [DEBUG] nodeJS - Start Task(id=10255751502778140_5740)
[2017-08-15 08:22:47.053] [DEBUG] nodeJS - downloadFileFromStorage list 10255751502778140/Editor.bin (id=10255751502778140)
[2017-08-15 08:22:47.056] [DEBUG] nodeJS - downloadFileFromStorage complete(id=10255751502778140_5740)
[2017-08-15 08:22:47.058] [DEBUG] nodeJS - downloadFileFromStorage list 10255751502778140_5740/Editor.bin (id=10255751502778140_5740)
[2017-08-15 08:22:47.209] [ERROR] nodeJS - stdout (id=10255751502778140_5740):
[2017-08-15 08:22:47.214] [ERROR] nodeJS - stderr (id=10255751502778140_5740):
[2017-08-15 08:22:47.217] [ERROR] nodeJS - ExitCode (code=0;signal=SIGBUS;error:-80;id=10255751502778140_5740)
[2017-08-15 08:22:47.233] [DEBUG] nodeJS - processUploadToStorage error complete(id=10255751502778140_5740)
[2017-08-15 08:22:47.235] [DEBUG] nodeJS - output (data={"cmd":{"c":"save","id":"10255751502778140","userid":"xxxx","data":null,"title":"test3.pdf","outputformat":513,"outputpath":"output.pdf","savetype":3,"saveindex":1,"status_info":-80,"savekey":"10255751502778140_5740","userconnectionid":"xxxx1"}};id=10255751502778140_5740)
[2017-08-15 08:22:47.237] [DEBUG] nodeJS - postProcess (id=10255751502778140_5740)
[2017-08-15 08:22:47.240] [DEBUG] nodeJS - deleteFolderRecursive (id=10255751502778140_5740)

Moreover, I saw that when I use x2t directly, it only works for converting from doc to docx. For all other cases I get a Couldn't automatically recognize conversion direction from extensions.

Edit: Copied the params.xml from the error folder and modified it, to try it directly. params.xml looks like follows:

<?xml version="1.0" encoding="utf-8"?><TaskQueueDataConvert xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><m_sKey>10255751502778140_5740</m_sKey><m_sFileFrom>/tmp/test.docx</m_sFileFrom><m_sFileTo>/tmp/test.pdf</m_sFileTo><m_nFormatTo>513</m_nFormatTo><m_nCsvTxtEncoding xsi:nil="true" /><m_nCsvDelimiter xsi:nil="true" /><m_nCsvDelimiterChar xsi:nil="true" /><m_bPaid xsi:nil="true" /><m_bEmbeddedFonts xsi:nil="true" /><m_bFromChanges xsi:nil="true" /><m_sFontDir>/usr/share/fonts</m_sFontDir><m_sThemeDir>/var/www/onlyoffice/documentserver/sdkjs/slide/themes</m_sThemeDir><m_nDoctParams xsi:nil="true" /><m_sPassword xsi:nil="true" /><m_oTimestamp>2017-08-15T06:22:47.049Z</m_oTimestamp></TaskQueueDataConvert>

When I run x2t on it, I get a segmentation fault.

Edit 2: When I return to NC, the following fileconverter task is executed:

[2017-08-15 08:44:37.367] [DEBUG] nodeJS - Start Task(id=10255751502778140_6323)
[2017-08-15 08:44:37.370] [DEBUG] nodeJS - downloadFileFromStorage list 10255751502778140/Editor.bin (id=10255751502778140)
[2017-08-15 08:44:37.372] [DEBUG] nodeJS - downloadFileFromStorage complete(id=10255751502778140_6323)
[2017-08-15 08:44:37.374] [DEBUG] nodeJS - downloadFileFromStorage list  (id=10255751502778140_6323)
[2017-08-15 08:44:37.889] [ERROR] nodeJS - stdout (id=10255751502778140_6323):
[2017-08-15 08:44:37.893] [ERROR] nodeJS - stderr (id=10255751502778140_6323):
[2017-08-15 08:44:37.896] [ERROR] nodeJS - ExitCode (code=0;signal=SIGSEGV;error:-80;id=10255751502778140_6323)
[2017-08-15 08:44:37.910] [DEBUG] nodeJS - processUploadToStorage error complete(id=10255751502778140_6323)
[2017-08-15 08:44:37.911] [DEBUG] nodeJS - output (data={"cmd":{"c":"sfc","id":"10255751502778140","userid":"xxxx","data":null,"title":"output.","outputformat":2055,"outputpath":"output.","status_info":-80,"savekey":"10255751502778140_6323","useractionid":"xxxx"}};id=10255751502778140_6323)
[2017-08-15 08:44:37.912] [DEBUG] nodeJS - postProcess (id=10255751502778140_6323)
[2017-08-15 08:44:37.914] [DEBUG] nodeJS - deleteFolderRecursive (id=10255751502778140_6323)

This also shows up in the error folder. But when I copy the corresponding params.xml and execute x2t on it, it converts flawlessly and generates a file output.docx (the extension is automatically added, apparently). The params.xml looks like this:

<?xml version="1.0" encoding="utf-8"?><TaskQueueDataConvert xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><m_sKey>10255751502778140_6323</m_sKey><m_sFileFrom>/tmp/ASC_CONVERT117715-gah74b.lwq7b0ggb9/source/Editor.bin</m_sFileFrom><m_sFileTo>/tmp/ASC_CONVERT117715-gah74b.lwq7b0ggb9/result/output.</m_sFileTo><m_nFormatTo>2055</m_nFormatTo><m_nCsvTxtEncoding xsi:nil="true" /><m_nCsvDelimiter xsi:nil="true" /><m_nCsvDelimiterChar xsi:nil="true" /><m_bPaid xsi:nil="true" /><m_bEmbeddedFonts xsi:nil="true" /><m_bFromChanges>true</m_bFromChanges><m_sFontDir>/usr/share/fonts</m_sFontDir><m_sThemeDir>/var/www/onlyoffice/documentserver/sdkjs/slide/themes</m_sThemeDir><m_nDoctParams xsi:nil="true" /><m_sPassword xsi:nil="true" /><m_oTimestamp>2017-08-15T06:44:37.366Z</m_oTimestamp></TaskQueueDataConvert>

Also note that after the failed conversion the following conversion is executed automatically (this is all after returning to NC), which finishes without error:

[2017-08-15 08:44:38.399] [DEBUG] nodeJS - Start Task(id=conv_1025575_docx)
[2017-08-15 08:44:38.401] [DEBUG] nodeJS - ExitCode (code=0;signal=null;error:-1;id=conv_1025575_docx)
[2017-08-15 08:44:38.403] [DEBUG] nodeJS - output (data={"cmd":{"c":"conv","id":"conv_1025575_docx","format":"","url":null,"title":"output.docx","outputformat":65,"outputpath":"output.docx","codepage":46,"delimiter":4,"embeddedfonts":false,"status_info":-1}};id=conv_1025575_docx)
[2017-08-15 08:44:38.403] [DEBUG] nodeJS - postProcess (id=conv_1025575_docx)
[2017-08-15 08:44:38.405] [DEBUG] nodeJS - deleteFolderRecursive (id=conv_1025575_docx)

Do you have an idea what the issue could be?

@pi-xel

Couldn't automatically recognize conversion direction from extensions.

Could you try to convert docx to doct (our internal format) and see if there is any errors?

@ShockwaveNN That works without problems.

@pi-xel could you attach those docx 懈 doct

@ShockwaveNN See attached.

test.zip

Edit: Also converting back from doct to docx works well, see file attached.

testout.docx

@pi-xel ok, seems your documentserver should work fine with any docx files.
But which files cause Couldn't automatically recognize conversion direction from extensions?

This occurs whenever the output file is not a docx or doct. And it seems the error when going back to NC occurs because a file output. is expected, but a file output.docx is generated.

@pi-xel does this happen also with xlsx -> xlst and pptx -> pptt or they working fine?

@ShockwaveNN Behavior is exactly the same as with word files, conversion to internal format and *x formats works. But when I convert from xlst to xlsx I get a bus error. Seems like something is screwed up :-/

@pi-xel How much RAM do you have on your device? And did you enable swap?
Seems like there is not enought ram for convertion process, it's pretty memory consuming.
To be clear:
odt->docx/docx->odt and rtf->docx/docx->rtf crash either?

@ShockwaveNN I have 2GB Ram+2GB Swap.

Odt Docx works. The others I cannot test right now coz I'm on the road.

@pi-xel 2GB ram is enough, but you should try to add more swap. At least 4gb

@ShockwaveNN added more swap, but still seg fault.

@pi-xel hm, this is bad. Seems we out of options, we need real hardware to debug these problems. I'm cannot give any precise forecasts when we able to do it, sorry.

@ShockwaveNN Could you maybe check the following debug outputs of valgrind?

valgrind --track-origins=yes --leak-check=full /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t params.xml

Output:

==2954== Memcheck, a memory error detector
==2954== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2954== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==2954== Command: /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t params.xml
==2954== 
==2954== Conditional jump or move depends on uninitialised value(s)
==2954==    at 0xB8482C: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==2954==  Uninitialised value was created by a heap allocation
==2954==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==2954== 
==2954== Conditional jump or move depends on uninitialised value(s)
==2954==    at 0xB84B46: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==2954==  Uninitialised value was created by a heap allocation
==2954==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==2954== 
==2954== Use of uninitialised value of size 4
==2954==    at 0xB84B4A: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==2954==  Uninitialised value was created by a heap allocation
==2954==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==2954== 
==2954== Use of uninitialised value of size 4
==2954==    at 0xD823AA: BinDocxRW::CDocxSerializer::saveToFile(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==2954==  Uninitialised value was created by a heap allocation
==2954==    at 0x483F570: operator new[](unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==2954== 
disInstr(thumb): unhandled instruction: 0xDEFF 0x3301
==2954== Conditional jump or move depends on uninitialised value(s)
==2954==    at 0x657AA6A: PdfWriter::CInfoDict::SetInfo(PdfWriter::EInfoType, PdfWriter::TDate const&) (in /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so)
==2954==  Uninitialised value was created by a stack allocation
==2954==    at 0x657ABE4: PdfWriter::CInfoDict::SetCreationTime() (in /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so)
==2954== 
==2954== 
==2954== HEAP SUMMARY:
==2954==     in use at exit: 117,287 bytes in 1,203 blocks
==2954==   total heap usage: 94,429 allocs, 93,226 frees, 113,629,884 bytes allocated
==2954== 
==2954== 4,952 (212 direct, 4,740 indirect) bytes in 33 blocks are definitely lost in loss record 3 of 5
==2954==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==2954== 
==2954== LEAK SUMMARY:
==2954==    definitely lost: 212 bytes in 33 blocks
==2954==    indirectly lost: 4,740 bytes in 1 blocks
==2954==      possibly lost: 0 bytes in 0 blocks
==2954==    still reachable: 112,335 bytes in 1,169 blocks
==2954==         suppressed: 0 bytes in 0 blocks
==2954== Reachable blocks (those to which a pointer was found) are not shown.
==2954== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==2954== 
==2954== For counts of detected and suppressed errors, rerun with: -v
==2954== ERROR SUMMARY: 840 errors from 6 contexts (suppressed: 6 from 3)

valgrind --track-origins=yes --leak-check=full -v /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t params.xml

Output:

==4413== Memcheck, a memory error detector
==4413== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4413== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==4413== Command: /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t params.xml
==4413== 
--4413-- Valgrind options:
--4413--    --track-origins=yes
--4413--    --leak-check=full
--4413--    -v
--4413-- Contents of /proc/version:
--4413--   Linux version 3.10.105+ (root@odroid-wheezy) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP PREEMPT Mon Aug 7 10:09:24 CEST 2017
--4413-- 
--4413-- Arch and hwcaps: ARM, LittleEndian, ARMv7-neon-vfp
--4413-- Page sizes: currently 4096, max supported 4096
--4413-- Valgrind library directory: /usr/lib/valgrind
--4413-- Reading syms from /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t
--4413--   Reading EXIDX entries: 32794 available
--4413--   Reading EXIDX entries: 27964 attempted, 9059 successful
--4413-- Reading syms from /lib/arm-linux-gnueabihf/ld-2.24.so
--4413--   Considering /usr/lib/debug/.build-id/75/1f93f9b4c918ac20f604dcced51789e265e6bd.debug ..
--4413--   .. build-id is valid
--4413-- Scheduler: using generic scheduler lock implementation.
--4413-- Reading suppressions file: /usr/lib/valgrind/default.supp
==4413== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-4413-by-root-on-???
==4413== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-4413-by-root-on-???
==4413== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-4413-by-root-on-???
==4413== 
==4413== TO CONTROL THIS PROCESS USING vgdb (which you probably
==4413== don't want to do, unless you know exactly what you're doing,
==4413== or are doing some strange experiment):
==4413==   /usr/lib/valgrind/../../bin/vgdb --pid=4413 ...command...
==4413== 
==4413== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==4413==   /path/to/gdb /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t
==4413== and then give GDB the following command
==4413==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=4413
==4413== --pid is optional if only one valgrind process is running
==4413== 
--4413-- REDIR: 0x40129c1 (ld-linux-armhf.so.3:strlen) redirected to 0x5806597c (???)
--4413-- REDIR: 0x4013280 (ld-linux-armhf.so.3:memcpy) redirected to 0x580659a8 (???)
--4413-- REDIR: 0x40123d1 (ld-linux-armhf.so.3:strcmp) redirected to 0x58065ab4 (???)
--4413-- Reading syms from /usr/lib/valgrind/vgpreload_core-arm-linux.so
--4413--   Considering /usr/lib/valgrind/vgpreload_core-arm-linux.so ..
--4413--   .. CRC mismatch (computed 3d69e0ef wanted 7be3a533)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so
--4413--   Considering /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so ..
--4413--   .. CRC mismatch (computed 8afa9749 wanted b0c10c17)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libicuuc.so.55.1
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1715 available
--4413--   Reading EXIDX entries: 1367 attempted, 958 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libicudata.so.55.1
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so
--4413--   Reading EXIDX entries: 3909 available
--4413--   Reading EXIDX entries: 3361 attempted, 2668 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libdoctrenderer.so
--4413--   Reading EXIDX entries: 2429 available
--4413--   Reading EXIDX entries: 1938 attempted, 932 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libHtmlRenderer.so
--4413--   Reading EXIDX entries: 3581 available
--4413--   Reading EXIDX entries: 3082 attempted, 2524 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfReader.so
--4413--   Reading EXIDX entries: 3991 available
--4413--   Reading EXIDX entries: 3380 attempted, 2733 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libDjVuFile.so
--4413--   Reading EXIDX entries: 4908 available
--4413--   Reading EXIDX entries: 4272 attempted, 2690 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libXpsFile.so
--4413--   Reading EXIDX entries: 3467 available
--4413--   Reading EXIDX entries: 2989 attempted, 2439 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libHtmlFile.so
--4413--   Reading EXIDX entries: 169 available
--4413--   Reading EXIDX entries: 137 attempted, 66 successful
--4413-- Reading syms from /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libUnicodeConverter.so
--4413--   Reading EXIDX entries: 1579 available
--4413--   Reading EXIDX entries: 1239 attempted, 658 successful
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libz.so.1.2.8
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libxml2.so.2.9.1
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libcurl-gnutls.so.4.3.0
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libpthread-2.24.so
--4413--   Considering /usr/lib/debug/.build-id/fb/0b220115a5e6a0321bf8d4d07aac3263b7bc51.debug ..
--4413--   .. build-id is valid
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libm-2.24.so
--4413--   Considering /usr/lib/debug/.build-id/03/8588ac2b5f56516ac8862e25aebcde691edac5.debug ..
--4413--   .. build-id is valid
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libc-2.24.so
--4413--   Considering /usr/lib/debug/.build-id/b4/0f9bdb21077f61c86bde15228b7ee54332aff0.debug ..
--4413--   .. build-id is valid
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libdl-2.24.so
--4413--   Considering /usr/lib/debug/.build-id/54/0496302c54fcea123e53ffcfcf15e5c60e65d1.debug ..
--4413--   .. build-id is valid
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.24
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 2132 available
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
--4413--   Reading EXIDX entries: 1682 attempted, 748 successful
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libgcc_s.so.1
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 34 available
--4413--   Reading EXIDX entries: 21 attempted, 21 successful
--4413-- Reading syms from /lib/arm-linux-gnueabihf/liblzma.so.5.0.0
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libidn.so.11.6.12
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/librtmp.so.1
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libssh2.so.1.0.1
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libnettle.so.4.7
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libnettle.so.4.7 ..
--4413--   .. CRC mismatch (computed 507b014e wanted 67df71e3)
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libgnutls-deb0.so.28.41.0
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libgssapi_krb5.so.2.2
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libgssapi_krb5.so.2.2 ..
--4413--   .. CRC mismatch (computed 90e3c2ce wanted 623ccb3d)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libkrb5.so.3.3
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libkrb5.so.3.3 ..
--4413--   .. CRC mismatch (computed fb84f762 wanted 85001b9a)
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libk5crypto.so.3.1
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libk5crypto.so.3.1 ..
--4413--   .. CRC mismatch (computed 4b02b818 wanted 9863f25c)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libcom_err.so.2.1
--4413--   Considering /lib/arm-linux-gnueabihf/libcom_err.so.2.1 ..
--4413--   .. CRC mismatch (computed 0370e30b wanted adef1931)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/liblber-2.4.so.2.10.3
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libldap_r-2.4.so.2.10.3
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libhogweed.so.2.5
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libhogweed.so.2.5 ..
--4413--   .. CRC mismatch (computed fbe84344 wanted 654cbc19)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libgmp.so.10.2.0
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libgcrypt.so.20.1.6
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libp11-kit.so.0.3.0
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libtasn1.so.6.5.4
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libkrb5support.so.0.1
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libkrb5support.so.0.1 ..
--4413--   .. CRC mismatch (computed 7840994f wanted 7c0c0dcc)
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libkeyutils.so.1.5
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libresolv-2.24.so
--4413--   Considering /usr/lib/debug/.build-id/4e/7fb4e3130c494113df2fe64081118870a32ad4.debug ..
--4413--   .. build-id is valid
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libsasl2.so.2.0.25
--4413--    object doesn't have a symbol table
--4413-- Reading syms from /lib/arm-linux-gnueabihf/libgpg-error.so.0.21.0
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 1 available
--4413--   Reading EXIDX entries: 0 attempted, 0 successful
--4413-- Reading syms from /usr/lib/arm-linux-gnueabihf/libffi.so.6.0.2
--4413--   Considering /usr/lib/arm-linux-gnueabihf/libffi.so.6.0.2 ..
--4413--   .. CRC mismatch (computed ff45d300 wanted 9c868785)
--4413--    object doesn't have a symbol table
--4413--   Reading EXIDX entries: 32 available
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
==4413==   Warning: whilst reading EXIDX: ExtabEntryDecode: failed with error code: -10
--4413--   Reading EXIDX entries: 23 attempted, 21 successful
--4413-- REDIR: 0x9114c80 (libc.so.6:memcpy) redirected to 0x4829604 (_vgnU_ifunc_wrapper)
--4413-- REDIR: 0x9114a30 (libc.so.6:memset) redirected to 0x4845e30 (memset)
--4413-- REDIR: 0x9119340 (libc.so.6:__memcpy_neon) redirected to 0x4843dc4 (memcpy)
--4413-- REDIR: 0x91138e1 (libc.so.6:rindex) redirected to 0x4841974 (rindex)
--4413-- REDIR: 0x9113641 (libc.so.6:strlen) redirected to 0x4842164 (strlen)
--4413-- REDIR: 0x9110319 (libc.so.6:malloc) redirected to 0x483e45c (malloc)
--4413-- REDIR: 0x9112db1 (libc.so.6:strcmp) redirected to 0x48433b4 (strcmp)
--4413-- REDIR: 0x9110a39 (libc.so.6:calloc) redirected to 0x4840ba8 (calloc)
--4413-- REDIR: 0x9112cf1 (libc.so.6:index) redirected to 0x4841bc4 (index)
--4413-- REDIR: 0x915b155 (libc.so.6:__memcpy_chk) redirected to 0x4847070 (__memcpy_chk)
--4413-- REDIR: 0x9110741 (libc.so.6:free) redirected to 0x483fa80 (free)
--4413-- REDIR: 0x91107ed (libc.so.6:realloc) redirected to 0x4840e34 (realloc)
--4413-- REDIR: 0x6dcfb3d (NONE:operator new(unsigned int)) redirected to 0x483ec40 (operator new(unsigned int))
--4413-- REDIR: 0x9119ee5 (libc.so.6:wcslen) redirected to 0x4847648 (wcslen)
--4413-- REDIR: 0x911440d (libc.so.6:bcmp) redirected to 0x48454dc (bcmp)
--4413-- REDIR: 0x6dcfb01 (NONE:operator new[](unsigned int)) redirected to 0x483f4e4 (operator new[](unsigned int))
--4413-- REDIR: 0x6dd0ed5 (NONE:operator delete[](void*)) redirected to 0x4840740 (operator delete[](void*))
--4413-- REDIR: 0x6dd0ee1 (NONE:operator delete(void*)) redirected to 0x48400e0 (operator delete(void*))
--4413-- REDIR: 0x91146f0 (libc.so.6:memmove) redirected to 0x4845f1c (memmove)
--4413-- REDIR: 0x9114afd (libc.so.6:stpncpy) redirected to 0x4845ce4 (stpncpy)
--4413-- REDIR: 0x9113fc5 (libc.so.6:strstr) redirected to 0x48471a0 (strstr)
--4413-- REDIR: 0x9114371 (libc.so.6:memchr) redirected to 0x4843684 (memchr)
--4413-- REDIR: 0x9116159 (libc.so.6:strchrnul) redirected to 0x484682c (strchrnul)
==4413== Conditional jump or move depends on uninitialised value(s)
==4413==    at 0xB8482C: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
==4413== Conditional jump or move depends on uninitialised value(s)
==4413==    at 0xB84B46: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
==4413== Use of uninitialised value of size 4
==4413==    at 0xB84B4A: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
--4413-- REDIR: 0x91137cd (libc.so.6:strncmp) redirected to 0x4842a9c (strncmp)
==4413== Use of uninitialised value of size 4
==4413==    at 0xD823AA: BinDocxRW::CDocxSerializer::saveToFile(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483F570: operator new[](unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
--4413-- REDIR: 0x91138ad (libc.so.6:strncpy) redirected to 0x484255c (strncpy)
disInstr(thumb): unhandled instruction: 0xDEFF 0x3301
--4413-- memcheck GC: 1000 nodes, 4 survivors (0.4%)
--4413-- memcheck GC: 1000 nodes, 8 survivors (0.8%)
--4413-- memcheck GC: 1000 nodes, 2 survivors (0.2%)
--4413-- memcheck GC: 1000 nodes, 11 survivors (1.1%)
--4413-- memcheck GC: 1000 nodes, 1 survivors (0.1%)
--4413-- memcheck GC: 1000 nodes, 1 survivors (0.1%)
--4413-- memcheck GC: 1000 nodes, 1 survivors (0.1%)
==4413== Conditional jump or move depends on uninitialised value(s)
==4413==    at 0x657AA6A: PdfWriter::CInfoDict::SetInfo(PdfWriter::EInfoType, PdfWriter::TDate const&) (in /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so)
==4413==  Uninitialised value was created by a stack allocation
==4413==    at 0x657ABE4: PdfWriter::CInfoDict::SetCreationTime() (in /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so)
==4413== 
==4413== 
==4413== HEAP SUMMARY:
==4413==     in use at exit: 117,287 bytes in 1,203 blocks
==4413==   total heap usage: 94,429 allocs, 93,226 frees, 113,629,884 bytes allocated
==4413== 
==4413== Searching for pointers to 1,203 not-freed blocks
==4413== Checked 1,869,724 bytes
==4413== 
==4413== 4,952 (212 direct, 4,740 indirect) bytes in 33 blocks are definitely lost in loss record 3 of 5
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
==4413== LEAK SUMMARY:
==4413==    definitely lost: 212 bytes in 33 blocks
==4413==    indirectly lost: 4,740 bytes in 1 blocks
==4413==      possibly lost: 0 bytes in 0 blocks
==4413==    still reachable: 112,335 bytes in 1,169 blocks
==4413==         suppressed: 0 bytes in 0 blocks
==4413== Reachable blocks (those to which a pointer was found) are not shown.
==4413== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==4413== 
==4413== ERROR SUMMARY: 840 errors from 6 contexts (suppressed: 6 from 3)
==4413== 
==4413== 1 errors in context 1 of 6:
==4413== Conditional jump or move depends on uninitialised value(s)
==4413==    at 0x657AA6A: PdfWriter::CInfoDict::SetInfo(PdfWriter::EInfoType, PdfWriter::TDate const&) (in /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so)
==4413==  Uninitialised value was created by a stack allocation
==4413==    at 0x657ABE4: PdfWriter::CInfoDict::SetCreationTime() (in /mnt/applications/www/onlyoffice/documentserver/server/FileConverter/bin/libPdfWriter.so)
==4413== 
==4413== 
==4413== 6 errors in context 2 of 6:
==4413== Use of uninitialised value of size 4
==4413==    at 0xB84B4A: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
==4413== 
==4413== 6 errors in context 3 of 6:
==4413== Conditional jump or move depends on uninitialised value(s)
==4413==    at 0xB84B46: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
==4413== 
==4413== 6 errors in context 4 of 6:
==4413== Conditional jump or move depends on uninitialised value(s)
==4413==    at 0xB8482C: DocFileFormat::StyleSheetMapping::Apply(DocFileFormat::IVisitable*) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483ECCC: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
==4413== 
==4413== 820 errors in context 5 of 6:
==4413== Use of uninitialised value of size 4
==4413==    at 0xD823AA: BinDocxRW::CDocxSerializer::saveToFile(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) (in /mnt/applications/onlyoffice/DocumentServer/core/build/bin/linux_32/x2t)
==4413==  Uninitialised value was created by a heap allocation
==4413==    at 0x483F570: operator new[](unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==4413== 
--4413-- 
--4413-- used_suppression:      6 dl-hack3-cond-1 /usr/lib/valgrind/default.supp:1236
==4413== 
==4413== ERROR SUMMARY: 840 errors from 6 contexts (suppressed: 6 from 3)

(many ==4413== Warning: whilst reading EXIDX: ExtabEntryExtract: bytecode can't be represented removed for better readability)

Can you make something of this?

@pi-xel

94,429 allocs, 93,226 frees

This is just a small memory leak, it's not leaked enough to crash by this
We got some ideas, why it crashed, and we think we need a global refactor to fix it, so can't give any estimates

@ShockwaveNN Ok, thanks for your help. If I can be of any help in debugging / testing please let me know.

Hi @pi-xel,

I am trying to install the onlyoffice in my BananaPi with Nextcloud, but I am quite new to compilling. Could you share the compiled Onlyoffice for ARM or give me some insight on how to compile it myself?

+1 for @pi-xel
I would also like to have an OnlyOffice version compiled for Odroid XU4 working with the OnlyOffice nextcloud connector.

@ShockwaveNN : Is there at least some place where you can get the source for your .deb packages, so we can use them as a base for building arm debs?

@teacupx Sorry, source of deb files currently in private repo, since it contain some private information.
But you can extract files by using dpkg-deb -R onlyoffice-documentserver_amd64.deb onlyoffice-deb-sources, and have access to postinst and other files

@pi-xel
Hey, it seems like you are the only person who has been able to compile the Document Server for ARM in human history, and it is darn difficult to do that again (I tried for many hours).
If you could share your binaries somehow, there's a lot of us who would be very thankful :)

@teacupx If you follow the discussion more closely you may realize that I never got onlyoffice properly working on arm. According to @ShockwaveNN there has been a memory leak that I was not able to debug and fix myself. Dunno if in the meantime there has been some activity on that issue.

I gave up on getting OnlyOffice to work on arm and do not have any (partially working) binaries anymore that I could share.

@pi-xel Thank you very much, I had noticed about the memory leak, but other commentaries made me think that it was just a bug with certain files and worked for the most.

Your commentary comes in very timely, I also gave up about trying to compile Collabora in arm a couple minutes ago 馃槂 . Let's hope we can get some online office suite working for arm soon, there are lots of people using arm machines as home cloud servers and it could be really useful.

Absolutely. I keep stumbling over this thread every few months, and there still doesn't seem to be an alternative to WebODF.

Any news? Still waiting...

@jsanfe sorry, no news

still waiting... +1

I keep stumbling over this thread every few months, and there still doesn't seem to be an alternative to WebODF.

Maybe next year?

Would also love to see this working on Arm. With the Pi4 and others like it, there are some interesting possibilities for using ONLYOFFICE in many different situations

I also tried every possible way of using the x86 binaries with qemu on an ARM machine, with no success. Seems like compiling natively for ARM is the way to go.

The market is steadily moving towards ARM, here some recent examples:
Microsoft Surface Pro laptop with ARM https://www.theverge.com/2019/10/1/20887386/microsoft-surface-event-pro-7-arm-windows-laptops
Apple's ARM-based Mac is on the way https://www.youtube.com/watch?v=m301pUSGK50
Lenovo servers https://blogs.oracle.com/linux/new-lenovo-servers-with-ampere-arm-processors-now-qualified-on-oracle-linux
Samsung laptop https://www.theinquirer.net/inquirer/review/3081260/samsung-galaxy-book-s-hands-on
And of course a Raspberry 4 for each household...

@ShockwaveNN

Seems we out of options, we need real hardware to debug these problems. I'm cannot give any precise forecasts when we able to do it, sorry.

Just in case this could be useful - you can rent ARM instance at Scaleway or Huawei Cloud (Kunpeng CPU).

@RussianNeuroMancer Yeah, thanks, now we got several raspberry pi-es at our office, but there is no real progress on this task

Last week, there was an announcement that after a long and intense collaboration between Nextcloud and OnlyOffice, the latest Nextcloud beta now has OnlyOffice integrated right out of the box. Since Nextcloud has been available for ARM as well, I assume we will soon have OnlyOffice running on our ARM devices, anyone who can confirm?
https://www.techrepublic.com/article/how-to-enable-the-onlyoffice-document-server-in-nextcloud-18/

No that doesn't seem to be a development priority. But at least the new php based community document server should not be too hard to get working on ARM.

@JeroenAdam no, that seems to be a marketing thing, the so-called Nextcloud Hub. They include an auto installing addon that pulls a dynamically linked binary of onlyoffice from their x86_64 docker image and put that bin under /usr/bin as if it's supposed to work in all environments. End result is (surprise surprise), it doesn't work in most environments.

Hello,

I don't know if this is a little bit off topic here, but AFAIK ARM support for ONLIOFFICE is far from being done, so I'm writing here:

I've managed to successfully run the documentserver on my ARM64v8 board (ODROID N2 4GB) and by now it works really fine: I've edited 10/15 docx, xlsx and pptx files simultaneously (also same docx in collaborative mode) and as expected the server was much of the time idle, confirming that a 4GB machine can handle 75/150 users with ease.
I'm using the AMD64 official images from docker hub.
The trick?
I'm using QUEMU USER MODE (aptman/qus docker image) to emulate AMD64 on ARM64v8. It works really fine, although I think is not ready at all for a production environment.
This because the first time I've run it the board suddenly hung: probably a kernel panic, but not sure since the board is headless and I didn't got any message to catch the real cause.
Well, actually that happened only once when I opened the very first docx, since that I had no problems at all anymore.

The AMD64 image doesn't works out of the box, I had to make a modification.
The NGINX service didn't starts correctly, since it try to load a lua interpreter module (nginx-module-lua, loading ngx_http_lua_module.so that fails for unknown reasons).
ngx_http_lua_module.so is part of the "nginx-extras" package and I think that it shall be removed form the enabled modules adding following command in the docker file:

rm /etc/nginx/modules-enabled/50-mod-http-lua.conf

I don't have an ARMv7 32bit board to check out if it works also there.

detailed instructions to run it:

install and register (permanently) the QUS for x86_64:
docker run --rm --privileged aptman/qus -s -- -p x86_64
-p: register permanently the QUS on the kernel (so you can run x86_64 code until unregister also in containers)
x86_64: the target platform to emulate
(please refer to the QUS project for more details)

I use following docker compose file, docker-compose.yml:

version: '3'
services:
  onlyoffice-document-server:
    container_name: onlyoffice-document-server
    image: onlyoffice/documentserver:latest
    stdin_open: true
    tty: true
    restart: unless-stopped
    networks:
      - onlyoffice
    ports:
      - '80:80'
      - '443:443'
    volumes:
       - ./document_data:/var/www/onlyoffice/Data
       - ./document_log:/var/log/onlyoffice
       - ./document_fonts:/usr/share/fonts/truetype/custom
       - ./document_forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten
networks:
  onlyoffice:
    driver: 'bridge'

docker-compose up -d
since nginx fails to load, we shall remove the 50-mod-http-lua.conf file in the running container and restart it:
NOTE: this shall be done every time the container is recreated, so after a pull-update or if you run "docker-compose down"

docker-compose exec onlyoffice-document-server rm /etc/nginx/modules-enabled/50-mod-http-lua.conf
docker-compose stop
docker-compose up -d

Although an ARMv7 processor as Exynos 5 on the ODROID XU4 board is a little bit low in performances, the AMD64 image runs just fine on it with QUS.
ODROID XU4 has 2GB of RAM and 8 cores (big.LITTLE). Armbian 20.04 configured with 1 GB of SWAP on ZRAM (on disk 8GB swap was not used).
The main problem is that the docker image got more than 30minutes to complete start up first time (mainly to make innitial conversion of files using gzip).
After the startup, RAM usage is 1.2/1,4GB with 200MB swap and the CPU is idle most of the time also opening and editing documents. The performances of the emulated CPU is about 1/5 of the native (I did a very simple test timing gzip compression of same file on both native and emulated CPU)

Im pretty sure it can just works fine on a Raspberry Pi with 2GB of RAM (although the raspy ARM CPU is very poor if compare to the CPU in ODROID XU4). Anyway, except for very poor startup time, I think that also on Raspy the document server would be usable.
Anyway, the startup time is very slow since at each startup the script /usr/bin/documentserver-generate-allfonts.sh is called to regenerate fonts and the Presentation themes (why?). If we omit that tasks, the server gets ready in less than 3 minutes.

immagine
immagine

Although an ARMv7 processor as Exynos 5 on the ODROID XU4 board is a little bit low in performances, the AMD64 image runs just fine on it with QUS.

Well, I tried to run your compose file, only changing ports to '800:80' and '4430:443', but it fails with the following output:
Creating network "docker_onlyoffice" with driver "bridge"
Creating onlyoffice-document-server ... done
Attaching to onlyoffice-document-server
onlyoffice-document-server |
onlyoffice-document-server |
onlyoffice-document-server | #
onlyoffice-document-server | # Fatal error in , line 0
onlyoffice-document-server | # unreachable code
onlyoffice-document-server | #
onlyoffice-document-server | #
onlyoffice-document-server | #
onlyoffice-document-server | #FailureMessage Object: 0x407ffde0unable to get current timestamp: Operation not permitted
onlyoffice-document-server | #
/app/ds/run-document-server.sh: line 160: -3: substring expression < 0
onlyoffice-document-server | : forward host lookup failed: Unknown server error
onlyoffice-document-server | Waiting for connection to the host on port

OK, it works if instead of using the qus docker container, I simply install qemu-user-static version 5.0-14~bpo10+1, from buster-backports.

OK, it works if instead of using the qus docker container, I simply install qemu-user-static version 5.0-14~bpo10+1, from buster-backports.

It's works, thanks! but, I don't understand why.
How is it possible? I mean, the image is for AMD64, how docker use qemu? Detects automatically if you have qemu or something?

It's works, thanks! but, I don't understand why.
How is it possible? I mean, the image is for AMD64, how docker use qemu? Detects automatically if you have qemu or something?

The Linux Kernel has a capability named "binfmt_misc", that allows any executable file format to be recognized and passed to certain userspace application, like an emulator. When you install qemu-user-static on Debian, it also installs as a dependency the package "binfmt-support", which gives the kernel a list of "registers" that tells them which of the qemu binaries must be used to run each type of executable. It does so based on the "magic number" that the kernel finds on the executable: think of those "magic numbers" as fingerprints that identify each type of executable.

And also, I have found some way to run DocumentServer much faster and with a much smaller memory footprint than the Docker image, using native packages for everything but DS, that runs emulated. For that purpose, we install the amd64 deb package, but before that we modify the dependencies in the control file, so that the linked libraries are amd64 but the rest of the binaries are native ARM.

These are the steps on Debian Buster with the backports repository enabled. I take as an example the armhf architecture, replace with arm64 if needed:

  1. sudo -i
  2. apt install qemu binfmt-support qemu-user-static -t buster-backports
  3. dpkg --add-architecture amd64
  4. apt update && apt install libc6:amd64
  5. apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
  6. echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | tee /etc/apt/sources.list.d/onlyoffice.list
  7. apt update && apt download onlyoffice-documentserver:amd64
  8. dpkg-deb -R onlyoffice-documentserver*.deb output
  9. nano output/DEBIAN/control
  10. Modify the "Depends" line, making it look like this:
    Depends: debconf:armhf (>= 0.5) | debconf-2.0:armhf, adduser:armhf, ca-certificates:armhf, coreutils:armhf, curl:armhf, libasound2, libcairo2, libcurl3 | libcurl4, libcurl3-gnutls, libgconf-2-4, libgtk-3-0, libstdc++6 (>= 4.8.4), libxml2, libxss1, libxtst6, logrotate:armhf, mysql-client:armhf | mariadb-client:armhf, nginx-extras:armhf (>= 1.3.13), postgresql-client:armhf (>= 9.1), pwgen:armhf, supervisor:all (>= 3.0b2), xvfb:armhf, zlib1g
  11. dpkg-deb -b output onlyoffice-documentserver-modified.deb
  12. dpkg -i onlyoffice-documentserver-modified.deb
  13. apt -f install
  14. After this, follow the instructions to configure your system for DocumentServer: https://helpcenter.onlyoffice.com/server/linux/document/linux-installation.aspx

You can also use the installed mariadb and nginx to run a Nextcloud instance. The total memory used on a combined Nextcloud/Onlyoffice system with this method is well below 1Gb.

hi,
is this method also working with armbian buster?

hi,
is this method also working with armbian buster?

I am using it on Armbian Buster :)

@SebastGG
I tried it, the server looks running (When I go to the website is says documentsercer is running), but for whatever reason I cannot connect to it with nextcloud. Like it configures, but I cannot find a way to make it work now. Could be a problem with redirecting port to my local up and stuff, but I am not able to solve it and documentation isn't really good for this scenario...

hi,
is this method also working with armbian buster?

I am using it on Armbian Buster :)

How? I installed it on my rpi4, configured it in nextcloud, but I get only a blank page in both desktop editors and the nextcloud website.

How? I installed it on my rpi4, configured it in nextcloud, but I get only a blank page in both desktop editors and the nextcloud website.

I'll post a copy of the config files when I get home

I'll post a copy of the config files when I get home

I haven't met domain for science to buy raspberry pi 3 dirt redirects everything did need something more powerful into my internal network. I use apache and socat

I'll post a copy of the config files when I get home

I assume you have Nextcloud configured with nginx, and some DNS service pointing nextcloud.mydomain.com to your public IP. You will also need onlyoffice.mydomain.com pointing to that same public IP.

Now, to configure Onlyoffice, you can follow this tutorial: https://www.howtoforge.com/how-to-install-onlyoffice-document-server-on-debian-10/

This is how the relevant config files must look like after you finished your configuration:
https://pastebin.com/vbWs3es5
https://pastebin.com/6Deu21ix
https://pastebin.com/F71qA15f

I assume you have Nextcloud configured with nginx, and some DNS service pointing nextcloud.mydomain.com to your public IP. You will also need onlyoffice.mydomain.com pointing to that same public IP.

I have nextcloud with Apache. Mydomain.com points to public IP of my pi3 and apache redirects nextcloud.mydomain.com to internal network where the server is and same for only office. I haven't been able to find if I should forward another port, but I found nothing.

Was this page helpful?
0 / 5 - 0 ratings