When a user renames their username, I am using dsync to copy their mail over to the new username's mail location[0].
Some of the dsyncs are failing with errors that I dont know how to work with, for example:
dsync(<username>): Error: Trying to open a non-listed mailbox with guid=41fcd40303c8a64e432300007ef44c7a dsync(<username>): Error: msg iteration failed: Couldn't open mailbox 41fcd40303c8a64e432300007ef44c7a dsync(<username>): Error: Trying to open a non-listed mailbox with guid=41fcd40303c8a64e432300007ef44c7a dsync(<username>): Error: Trying to open a non-listed mailbox with guid=42fcd40303c8a64e432300007ef44c7a dsync(<username>): Error: Trying to open a non-listed mailbox with guid=43fcd40303c8a64e432300007ef44c7a dsync(<username>): Error: Trying to open a non-listed mailbox with guid=44fcd40303c8a64e432300007ef44c7a ERROR: dsync failed, exit code: 256
The errors cause a non-zero exit code from dsync, which causes my rename script to bail out. What are these errors, and how can I fix them?
Thanks, micah
Why use dsync instead of a simple mv operation? This seems to be necessary for two corner cases:
dovecot creates the new mailbox automatically when the user logs in or receives a mail, so if the user changes their mail and logs in or receives an email before the move has been done, then the mailbox is created and then a move command will fail.
If there has been new mail created under the new name, we can't just simply remove the stuff that is automatically created there and replace it with the old things because we could potentially be removing mail that has been delivered in the mean time.
I'd be really interested if people had suggestions for a better mechanism, or perhaps a way to have dovecot not create the new mail location automatically.
--