Removing a directory blob makes arti unable to start up
If our sqlite db has a reference to a diretory blob, but the blob file does not exist or is not accessible, then arti will exit without recovering.
To reproduce:
- Start arti, let it bootstrap, and then exit with ctrl-c.
- Remove
~/.cache/arti/dir_blobs/*
. (Or whatever your local equivalent is.) - Try to start arti again.
For me, I get the output:
2024-06-12T13:07:16Z INFO arti: Starting Arti 1.2.4 in SOCKS proxy mode on localhost port 9150 ...
2024-06-12T13:07:16Z INFO arti_client::client: Using keystore from "/home/nickm/.local/share/arti/keystore"
./target/quicktest/arti: error: bootstrap: tor: cache access problem: Unable to bootstrap a working directory:
Bad permissions in cache directory: File or directory ${HOME}/.cache/arti/dir_blobs/con_microdesc_sha3-256-c18016c7c40833ab36668dd2e25feb2e9c97709ceb19882c1159075f8e952ec1 not found
This may be one root cause of onionmasq#92 (closed).