カテゴリー
その他 社内SE

Collabora Onlineで接続エラー “Failed to add session to XXXX” を解決

Collabora Onlineをアップデートしたら、NextCloudで”ドキュメントの読み込みに失敗 NextCloud Officeが読み込めませんでした – しばらく後でもう一度試してください”というエラーが表示され、Office系のファイルが開けなくなった。

エラーの内容としては以下の感じである。

WRN  Waking up dead poll thread [HttpSynReqPoll], started: false, fin
ished: false| net/Socket.hpp:725
ERR  #30: Read failed, have 0 buffered bytes (EPIPE: Broken pipe)
ERR  #30: Socket write returned -1 (EPIPE: Broken pipe)
ERR  loading document exception: WOPI::CheckFileInfo failed:
ERR  Failed to add session to [https://hogehoge.com:443/index.
php/apps/richdocuments/wopi/files/52797_ocic20zydkap] with URI [https://hogehoge.com/index.php/apps/richdocuments/wopi/files/52797_ocic20zydkap?access_token=dcy91ZZq9mSvxv1XsGrW2ucmp8CmFcu4&access_tok
en_ttl=0]: WOPI::CheckFileInfo failed:

この「Failed to add session to」はCollaboraがNextCloudに接続できないときに出力されるエラーで、例えば上なら、「hogehoge.com」の名前解決が出来ていないケースが多く、/etc/hostsやらDNSやらで名前解決すれば動くことが多い。だが、今回はアップデート前は動いていたため、名前解決のエラーではない。

結論から言うとIPv6を無効にすると無事動作した。

諸事情で、このサーバの設定では、ポートをLISTENするプログラムは徹底してIPv4のみ有効として設定した。Collaboraも設定ファイルのnet.protにIPv4を設定しIPv4のみ有効とした。

通常のサーバならIPv6も有効にするところだが、本サーバはさくらの専用サーバで、さくらの専用サーバはIPv6の提供をやめてしまっており、IPv4でしか接続できない。なのでIPv6をLISTENするソケットは可能な限り削除した。

1日いろいろ設定をいじりまわって、Collaboraを別サーバで動かすことまで考えて、最後のあがきでIPv6を無効にしたところするっと動作した。理由はわからないが、CollaboraがIPv6でNextCloudに接続しようとしていて、接続エラーとなっていたと思われる。

同じような人がいるかもしれないので、ご参考まで。

Ubuntu 22でIPv6を仮で無効にするには以下のコマンド。

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.lo.disable_ipv6=1

これで動くようになればIPv6が原因である。原因がIPv6であれば以下のコマンドで恒久的にIPv6を無効にする。(ubuntu 20以下だと以下のコマンドはバグで動作しないので注意。)

vi /etc/sysctl.d/60-custom.conf
---
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
--

sysctl -p
systemctl restart procps