-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
activitylogs eventually fails to persists activities with "nats: maximum payload exceeded" #9462
Comments
We just looked into it briefly in zoom, apparently the default max. payload size in nats is 1MB and could be increased to 64MB but it's still a limit that could eventually be reached. |
@aduffeck
I am guessing this is an s3 specific error? |
Is there an option to change this value via an environment variable or the yml configuration? Looked into the nats service docs, but did not find anything. |
Very likely related #10173 |
I have also noticed that this problem seems to cause OCIS to use a lot more system resources than normal. If the ~7.5k file limit is survirly passed, OCIS will permanently use a lot more CPU and Disk time trying to persist the activities (while also causing huge log build-ups). For reference, I'm running a small installation on a raspberry pi 4, when the problem starts to occur (no uploading/online users) OCIS will permanently ramp up to about 45% CPU time and will permanently write to disk at about 12MB/s. The last part is particularly bad for the TTL of an SSD. This makes OCIS in its current state not really usable for small setups like mine, as it slows down the whole machine and wears out the SSD in the process. |
Yes. That would be my first approach too. |
Other alternative: We persist "old" activities to a (hidden) file in the file system, which can be displayed separately. |
@Kartoffelbauer if you don't necessarily need activities, you can just disable activitylog service ( |
They are stored in nats-js. So we would save "old" activities also to nats. At the moment we use the fileID as key. We could just extend that like fileID-1, fileID-2, ... In my opinion it is good enough to just drop "old" activities. But other option is feasible too. |
Consider also the performance because listing is usually expensive and not recommended on key-value stores. I'm talking mainly for redis, but it's possible that nats-js has similar limitations, so we should probably check this for all the officially supported stores. |
@kobergj We agree on purging the old entries for now. |
Describe the bug
The activitylog service eventually runs into the problem that it can no longer persist new activities when the maximum payload size of the underlying store is reached. The space root is the first resource to run into that problem as events bubble up the tree to the root.
Steps to reproduce
Expected behavior
New activities should be persisted.
Actual behavior
New activities are no longer persisted, the log shows errors like
The text was updated successfully, but these errors were encountered: