From: Vsevolod Stakhov Date: Thu, 25 Feb 2016 16:57:34 +0000 (+0000) Subject: Increase stack size after fork X-Git-Tag: 1.2.0~169 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=416e987cd6d43927e01220068ec40e693ce7757e;p=thirdparty%2Frspamd.git Increase stack size after fork --- diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c index 41f6e3ef24..3d62e10964 100644 --- a/src/libserver/worker_util.c +++ b/src/libserver/worker_util.c @@ -472,6 +472,8 @@ rspamd_fork_worker (struct rspamd_main *rspamd_main, { struct rspamd_worker *wrk; gint rc; + struct rlimit rlim; + /* Starting worker process */ wrk = (struct rspamd_worker *) g_malloc0 (sizeof (struct rspamd_worker)); @@ -514,6 +516,12 @@ rspamd_fork_worker (struct rspamd_main *rspamd_main, rspamd_worker_drop_priv (rspamd_main); /* Set limits */ rspamd_worker_set_limits (rspamd_main, cf); + /* Re-set stack limit */ + getrlimit (RLIMIT_STACK, &rlim); + rlim.rlim_cur = 100 * 1024 * 1024; + rlim.rlim_max = rlim.rlim_cur; + setrlimit (RLIMIT_STACK, &rlim); + setproctitle ("%s process", cf->worker->name); rspamd_pidfile_close (rspamd_main->pfh); /* Do silent log reopen to avoid collisions */ diff --git a/src/libutil/util.c b/src/libutil/util.c index b0376ca1e5..9ba67e1e64 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -1998,6 +1998,7 @@ rspamd_init_libs (void) /* Set stack size for pcre */ getrlimit (RLIMIT_STACK, &rlim); rlim.rlim_cur = 100 * 1024 * 1024; + rlim.rlim_max = rlim.rlim_cur; setrlimit (RLIMIT_STACK, &rlim); #ifdef GMIME_ENABLE_RFC2047_WORKAROUNDS