Dovecot does not start on MacOS 12.01

Steven Smith steve.t.smith at gmail.com
Sun Dec 19 17:03:43 UTC 2021


I plan to issue a PR to MacPorts’s dovecot port with the patch below on macOS 12.

Is anyone able to offer a better workaround, or explain the pitfalls of removing these non-working lines?

Patch:

> --- ./src/lib/restrict-process-size.c	2021-12-19 11:46:50.000000000 -0500
> +++ ./src/lib/restrict-process-size.c	2021-12-19 11:49:13.000000000 -0500
> @@ -9,18 +9,24 @@
>  {
>  	struct rlimit rlim;
>  
> -	rlim.rlim_max = rlim.rlim_cur = bytes;
> -	if (setrlimit(RLIMIT_DATA, &rlim) < 0) {
> -		i_fatal("setrlimit(RLIMIT_DATA, %llu): %m",
> -			(unsigned long long)bytes);
> -	}
>  
> -#ifdef HAVE_RLIMIT_AS
> -	if (setrlimit(RLIMIT_AS, &rlim) < 0) {
> -		i_fatal("setrlimit(RLIMIT_AS, %llu): %m",
> -			(unsigned long long)bytes);
> -	}
> -#endif
> +/*
> + * Workaround for issue with dovercot version 2.3.17 on macOS 12
> + * https://www.mail-archive.com/dovecot@dovecot.org/msg84784.html
> + * 
> + * 	rlim.rlim_max = rlim.rlim_cur = bytes;
> + * 	if (setrlimit(RLIMIT_DATA, &rlim) < 0) {
> + * 		i_fatal("setrlimit(RLIMIT_DATA, %llu): %m",
> + * 			(unsigned long long)bytes);
> + * 	}
> + * 
> + * #ifdef HAVE_RLIMIT_AS
> + * 	if (setrlimit(RLIMIT_AS, &rlim) < 0) {
> + * 		i_fatal("setrlimit(RLIMIT_AS, %llu): %m",
> + * 			(unsigned long long)bytes);
> + * 	}
> + * #endif
> +*/
>  }
>  
>  void restrict_process_count(rlim_t count ATTR_UNUSED)




> On Dec 19, 2021, at 12:00 PM, Steven Smith <steve.t.smith at gmail.com> wrote:
> 
> I confirm that a working workaround on macOS 12 is to simply remove these lines from ./src/lib/restrict-process-size.c:
> 
> https://github.com/dovecot/core/blob/a5209c83c3a82386c94d466eec5fea394973e88f/src/lib/restrict-process-size.c#L12-L23 <https://github.com/dovecot/core/blob/a5209c83c3a82386c94d466eec5fea394973e88f/src/lib/restrict-process-size.c#L12-L23>
> 
> 
>> On Dec 19, 2021, at 11:26 AM, Steven Smith <steve.t.smith at gmail.com <mailto:steve.t.smith at gmail.com>> wrote:
>> 
>> Re: https://www.mail-archive.com/dovecot@dovecot.org/msg84784.html <https://www.mail-archive.com/dovecot@dovecot.org/msg84784.html>
>> 
>> I just upgraded to macOS 12.1, ran into this issue, and discovered this thread from the error message.
>> 
>> Is there a viable workaround or patch yet?
>> 
>> I tried the workaround in this thread, and still see these issues.
>> 
>> Set default_vsz_limit = 0 in ./conf.d/10-master.conf.
>> 
>> Observe that:
>> dovecot now launches without the setrlimit(RLIMIT_DATA, 268435456) error at the command line
>> However, the mail-err.log is still filled with these errors (below), perhaps for the child processes.
>> 
>> Steve
>> 
>> 
>>> Dec 19 11:22:06 imap-login: Error: Dec 19 11:22:06 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:06 imap-login: Error: Dec 19 11:22:06 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:06 imap-login: Error: Dec 19 11:22:06 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:06 imap-login: Error: Dec 19 11:22:06 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:06 imap-login: Error: Dec 19 11:22:06 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:06 imap-login: Fatal: master: service(imap-login): child 4629 returned error 89 (Fatal failure)
>>> Dec 19 11:22:06 master: Error: service(imap-login): command startup failed, throttling for 2.000 secs
>>> Dec 19 11:22:06 imap-login: Fatal: master: service(imap-login): child 4630 returned error 89 (Fatal failure)
>>> Dec 19 11:22:06 imap-login: Fatal: master: service(imap-login): child 4628 returned error 89 (Fatal failure)
>>> Dec 19 11:22:06 imap-login: Fatal: master: service(imap-login): child 4627 returned error 89 (Fatal failure)
>>> Dec 19 11:22:06 imap-login: Fatal: master: service(imap-login): child 4619 returned error 89 (Fatal failure)
>>> Dec 19 11:22:06 imap-login: Error: Dec 19 11:22:06 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:06 imap-login: Fatal: master: service(imap-login): child 4631 returned error 89 (Fatal failure)
>>> Dec 19 11:22:09 imap-login: Error: Dec 19 11:22:09 service(imap-login): Fatal: setrlimit(RLIMIT_DATA, 2147483648): Invalid argument
>>> Dec 19 11:22:09 imap-login: Fatal: master: service(imap-login): child 4638 returned error 89 (Fatal failure)
>>> Dec 19 11:22:09 master: Error: service(imap-login): command startup failed, throttling for 4.000 secs
>> 
>> 
>> 
>> 
>>> On Mon, 1 Nov 2021 14:55:25 +0200, Aki Tuomi said:
>>> 
>>> I think this is happening because MacOS no longer supports RLIMIT_DATA. We'll 
>>> try to look into this. default_vsz_limit = 0 seems good enough workaround.
>>> Aki
>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20211219/cc7184e7/attachment.htm>


More information about the dovecot mailing list