Having looked further at the ratelimit code, the new output looks reasonable. The obscure
values of "19" derive from testing "per-byte", being the size of the test message.
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/strict
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_mail/strict/V4NET.9.8.7
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=1 0.0/1h/per_mail/V4NET.9.8.7
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 1.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> warn: condition test succeeded in ACL "check_rcpt"
-LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_byte/strict
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_byte/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_byte/strict/V4NET.9.8.7
->>> ratelimit initializing new key's data
->>> ratelimit db updated
->>> ratelimit computed rate 0.0
+>>> ratelimit condition count=19 0.0/1h/per_mail/V4NET.9.8.7
+>>> ratelimit found pre-computed rate 1.0
>>> warn: condition test succeeded in ACL "check_data"
>>> warn: condition test succeeded in ACL "check_data"
-LOG: 10HmaX-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: 10HmaX-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmaX-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmaX-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/strict
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_mail/strict/V4NET.9.8.7
+>>> ratelimit condition count=1 0.0/1h/per_mail/V4NET.9.8.7
+>>> ratelimit found key in database
->>> ratelimit computed rate 1.0
+>>> ratelimit computed rate 2.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> warn: condition test succeeded in ACL "check_rcpt"
-LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=2.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_byte/strict
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_byte/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_byte/strict/V4NET.9.8.7
->>> ratelimit db updated
->>> ratelimit computed rate 19.0
+>>> ratelimit condition count=19 0.0/1h/per_mail/V4NET.9.8.7
+>>> ratelimit found pre-computed rate 2.0
>>> warn: condition test succeeded in ACL "check_data"
>>> warn: condition test succeeded in ACL "check_data"
-LOG: 10HmaY-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=19.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: 10HmaY-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=2.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmaY-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmaY-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_conn/strict/V4NET.9.8.7
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=1 0.0/1h/per_conn/V4NET.9.8.7
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 1.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> warn: condition test succeeded in ACL "check_rcpt"
-LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_conn/strict/V4NET.9.8.7
->>> ratelimit found pre-computed rate 0.0
+>>> ratelimit condition count=1 0.0/1h/per_conn/V4NET.9.8.7
+>>> ratelimit found pre-computed rate 1.0
>>> warn: condition test succeeded in ACL "check_data"
>>> warn: condition test succeeded in ACL "check_data"
-LOG: 10HmaZ-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: 10HmaZ-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmaZ-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmaZ-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_conn/strict/V4NET.9.8.7
+>>> ratelimit condition count=1 0.0/1h/per_conn/V4NET.9.8.7
+>>> ratelimit found key in database
->>> ratelimit computed rate 1.0
+>>> ratelimit computed rate 2.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> warn: condition test succeeded in ACL "check_rcpt"
-LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=2.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_conn/strict/V4NET.9.8.7
->>> ratelimit found pre-computed rate 1.0
+>>> ratelimit condition count=1 0.0/1h/per_conn/V4NET.9.8.7
+>>> ratelimit found pre-computed rate 2.0
>>> warn: condition test succeeded in ACL "check_data"
>>> warn: condition test succeeded in ACL "check_data"
-LOG: 10HmbA-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: 10HmbA-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=2.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmbA-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmbA-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_rcpt
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_rcpt
->>> ratelimit condition limit=0 period=3600 key=1h/per_cmd/leaky/V4NET.9.8.7
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=1 0.0/1h/per_rcpt/V4NET.9.8.7
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
>>> ratelimit db not updated: over the limit, but leaky
>>> ratelimit db not updated: over the limit, but leaky
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 1.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> warn: condition test succeeded in ACL "check_rcpt"
-LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: H=(test.ex) [V4NET.9.8.7] Warning: RCPT: sender_rate=1.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_rcpt
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_rcpt
->>> ratelimit condition limit=0 period=3600 key=1h/per_cmd/leaky/V4NET.9.8.7
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=1 0.0/1h/per_rcpt/V4NET.9.8.7
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
>>> ratelimit db not updated: over the limit, but leaky
>>> ratelimit db not updated: over the limit, but leaky
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 1.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_rcpt
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> using ACL "check_rcpt"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_rcpt
->>> ratelimit condition limit=0 period=3600 key=1h/per_cmd/leaky/V4NET.9.8.7
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=1 0.0/1h/per_rcpt/V4NET.9.8.7
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
>>> ratelimit db not updated: over the limit, but leaky
>>> ratelimit db not updated: over the limit, but leaky
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 1.0
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> warn: condition test succeeded in ACL "check_rcpt"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt"
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_conn
->>> ratelimit condition limit=0 period=3600 key=1h/per_conn/leaky/V4NET.9.8.7
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=1 0.0/1h/per_conn/V4NET.9.8.7
+>>> ratelimit found key in database
>>> ratelimit db not updated: over the limit, but leaky
>>> ratelimit db not updated: over the limit, but leaky
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 3.0
>>> warn: condition test succeeded in ACL "check_data"
>>> warn: condition test succeeded in ACL "check_data"
-LOG: 10HmbB-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: 10HmbB-0005vi-00 H=(test.ex) [V4NET.9.8.7] Warning: DATA: sender_rate=3.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmbB-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmbB-0005vi-00 H=(test.ex) [V4NET.9.8.7] F=<> rejected after DATA
>>> using ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt/noupdate
>>> using ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt/noupdate
->>> ratelimit condition limit=1 period=60 key=1m/per_cmd/leaky/V4NET.9.8.6
->>> ratelimit initializing new key's data
->>> ratelimit db not updated: noupdate set
+>>> ratelimit condition count=0 1.0/1m/per_rcpt/V4NET.9.8.6
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
+>>> ratelimit db not updated: readonly mode
>>> ratelimit computed rate 0.0
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt
>>> ratelimit computed rate 0.0
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt
->>> ratelimit condition limit=1 period=60 key=1m/per_cmd/leaky/V4NET.9.8.6
->>> ratelimit initializing new key's data
->>> ratelimit db updated
->>> ratelimit computed rate 0.0
+>>> ratelimit condition count=1 1.0/1m/per_rcpt/V4NET.9.8.6
+>>> ratelimit found pre-computed rate 0.0
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt2"
>>> using ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt/noupdate
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt2"
>>> using ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt/noupdate
->>> ratelimit condition limit=1 period=60 key=1m/per_cmd/leaky/V4NET.9.8.6
->>> ratelimit db not updated: noupdate set
->>> ratelimit computed rate 1.0
+>>> ratelimit condition count=0 1.0/1m/per_rcpt/V4NET.9.8.6
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
+>>> ratelimit db not updated: readonly mode
+>>> ratelimit computed rate 0.0
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "warn"
>>> check ratelimit = 1/1m/per_rcpt
->>> ratelimit condition limit=1 period=60 key=1m/per_cmd/leaky/V4NET.9.8.6
->>> ratelimit db updated
->>> ratelimit computed rate 1.0
+>>> ratelimit condition count=1 1.0/1m/per_rcpt/V4NET.9.8.6
+>>> ratelimit found pre-computed rate 0.0
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt2"
>>> warn: condition test failed in ACL "check_rcpt2"
>>> processing "accept"
>>> accept: condition test succeeded in ACL "check_rcpt2"
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_byte/strict
>>> using ACL "check_data"
>>> processing "warn"
>>> check ratelimit = 0/1h/per_byte/strict
->>> ratelimit condition limit=0 period=3600 key=1h/per_byte/strict/V4NET.9.8.6
->>> ratelimit initializing new key's data
+>>> ratelimit condition count=19 0.0/1h/per_mail/V4NET.9.8.6
+>>> ratelimit creating new rate data block
+>>> ratelimit initializing new key's rate data
->>> ratelimit computed rate 0.0
+>>> ratelimit computed rate 19.0
>>> warn: condition test succeeded in ACL "check_data"
>>> warn: condition test succeeded in ACL "check_data"
-LOG: 10HmbC-0005vi-00 H=(test.ex) [V4NET.9.8.6] Warning: DATA: sender_rate=0.0 sender_rate_limit=0 sender_rate_period=1h
+LOG: 10HmbC-0005vi-00 H=(test.ex) [V4NET.9.8.6] Warning: DATA: sender_rate=19.0 sender_rate_limit=0 sender_rate_period=1h
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmbC-0005vi-00 H=(test.ex) [V4NET.9.8.6] F=<> rejected after DATA
>>> processing "deny"
>>> deny: condition test succeeded in ACL "check_data"
LOG: 10HmbC-0005vi-00 H=(test.ex) [V4NET.9.8.6] F=<> rejected after DATA