New Folders not showing when created until restart of docker container

I’m having a weird issue with our Cells 2.2.7 docker container. It doesn’t always happen but for some reason when a user creates a folder within the web ui, that folder does not show up until I log in via ssh and restart the docker container for cells. Could this be a caching issue? I can’t find the setting within the admin console on the cells web ui if it is.

Any help is greatly appreciated.

Hello @Robert_Tucker

I apologize for the late reply,

Your issue is indeed weird, could you give me a quick list of your setup (os, specs RAM and CPU ,reverse proxy or not, mounts etc…)

Sorry for the late reply.

Running on

Fedora 32
Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
16 GB RAM

Running behind a Apache2 Reverse Proxy on the same physical machine.

Using the pydio/cells docker image

Hello @Robert_Tucker ,

Do you have a directive to proxy/rewrite the websocket requests in your apache config, I believe it might be the issue.

The UI is using the websocket to listen to events and act accordingly, for instance if you upload a file it will update the UI to show it when the event is sent(when the server received the file).

In your apache config, the following settings will enable this.

	RewriteCond %{HTTP:Upgrade} =websocket [NC]
	RewriteRule /(.*) ws://localhost:8080/$1 [P,L]

(make sure to have RewriteEngine On)

or

	ProxyPassMatch "/ws/(.*)" ws://localhost:8080/ws/$1 nocanon

In my case Cells is not running with TLS, but i believe for TLS you need wss instead of ws.

        AllowEncodedSlashes On
        RewriteEngine On
        SSLProxyEngine On
        SSLProxyVerify None
        SSLProxyCheckPeerCN Off
        SSLProxyCheckPeerName Off

        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteRule /(.*) wss://0.0.0.0:8081/$1 [P,L]

        ProxyPassMatch "/ws(.*)" wss://0.0.0.0:8081/ws/$1 nocanon

        ProxyPass "/" "https://0.0.0.0:8081/" nocanon
        ProxyPassReverse "/" "https://0.0.0.0:8081/" nocanon

Here’s my config file within httpd.

Hello @Robert_Tucker ,

Your config seems good, the only difference with mine would be the SSL directives,
could you try the following steps and tell me the result:

  • open your browser dev tool and go to the ws tab
  • browse to any workspace
  • (make sure that you are correctly subscribed to the websocket and click on event(in the Name column) and go to messages (see screenshot below)
  • create a folder or upload something and see if the events are appearing

By the way if you wish to give a try with my config here is the sample,

<VirtualHost *:80>
	ServerName my-cells.eu
	Redirect permanent / https://my-cells.eu
	RewriteEngine on
	RewriteCond %{SERVER_NAME} =my-cells.eu
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
	ServerName my-cells.eu

	ErrorLog ${APACHE_LOG_DIR}/cells-error.log
	CustomLog ${APACHE_LOG_DIR}/cells-access.log combined

	AllowEncodedSlashes On
    RewriteEngine On

	#SSLProxyEngine On
	#SSLProxyCheckPeerCN Off
	#SSLProxyCheckPeerName Off
	#SSLProxyVerify none

	ProxyPass "/" "http://my-cells.eu:8080/"
	ProxyPassReverse "/" "http://my-cells.eu:8080/"
	
	RewriteCond %{HTTP:Upgrade} =websocket [NC]
	RewriteRule /(.*) ws://my-cells.eu:8080/$1 [P,L]
	ProxyPassMatch "/ws/(.*)" ws://my-cells.eu:8080/ws/$1 nocanon
</VirtualHost>

unfortunately they seem to be appearing correctly. And at the moment the folders are appearing correctly as well. seems like it is a cache issue that once it gets full on the server it doesn’t allow it to refresh until the container is restarted. I hate phantom problems that don’t consistently happen.