I am seeing the following being logged
Dec 2 00:16:26 rosalia postfix/postscreen[8147]: fatal: bad numerical
configuration: postscreen_client_connection_count_limit =
Dec 2 00:16:27 rosalia postfix/master[5648]: warning: process
/usr/lib/postfix/postscreen pid 8147 exit status 1
Dec 2 00:16:27 rosalia postfix/master[5648]: warning:
/usr/lib/postfix/postscreen: bad command startup -- throttling
Here is the postconf output for the mentioned parameter (no change from
default)
postconf postscreen_client_connection_count_limit
output:
postscreen_client_connection_count_limit =
$smtpd_client_connection_count_limit
postconf smtpd_client_connection_count_limit
output:
smtpd_client_connection_count_limit = 50
If I explicitly put this in the main.cf
postscreen_client_connection_count_limit = 50
and restart postfix, do not get the error message.
John
I am unable to reproduce this. Maybe there was some
unprintable garbage in your first main.cf entry? If you try
it again do you get the same results?
-- Noel Jones
- I don't set values for postscreen_client_connection_count_limit and
smtpd_client_connection_count_limit in main.cf (so defaults are used)
OR
- I set postscreen_client_connection_count_limit =
$smtpd_client_connection_count_limit in main.cf and do not set a value
for smtpd_client_connection_count_limit in main.cf (so default is used)
Seems that postscreen_client_connection_count_limit does not want to be
initialized from the default value of smtpd_client_connection_count_limit.
John
--- postscreen.c.orig 2010-12-02 01:24:25.000000000 +0100
+++ postscreen.c 2010-12-02 01:29:23.000000000 +0100
@@ -301,6 +301,7 @@
* Configuration parameters.
*/
int var_proc_limit;
+int var_smtpd_cconn_limit;
char *var_smtpd_service;
char *var_smtpd_banner;
char *var_smtpd_forbid_cmds;
@@ -864,6 +865,7 @@
};
static const CONFIG_INT_TABLE int_table[] = {
VAR_PROC_LIMIT, DEF_PROC_LIMIT, &var_proc_limit, 1, 0,
+ VAR_SMTPD_CCONN_LIMIT, DEF_SMTPD_CCONN_LIMIT,
&var_smtpd_cconn_limit, 0, 0,
VAR_PS_DNSBL_THRESH, DEF_PS_DNSBL_THRESH, &var_ps_dnsbl_thresh, 0, 0,
VAR_PS_CMD_COUNT, DEF_PS_CMD_COUNT, &var_ps_cmd_count, 1, 0,
0,
Confirmed. I have two machines with postscreen. One has
smtpd_client_connection_count_limit in main.cf, and the other has
postscreen_client_connection_count_limit in main.cf. None had
both parameters left at their defaults.
Wietse
*** /var/tmp/postfix-2.8-20101130/src/postscreen/postscreen.c Tue Nov 30 17:42:19 2010
--- src/postscreen/postscreen.c Wed Dec 1 19:38:19 2010
***************
*** 351,356 ****
--- 351,357 ----
int var_ps_cmd_count;
char *var_ps_cmd_time;
+ int var_smtpd_cconn_limit;
int var_ps_cconn_limit;
/*
***************
*** 866,871 ****
--- 867,873 ----
VAR_PROC_LIMIT, DEF_PROC_LIMIT, &var_proc_limit, 1, 0,
VAR_PS_DNSBL_THRESH, DEF_PS_DNSBL_THRESH, &var_ps_dnsbl_thresh, 0, 0,
VAR_PS_CMD_COUNT, DEF_PS_CMD_COUNT, &var_ps_cmd_count, 1, 0,
+ VAR_SMTPD_CCONN_LIMIT, DEF_SMTPD_CCONN_LIMIT, &var_smtpd_cconn_limit, 0, 0,
0,
};
static const CONFIG_NINT_TABLE nint_table[] = {
> this patch seems to fix it, though maybe someone who knows more about
> how postscreen initializes parameters from default values of other
> parameters (via $parm_name) should check that it is what is needed.
The patch is correct apart from incorrect indentation.
> --- postscreen.c.orig 2010-12-02 01:24:25.000000000 +0100
> +++ postscreen.c 2010-12-02 01:29:23.000000000 +0100
> @@ -301,6 +301,7 @@
> * Configuration parameters.
> */
> int var_proc_limit;
> +int var_smtpd_cconn_limit;
> char *var_smtpd_service;
> char *var_smtpd_banner;
> char *var_smtpd_forbid_cmds;
> @@ -864,6 +865,7 @@
> };
> static const CONFIG_INT_TABLE int_table[] = {
> VAR_PROC_LIMIT, DEF_PROC_LIMIT, &var_proc_limit, 1, 0,
> + VAR_SMTPD_CCONN_LIMIT, DEF_SMTPD_CCONN_LIMIT,
> &var_smtpd_cconn_limit, 0, 0,
> VAR_PS_DNSBL_THRESH, DEF_PS_DNSBL_THRESH, &var_ps_dnsbl_thresh, 0, 0,
> VAR_PS_CMD_COUNT, DEF_PS_CMD_COUNT, &var_ps_cmd_count, 1, 0,
> 0,
--
Viktor.
I missed that both had to be at default to trigger the error;
I have smtpd_client_connection_count_limit defined in main.cf.
-- Noel Jones