Several numeric configuration options now reject values that are out of range instead of silently wrapping or inverting. Previously a negative value could disable the intended limit entirely.
-dbbatchsizeand-dbcrashratiomust be non-negative. A negative-dbbatchsizewrapped to a huge value and disabled batch flushing, so a reindex could hold an unbounded batch in memory.-limitclustersize,-limitancestorcount,-limitdescendantcount,-mempoolexpiry,-datacarriersize,-maxsendbuffer,-maxreceivebuffer,-bantime,-bytespersigopand-maxtipagemust be non-negative.-limitclustercountmust be between 1 and 64.-timeoutmust be positive. It previously fell back to the default silently, unlike the analogous-peertimeout, which already errored.
Zero remains valid wherever it already meant "disabled": -dbbatchsize=0,
-limitclustersize=0, -datacarriersize=0, -mempoolexpiry=0,
-maxtipage=0, -bytespersigop=0, -maxsendbuffer=0,
-maxreceivebuffer=0 and -bantime=0.
- The
-helpoutput for-bytespersigop,-datacarriersize,-dbbatchsize,-stopatheightand-checkblockindexnow shows the=<n>placeholder for their value, matching how they are actually parsed.