Frequent disk writes on .tmp-config.v2.json and .tmp-hostconfig.json

Since I set up bitwarden on my small home server I noticed, that there are many disk writes, so I investigated this using fatrace (logs below) and found out, that there are many writes on files called .tmp-config.v2.json and .tmp-hostconfig.json, all on bitwarden containers only (there are also some non-bitwarden containers running; they are not showing that behaviour). When I stop bitwarden, the magic stops.

This is not just annoying (because I hear the noise of the hard disk in my flat), but also increases disk wear. Even worse for those on an SSD (or even worse SD_Cards in Raspberry PIs). Also this compromises all my attempts to shut down my hard disk for saving energy.

I also tried it with a fresh install in a new directory and it shows the exact same behaviour ,so it is reproducible.
I cannot say, if this was also happening with older versions, because I just started using bitwarden (came over from Enpass).

I am not a docker pro, only found out so far, that the containers may try to change their host config themselves.

Any hints on what causes it, how to disable it or how to investigate it further?

Side question: when will unified become stable? I guess chances are high, that it does not show that behaviour? I’ll give the beta a try, but I am not sure if I can trust it already…

Here are my versions:

bitwarden.sh version 2022.12.0
Docker version 19.03.8, build afacb8b7f0
docker-compose version 1.21.0, build unknown

And here some relevant information/logs:

# docker ps | grep bitwarden
e4ca4baa359b        bitwarden/nginx:2022.12.0           "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)            80/tcp, 0.0.0.0:20000->8080/tcp, 0.0.0.0:20443->8443/tcp   bitwarden-nginx
eb403a5f6c17        bitwarden/admin:2022.12.0           "/entrypoint.sh"         4 minutes ago       Up 4 minutes (unhealthy)          5000/tcp                                                   bitwarden-admin
6ae4ef0ba5aa        bitwarden/web:2022.12.0             "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)                                                                       bitwarden-web
a32293867c65        bitwarden/sso:2022.12.0             "/entrypoint.sh"         4 minutes ago       Up 4 minutes (unhealthy)          5000/tcp                                                   bitwarden-sso
9f76d9571b4e        bitwarden/mssql:2022.12.0           "/entrypoint.sh"         4 minutes ago       Up 5 seconds (health: starting)                                                              bitwarden-mssql
1d28528e7831        bitwarden/notifications:2022.12.0   "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)            5000/tcp                                                   bitwarden-notifications
ea86ebd8a168        bitwarden/events:2022.12.0          "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)            5000/tcp                                                   bitwarden-events
435bc8cb46d3        bitwarden/attachments:2022.12.0     "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)                                                                       bitwarden-attachments
4dc08c72d4ff        bitwarden/icons:2022.12.0           "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)            5000/tcp                                                   bitwarden-icons
b6e727153309        bitwarden/api:2022.12.0             "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)            5000/tcp                                                   bitwarden-api
9d32cd0ef14c        bitwarden/identity:2022.12.0        "/entrypoint.sh"         4 minutes ago       Up 4 minutes (healthy)            5000/tcp                                                   bitwarden-identity

