solid_objects 0.17.3 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/docs/roadmap.md +2 -1
- data/lib/solid_objects/activation.rb +1 -0
- data/lib/solid_objects/lease.rb +1 -0
- data/lib/solid_objects/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3d26650acca584b91a9933ee43ce1aeb310200d240994040a3ae8c8ea81dea1b
|
|
4
|
+
data.tar.gz: e97ad7100bd3822b005c571c2479ab833b65082ad0a249fd88c619a83da62980
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c89b65cc0a103afb36bdc8570e55ab53adcd21fa59118d34291c2e174e9c0fc603cdf4c8c534a13acf21bcae54c6e3f1f54510635e89ff53d88b63f3ff09e7a2
|
|
7
|
+
data.tar.gz: '08a065d488f819ed054e8b57fd7bef8666be7c8c4dea41bd340cf07f8661c4570dd69d0a37a96c9f80c9a3fabcec6a6f691ab8d061c4e9293b1891da9da07cc4'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.4 - 2026-10-12
|
|
4
|
+
|
|
5
|
+
- Renew activations between turns in a drain pass when renewal is due,
|
|
6
|
+
including when the renewal thread has not run.
|
|
7
|
+
- Keep the activation fence and expiry while an outstanding message claim
|
|
8
|
+
remains. The next worker pass recovers an expired turn in mailbox order,
|
|
9
|
+
including with `max_attempts: 1`. Reclaiming increments `attempt_count`;
|
|
10
|
+
lease loss alone does not create a dead letter.
|
|
11
|
+
|
|
3
12
|
## 0.17.3 - 2026-10-09
|
|
4
13
|
|
|
5
14
|
- Add four problem guides in `docs/guides/`: preventing race conditions in
|
data/docs/roadmap.md
CHANGED
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
instead of 12. Concurrent creation causes no deadlock on SQLite, PostgreSQL,
|
|
24
24
|
or MySQL. MySQL needs a shared read after a duplicate key, because it uses
|
|
25
25
|
repeatable read. The tests count statements, and do not measure latency.
|
|
26
|
-
- Activation leases, renewal
|
|
26
|
+
- Activation leases, renewal between turns as well as in the renewal thread,
|
|
27
|
+
unique activation tokens, generations, and
|
|
27
28
|
fenced commits
|
|
28
29
|
- Bounded activation passes, idle cache, hot-actor yield, and process records
|
|
29
30
|
- At-least-once retries, terminal domain rejection, strict poison ordering,
|
data/lib/solid_objects/lease.rb
CHANGED
|
@@ -123,6 +123,7 @@ module SolidObjects
|
|
|
123
123
|
instance = Instance.lock.find_by(id: instance_id)
|
|
124
124
|
next false unless instance
|
|
125
125
|
next false unless owned_generation?(instance)
|
|
126
|
+
next false if ClaimedMessage.where(instance_id:).exists?
|
|
126
127
|
|
|
127
128
|
instance.update!(
|
|
128
129
|
activation_owner_id: nil,
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solid_objects
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.17.
|
|
4
|
+
version: 0.17.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lucas Carlson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actioncable
|