haiwen/seafile-client

[linux client] notif-mgr.c(194): failed to create libwebsockets context

Closed this issue · 3 comments

I see an error message in the ~/.ccnet/logs/seafile.log file every second or so:

[11/14/24 19:52:10] seaf-daemon.c(558): starting seafile client 9.0.11
[11/14/24 19:52:10] seafile-session.c(390): client id = b0aadf53f1b3ee6c793dc3ac48e1c2d25b654f37, client_name = host
[11/14/24 19:52:10] socket file exists, delete it anyway
[11/14/24 19:52:10] seaf-daemon.c(587): rpc server started.
[11/14/24 19:52:11] start to serve on pipe client
[11/14/24 19:52:11] start to serve on pipe client
[11/14/24 19:52:11] start to serve on pipe client
[11/14/24 19:52:11] start to serve on pipe client
[11/14/24 19:52:11] sync-mgr.c(1677): File syncing protocol version on server https://server.com is 2. Client file syncing protocol version is 2. Use version 2.
[11/14/24 19:52:12] start to serve on pipe client
[11/14/24 19:52:12] start to serve on pipe client
[11/14/24 19:52:12] sync-mgr.c(1759): Notification server is enabled on the remote server https://server.com.
[11/14/24 19:52:13] notif-mgr.c(763): failed to create libwebsockets context
[11/14/24 19:52:13] notif-mgr.c(194): failed to create libwebsockets context
[11/14/24 19:52:14] notif-mgr.c(763): failed to create libwebsockets context
[11/14/24 19:52:14] notif-mgr.c(194): failed to create libwebsockets context
[11/14/24 19:52:14] notif-mgr.c(763): failed to create libwebsockets context
[11/14/24 19:52:14] notif-mgr.c(194): failed to create libwebsockets context

The notification server is configured behind a nginx server and get /ping returns an expected ping response.

I checked the source code, it seems like I need a ca-bundle.pem file in the seaf->seaf_dir (Seafile/.seafile-data) directory, but it's not there.
How should it be created?

server: 11.0.16
client: 9.0.11

FYI, I copied it manually from the server (/usr/share/easy-rsa/pki/certs_by_serial) and the error is gone.
However, it triggered a new error on the server side:
failed to upgrade http to websocket: websocket: the client is not using the websocket protocol: 'websocke
t' token not found in 'Upgrade' header

Update: I have disabled http/2 (```http2 off;````) and it started to work finally

@killing have you fixed it? Could you point to a commit id, please?

  1. the certificate file should be created (or copied from the server) automatically
  2. documentation should highlight that websockets does not work over http/2 (as there is no clear standard yet)