DateTime.UtcNow.Ticks * 100L overflows long (Ticks ~6.38e17, x100 = 6.38e19 > long.MaxValue 9.22e18), producing corrupted timestamps that cause PruneExpiredMessages to immediately expire all messages when MaxAgeMs is set. Use Unix epoch offset to match Go's time.Now().UnixNano().
18 KiB
18 KiB