acmesh-official / acmesh-official/acme.sh
$domain.conf emptied when disk is full
- Dominant language
- Shell
- Stars
- 47.6k
- Forks
- 5.7k
- Avg merge
- 6d 5h
- Merged PRs (30d)
- 15
Description
When there's no space left on device, $domain.conf is emptied. Leaving not-renewable state even after space is freed.
```
# acme.sh --version
https://github.com/acmesh-official/acme.sh
v3.1.4
# cat /etc/debian_version
11.11
# acme.sh --list
Main_Domain KeyLength SAN_Domains Profile CA Created Renew
"" LetsEncrypt.org
"" LetsEncrypt.org
"" LetsEncrypt.org
"" LetsEncrypt.org
"" LetsEncrypt.org
# ls -al --sort=time $HOME/.acme.sh/$domain
total 40
-rw-r--r-- 1 root root 0 Aug 9 00:20 $domain.conf
-rw-r--r-- 1 root root 1001 Aug 9 00:20 $domain.csr
-rw-r--r-- 1 root root 188 Aug 9 00:20 $domain.csr.conf
drwx------ 11 root root 4096 Jun 22 00:20 ..
-rw-r--r-- 1 root root 3872 Jun 6 00:21 ca.cer
-rw-r--r-- 1 root root 1785 Jun 6 00:21 $domain.cer
-rw-r--r-- 1 root root 5657 Jun 6 00:21 fullchain.cer
drwxr-xr-x 3 root root 4096 Sep 27 2022 .
drwxr-xr-x 2 root root 4096 Sep 27 2022 backup
-rw------- 1 root root 1679 Sep 27 2022 $domain.key
```
Contributor guide
Research direction
Look at the code that writes $domain.conf, likely in the main acme.sh script or a helper. Search for file write operations and error handling when disk is full. The issue is that the file is emptied instead of left intact or failing safely. Test by simulating a full disk (e.g., with dd) and running a renewal to see the behavior. Check if there's a backup or atomic write pattern that could be used.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- cli, security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100