# fatrace -t -c -f W | grep config
07:33:31.861931 dockerd(441): W /srv/docker/containers/6ae4ef0ba5aae187659bddb3189a04b646332e8f365c0e6780ed95b0169ca1a5/.tmp-config.v2.json227024986
07:33:31.865972 dockerd(441): W /srv/docker/containers/6ae4ef0ba5aae187659bddb3189a04b646332e8f365c0e6780ed95b0169ca1a5/.tmp-hostconfig.json750188529
07:33:31.894145 dockerd(441): CW /srv/docker/containers/6ae4ef0ba5aae187659bddb3189a04b646332e8f365c0e6780ed95b0169ca1a5/.tmp-hostconfig.json750188529
07:33:31.919447 dockerd(441): CW /srv/docker/containers/6ae4ef0ba5aae187659bddb3189a04b646332e8f365c0e6780ed95b0169ca1a5/.tmp-config.v2.json227024986
07:33:36.276912 dockerd(441): W /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-config.v2.json668400796
07:33:36.279441 dockerd(441): W /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-hostconfig.json894544203
07:33:36.330267 dockerd(441): CW /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-hostconfig.json894544203
07:33:36.363724 dockerd(441): CW /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-config.v2.json668400796
07:33:36.702071 dockerd(441): W /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-hostconfig.json258923445
07:33:36.731040 dockerd(441): CW /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-hostconfig.json258923445
07:33:38.411031 dockerd(441): W /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-config.v2.json981442960
07:33:38.413900 dockerd(441): W /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-hostconfig.json509758895
07:33:38.462331 dockerd(441): CW /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-hostconfig.json509758895
07:33:38.528930 dockerd(441): CW /srv/docker/containers/9f76d9571b4eb3a32e141c91f32065dbd5fccadc4d9c9017e6b318a1842047df/.tmp-config.v2.json981442960
07:33:40.776817 dockerd(441): W /srv/docker/containers/435bc8cb46d3c709de77919454ea4baa5fd332010617ec2a5a799129fe0b492e/.tmp-config.v2.json289540930
07:33:40.779953 dockerd(441): W /srv/docker/containers/435bc8cb46d3c709de77919454ea4baa5fd332010617ec2a5a799129fe0b492e/.tmp-hostconfig.json634227641
07:33:40.817108 dockerd(441): CW /srv/docker/containers/435bc8cb46d3c709de77919454ea4baa5fd332010617ec2a5a799129fe0b492e/.tmp-hostconfig.json634227641
07:33:40.859585 dockerd(441): CW /srv/docker/containers/435bc8cb46d3c709de77919454ea4baa5fd332010617ec2a5a799129fe0b492e/.tmp-config.v2.json289540930
07:33:42.327128 dockerd(441): W /srv/docker/containers/9d32cd0ef14cb74d6b09f7301e2d6c5cb15e87b72981b3defd2b331177fa7c1f/.tmp-config.v2.json536085444
07:33:42.330565 dockerd(441): W /srv/docker/containers/9d32cd0ef14cb74d6b09f7301e2d6c5cb15e87b72981b3defd2b331177fa7c1f/.tmp-hostconfig.json937194067
07:33:42.368623 dockerd(441): CW /srv/docker/containers/9d32cd0ef14cb74d6b09f7301e2d6c5cb15e87b72981b3defd2b331177fa7c1f/.tmp-hostconfig.json937194067
07:33:42.401974 dockerd(441): CW /srv/docker/containers/9d32cd0ef14cb74d6b09f7301e2d6c5cb15e87b72981b3defd2b331177fa7c1f/.tmp-config.v2.json536085444
07:33:43.536505 dockerd(441): W /srv/docker/containers/eb403a5f6c17cfc644e2433effab7f5bc1f9aea2d5a5946f13e40d229369fe7c/.tmp-config.v2.json141263254
07:33:43.539939 dockerd(441): W /srv/docker/containers/eb403a5f6c17cfc644e2433effab7f5bc1f9aea2d5a5946f13e40d229369fe7c/.tmp-hostconfig.json031248381
07:33:43.579524 dockerd(441): CW /srv/docker/containers/eb403a5f6c17cfc644e2433effab7f5bc1f9aea2d5a5946f13e40d229369fe7c/.tmp-hostconfig.json031248381
07:33:43.610992 dockerd(441): CW /srv/docker/containers/eb403a5f6c17cfc644e2433effab7f5bc1f9aea2d5a5946f13e40d229369fe7c/.tmp-config.v2.json141263254
07:33:44.346818 dockerd(441): W /srv/docker/containers/1d28528e78311888ffaddf9ca2a728b11204e0da72cc35264c35a3e74e2f895f/.tmp-config.v2.json671333688
07:33:44.350225 dockerd(441): W /srv/docker/containers/1d28528e78311888ffaddf9ca2a728b11204e0da72cc35264c35a3e74e2f895f/.tmp-hostconfig.json388784951
07:33:44.386805 dockerd(441): CW /srv/docker/containers/1d28528e78311888ffaddf9ca2a728b11204e0da72cc35264c35a3e74e2f895f/.tmp-hostconfig.json388784951
07:33:44.420150 dockerd(441): CW /srv/docker/containers/1d28528e78311888ffaddf9ca2a728b11204e0da72cc35264c35a3e74e2f895f/.tmp-config.v2.json671333688
07:33:45.738677 dockerd(441): W /srv/docker/containers/ea86ebd8a168d37b14ff1fe65dcb8d9fb0b2fe6656e2a670a47df496e838cbb5/.tmp-config.v2.json382109994
07:33:45.741917 dockerd(441): W /srv/docker/containers/ea86ebd8a168d37b14ff1fe65dcb8d9fb0b2fe6656e2a670a47df496e838cbb5/.tmp-hostconfig.json743271553
07:33:45.779231 dockerd(441): CW /srv/docker/containers/ea86ebd8a168d37b14ff1fe65dcb8d9fb0b2fe6656e2a670a47df496e838cbb5/.tmp-hostconfig.json743271553
07:33:45.812756 dockerd(441): CW /srv/docker/containers/ea86ebd8a168d37b14ff1fe65dcb8d9fb0b2fe6656e2a670a47df496e838cbb5/.tmp-config.v2.json382109994
07:33:46.105299 dockerd(441): W /srv/docker/containers/b6e727153309d4d3d32cc11e519ab90362f4e47913c43fb21522f6b109a1dee3/.tmp-config.v2.json996244972
07:33:46.109588 dockerd(441): W /srv/docker/containers/b6e727153309d4d3d32cc11e519ab90362f4e47913c43fb21522f6b109a1dee3/.tmp-hostconfig.json896373339
07:33:46.138089 dockerd(441): CW /srv/docker/containers/b6e727153309d4d3d32cc11e519ab90362f4e47913c43fb21522f6b109a1dee3/.tmp-hostconfig.json896373339
07:33:46.163165 dockerd(441): CW /srv/docker/containers/b6e727153309d4d3d32cc11e519ab90362f4e47913c43fb21522f6b109a1dee3/.tmp-config.v2.json996244972
07:33:49.810556 dockerd(441): W /srv/docker/containers/e4ca4baa359bcf5d71ff05648007543dbf7551b791a88e868236a5dab674c325/.tmp-config.v2.json236112382
07:33:49.813695 dockerd(441): W /srv/docker/containers/e4ca4baa359bcf5d71ff05648007543dbf7551b791a88e868236a5dab674c325/.tmp-hostconfig.json907699525
07:33:49.848402 dockerd(441): CW /srv/docker/containers/e4ca4baa359bcf5d71ff05648007543dbf7551b791a88e868236a5dab674c325/.tmp-hostconfig.json907699525
07:33:49.873575 dockerd(441): CW /srv/docker/containers/e4ca4baa359bcf5d71ff05648007543dbf7551b791a88e868236a5dab674c325/.tmp-config.v2.json236112382
07:33:50.311408 dockerd(441): W /srv/docker/containers/4dc08c72d4ffe2da7b12efab0337f20c3790f8d11153511b2db2f0f50cc592ab/.tmp-config.v2.json509901280
07:33:50.340770 dockerd(441): W /srv/docker/containers/4dc08c72d4ffe2da7b12efab0337f20c3790f8d11153511b2db2f0f50cc592ab/.tmp-hostconfig.json278266303
07:33:50.382340 dockerd(441): CW /srv/docker/containers/4dc08c72d4ffe2da7b12efab0337f20c3790f8d11153511b2db2f0f50cc592ab/.tmp-hostconfig.json278266303
07:33:50.415870 dockerd(441): CW /srv/docker/containers/4dc08c72d4ffe2da7b12efab0337f20c3790f8d11153511b2db2f0f50cc592ab/.tmp-config.v2.json509901280

Thank you everyone for the provided help.

Hey @0815fox if you don’t get any responses here, feel free to contact the support team at https://bitwarden.com/contact/

@0815fox
I am curious but just do not have an idea. Therefore please let us know if you learn something new.

Hi,

These writes are due to the container healthchecks. With 11 containers, there are 11 healthchecks, which is why Bitwarden writes more often than other docker containers!

Here’s the sections of code responsible:

While not recommended, if you wished to override the standard Bitwarden Healthcheck settings, you could do so by using a docker-compose.override.yml. Instructions can be found here:

It would also be possible to use a RAMdisk via symlink.

3 Likes