database is locked error when using reroute
@foxcpp is already working on this.
Since Apr 12, 2026.
Assessment
This issue has not been assessed yet.
Description
Describe the bug
I am trying to implement a simple mailing-list-like functionality using maddy only. I have added a corresponding configuration block so that recipients of emails addressed to a specified address get rewritten according to an aliases file and delivered either locally or injected to the remote queue. However when I send an email to both the mailing list address and some other address on the server, the IMAP database seems to get deadlocked with the email failing to deliver and breaking the delivery of any further emails until the restart of maddy.
Steps to reproduce
Modify the default configuration file as below and send an email addressed to both mailing.list@example.org and postmaster@example.org.
Log files
imapsql: readUids (listMsgUidsRecent) []: database is locked {"mbox":"INBOX","mboxId":1,"username":"postmaster@example.org","uid":1}
imapsql: GetMailbox [INBOX]: imapsql: serialization failure, try again later {"username":"postmaster@example.org","uid":1}
smtp: DATA error {"msg_id":"dc377837","reason":" GetMailbox INBOX: imapsql: serialization failure, try again later"}
Configuration file
I use the default configuration file with the following block added to the top of the default local_routing msgpipeline:
destination mailing.list@example.org {
modify {
replace_rcpt file /etc/maddy/mailing-list
}
reroute {
destination mailing.list@example.org {
reject 550 5.1.1 "User doesn't exist"
}
destination postmaster $(local_domains) {
deliver_to &local_routing
}
default_destination {
deliver_to &remote_queue
}
}
}
I also tried swapping the deliver_to &local_routing line above for deliver_to &local_mailboxes with the same outcome.
Note that the default destination postmaster $(local_domains) section is still present below the above to facilitate delivery to addresses different than the virtual mailing list.
Environment information
- maddy version: 0.8.1 on glibc-based Void Linux
- Dominant language
- Go
- Stars
- 6.1k
- Forks
- 327
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from foxcpp/maddy
-
ready-for-release
Difficulty 1/5 Under an hour Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 25/100
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
bug invalid
-
bug
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
bug group: validation priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
codecheckers/chekhov#51 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100