ModernUO/Projects
Kamron Batman 65bdfe6cd7
fix(tests): serialize test classes that rent through STArrayPool
STArrayPool is single-threaded by design and its bucket cache is a plain static,
not thread-static, with a check-then-act initialize in Return():

    var cacheBuckets = _cacheBuckets ?? InitializeBuckets();

Two threads both see null, both initialize, and the loser trips
Debug.Assert(_cacheBuckets is null). Anything renting from it therefore has to be
kept off parallel test threads, which is what the DisableParallelization
collections exist for.

ObjectPropertyListReentrancyTests and ObjectPropertyListNestedBuildTests build
property lists, which rent the interpolation buffer, but were not in the
sequential collection -- unlike PropertyListInvalidationDuringBuildTests in the
same file. That is the macOS CI failure on this PR: Debug.Fail "Non-null
_cacheBuckets" out of ObjectPropertyList.Dispose. It is timing-dependent, so it
surfaces on some platforms and not others.

AutoDenylistTests has the same exposure: its cap tests reach AutoDenylist.Sweep,
which rents a PooledRefList without mt. The blocklist tests need no marking
because BlocklistSnapshot.Build asks for the mt pool explicitly, which is the
distinction worth remembering.

No production change: STArrayPool is the right pool on the game loop, where both
Sweep and the property list actually run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 18:33:32 -07:00
..
Application fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
BuildTool fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Logger fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Server feat(network): allowlist false-positive IPs, escalate on behaviour 2026-07-30 18:31:34 -07:00
Server.Tests fix(tests): serialize test classes that rent through STArrayPool 2026-07-30 18:33:32 -07:00
UOContent feat(network): allowlist false-positive IPs, escalate on behaviour 2026-07-30 18:31:34 -07:00
UOContent.Tests fix(tests): serialize test classes that rent through STArrayPool 2026-07-30 18:33:32 -07:00