Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Message

Re: Frequent 4.0b1 crashes on FreeBSD

2007-08-28 by Stuart Freedman

--- In milter-greylist@yahoogroups.com, Oliver Fromme <olli@...> wrote:
> So your DSIZE is limited to 512 MB (hard limit).  How
> big does your milter-greylist process get?  It is quite
> possible that you're hitting the limit.
> 
> If that's the case, try increasing the hard limit (it's
> a kernel variable that can be changed statically in the
> kernel config, or changed via a loader tunable).
> 
> The following two lines in your /boot/loader.conf file
> will set both hard and soft limits for the data segment
> size to 1 GB:
> 
> kern.maxdsiz="1073741824"
> kern.dfldsiz="1073741824"
> 
> Best regards
>    Oliver

I saw the milter-greylist process hanging right around/above the 512MB
value for a while before it would crash.  I have taken your suggestion
re the data size definition, and so far so good on the servers I've
rebooted to take the values.  (The real test will not come 'til the
load starts rising again tomorrow morning, though!)

BTW, after sticking in the additional debug output, my crash error
message now looks like this:
milter-greylist: milter-greylist.c:770 malloc failed: Cannot allocate
memory

This line number corresponds to this chunk of code (770 being the
mg_log function), given the way the line numbers shifted when I stuck
the error messages in the ugly way :-) :

                i++; /* Include the \n in this chunk */
                linelen = priv->priv_buflen + i;
 
                if ((b->b_lines = malloc(linelen + 1)) == NULL) {
/*                      mg_log(LOG_ERR, "malloc() failed: %s",
strerror(errno));
*/
mg_log(LOG_ERR, "%s:%d malloc failed: %s", __FILE__, __LINE__,
strerror(errno));
                        exit(EX_OSERR);
                }

Thank you, and best regards to you both, Oliver & Emmanuel!

        Stuart

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.