Hi!

This is on our backlog already as DOP-2294, lets see if we get it forward at 
some point.

Aki

> On 29/06/2021 12:48 Bucher, Dr. Damian <[email protected]> wrote:
> 
>  
> Hi,
> 
> we ran into a problem, while using filesystem snapshots on a GPFS-filesystem. 
> With this we want to give the users the opportunity to restore Mailboxes from 
> this snapshots in case they deleted mail by accident.
> 
> For each snapshot we create a namespace via a postlogin skript (with 
> INDEX=MEMORY to avoid writing index files to a ro filesystem). The snapshot 
> are of course read only.
> When accessing the mailboxes in the namespaces, dovecot generates an error 
> (ro filesystem):
> Error: Mailbox #backup20/Mail/deleted-messages: open() failed with mbox: 
> Read-only file system
> 
> 
> We tracked that down to a problem in src/lib-storage/index/mbox/mbox-file.c 
> (yes, we are still using mbox ;) )
> 
> fd = open(mailbox_get_path(&mbox->box),
>                   mbox_is_backend_readonly(mbox) ? O_RDONLY : O_RDWR);
>         if (fd == -1 && errno == EACCES && !mbox->backend_readonly) {
>                 mbox->backend_readonly = TRUE;
>                 fd = open(mailbox_get_path(&mbox->box), O_RDONLY);
>         }
> 
> Here the mailbox is opened and it is checked wether the file is ro or rw.
> Since the snapshot contains the original file permissions, the file is of 
> course rw, but the filesystem is ro.
> Unfortunately the code only checks for file permissions (errno == EACCES), 
> which doesn’t catch our error condition (FS ro).
> 
> We think that exchanging this to (errno == EACCESS || errno == EROFS) would 
> catch the file system ro error correctly and set the readonly flag correctly 
> and open the mailbox ro.
> (this probably hast to be done for other mailbox formats in the corresponding 
> files too)
> 
> What do you think? Is there a chance to implement that in an upcoming release?
> 
> Best regards
> Damian
> 
> — 
> Postmaster@WWU
> WWU IT
> Westfälische Wilhelms-Universität (WWU) Münster
> Röntgenstr. 7-13, 48149 Münster
> 
> mailto:[email protected]

Reply via email to