Although you need to make sure you won't move experiments that actually belong in the trash 🙂
You can simply move them from the task_trash
collection to the task
collection 🙂
restart of clearml-server helped, as expected. Now we see all experiments (except for those that were written into task__trash during the “dark times”)
I expect it to be released in the next few days
OK, we're working on a fix, stay tuned for either v1.5.0 or v1.5.1 🙂
I think we can live without mass deleting for a while
I assume it's only triggered in mass deletes for now, so your options either to wait for a patch server version (a new version is about to be released, so we'll either make it to this version or push a patch version immediately after), or change your deployment to use gunicorn (which is a change of behavior, I know)
This is indeed a vulnerability and we'll fix that as soon as possible
So apparently it's possible threading is turned on by default (at least for specific Flask versions), so that's probably it
- name: CLEARML__APISERVER__PRE_POPULATE__ENABLED value: "false" - name: CLEARML__APISERVER__PRE_POPULATE__ZIP_FILES value: /opt/clearml/db-pre-populate - name: CLEARML_SERVER_DEPLOYMENT_TYPE value: helm-cloud
The rest are clearly credentials…
That's strange... Can you perhaps share the env vars passed to the apiserver deployment?
we’re running it with the older helm chart if that matters. anyways I can’t see anything related to Gunicorn in chart or configs.
SuccessfulKoala55 Hi Jake
We didn’t change anything related to gunicorn. Is there any specific thing I can check for?
Also I noticied that it’s not running the gunicorn as a command but loads it in the python code, I don’t think it’s possible to change the threading with env that way.
I'm not pretty sure multi-threading is the reason for this issue, and that restarting will solve it (but you will still need to move your new tasks from the trash collection to the normal collection).
However, I would like to understand the deployment changes you made since if you do not fix them, this might happen again...
SuccessfulKoala55 any ideas or should we restart?
we certainly modified some deployment conf, but lets wait for answers tomorrow
FiercePenguin76 I have a theory that this is cause by a thread-safety issue - the apiserver code-base is not designed to run in multiple threads right now and scale is handles by processes. Enabling threads in gunicorn may in theory cause this exact behavior
FiercePenguin76 one question - did you change by any chance anything related to the way gunicorn is spawning processes / threads when launching the apiserver pods?
but if you can check with me tomorrow before restarting that would be cool - I might think of something...
I’m rather sure that after restart everything will be back to normal. Do you want me to invoke smth via SDK or REST while the server is still in this state?
OK, that's a hint... I'll try to look at the code with that in mind
and my problem occurred right after I tried to delete ~1.5K tasks from a single subproject
The server's code only has a reference to the trash collection when deleting tasks, nowhere else 😮
task_trash_trash
is probably irrelevant, as the latest entry there is from Dec 2021