Hello, I would like to know how exactly you performed an update and deployed that. Am having the same problem with Celery.
Hi @Senzenjani the process depends on what you have installed currently. Do you know which build of CommcareHQ you are on?
@erobinson Am running commcare on monolith environment and on python3.10.
I think I've caught this bug!
Have a look at ansible/roles/ecryptfs/tasks/main.yml
: the task "Create {{ encrypted_root }}/blobdb directory for setups that do not use NFS" has condition when: not shared_drive_enabled
. This is supposed to evaluate to true (since shared_drive_enabled
is false on a monolith), however the tasks apparently do not execute.
My hunch is that Ansible is treating shared_drive_enabled
as string value "False", rather than boolean false
. The solution would be to cast to bool by changing the condition to when: not shared_drive_enabled|bool
.
Ansible 2.8+ is supposed to handle this correctly, but mileage varies. Also, grepping for shared_drive_enabled
through the CC playbooks shows all of them have that |bool
cast.
BTW the task (if it would run) creates the blobdb
directory with owner nobody:nfs
and mode 0775
. I suppose it should just be cchq:cchq
and 0755
, like it gets when created under the shared drive.
Thank you for raising this @zwets !
This is an interesting one. I can see that there are 10 instances in the commcare_cloud codebase where shared_drive_enabled
is cast using "|bool
", but there are 8 instances where it is not.
I'll take a closer look.
If you are experiencing this problem in a cluster environment, I think the simplest approach would be for you to set "shared_drive_enabled: False
" in your environment's public.yml
.
(Regarding the ownership of the NFS blobdb directory: I think that depends on how ID mapping is configured on the clients and server.)