Worth a looka fix or feature you may wantReviewed both non-merge commits from build 2.4.17188 through 2.4.17189: two additions and two deletions outside version bookkeeping. Neither commit has superseded_by metadata, and upstream head matches the raw payload head.
Script-engine expiry keeps its full minute range
A one-line arithmetic fix prevents large TThreadSafeManager.EngineExpireTimeOutMinutes values from overflowing during conversion to milliseconds. Windows SChannel servers also gain the underlying system error in the exception raised when no certificate can be selected from the store. Script-engine pools configured with unusually long lifetimes should take the first fix; the TLS change is diagnostic only.
TL;DR
- Land on upstream head 5a1509b805bcdc7f239c683bd0e68ab9700c1247 at build 2.4.17189.
- EngineExpireTimeOutMinutes now performs its minute-to-millisecond multiplication as Int64, avoiding 32-bit overflow for large settings.
- A failed SChannel certificate search now raises ESChannel with the Windows error text and code instead of a generic message.
Upgrade advice
Upgrade to build 2.4.17189 at head 5a1509b805bcdc7f239c683bd0e68ab9700c1247 if EngineExpireTimeOutMinutes can exceed the 32-bit millisecond range. No migration is required: the public property keeps its cardinal minute type and only its setter arithmetic changes. Windows SChannel deployments may also use the richer ESChannel message to diagnose certificate-store failures.
2 of 2 entries · 2 commits upstream
1
Medium
Long script-engine expiry settings no longer overflow
TThreadSafeManager.SetEngineExpireTimeOutMinutes in mormot.script.core now casts Value to Int64 before multiplying by MilliSecsPerMin. The result continues to be stored in the existing Int64 fEngineExpireTimeOutTix field.
Fixes
mormot.script.core
5a1509b8+3-3
script: fixed TThreadSafeManager.EngineExpireTimeOutMinutes
Impact
Delphi and FPC backends using large minute values now keep the intended engine lifetime instead of storing a wrapped millisecond interval. Normal production values such as 240 minutes are unchanged, and no source migration is needed.
Upgrade recommended
Upgrade if EngineExpireTimeOutMinutes can represent more than roughly 49.7 days, then confirm engine recycling at the configured boundary.
Public API
TThreadSafeManager.EngineExpireTimeOutMinutesbehaviour-changed — Large cardinal minute values are now converted with 64-bit multiplication.
Units
2
Low
SChannel certificate lookup failures expose the Windows error
TSChannelNetTls.AfterBind in mormot.net.sock.windows replaces a generic ESChannel.Create call after CertFindCertificateInStore returns nil with RaiseLastError. The exception keeps the ESChannel class and adds the operation name, Windows error text and numeric code.
Housekeeping
mormot.net.sock.windows
258c48f4+3-3
net: try to identify SChannel TLS issue on PRISM
Impact
Windows Delphi and FPC SChannel servers still fail binding when no usable certificate is found; only the diagnostic detail changes. Successful TLS setup and non-Windows TLS backends are unaffected.