@torrent-tv/proxy 2.81.0 → 2.81.1
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.
- package/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/services/disk/DiskSpace.js +4 -0
- package/test/disk-space.test.js +12 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## 2.81.1
|
|
2
|
+
|
|
3
|
+
- **Fix**: The `disk:` line is actually said. 2.81.0 built the reading and called it from nowhere, so the one thing that can answer "why is there no room" was absent from the log. The owner says it itself, once a pass, in the series beside the memory reading.
|
|
4
|
+
|
|
1
5
|
## 2.81.0
|
|
2
6
|
|
|
3
7
|
- **Fix**: EVERY ENCODER RAN TWICE, ON EVERY RUN, SINCE 2026-09-04. Building a run and starting it were two acts, so two owners each performed the second: the session manager built a run and started it, handed it back, and the orchestrator started it again. Field logs of 08-10 September: 207 runs against 414 spawns, no exception. Only the second process was reachable — this line overwrote the reference to the first — so a stop killed one and the other ran on, measured 105 seconds past its own run's death, with eleven processes writing at once on a four-core host whose budget said three. It doubled the processor, doubled the readers of the piece store (which is the pinned-piece deadlock's own trigger), and put two writers on one file name, defeating the rename 2.80.19 had just introduced: 1105 `could not publish … ENOENT` and a fatal `bufferAppendError` on both tracks at once under 2.80.19 itself.
|
package/package.json
CHANGED
|
@@ -114,6 +114,10 @@ export class DiskSpace {
|
|
|
114
114
|
for (const [position, consumer] of consumers.entries()) {
|
|
115
115
|
consumer.allow(shares[position]);
|
|
116
116
|
}
|
|
117
|
+
// SAID, every pass, in the series beside the memory reading. "Why is there
|
|
118
|
+
// no room" was a question no log could answer: the ceilings were worked out
|
|
119
|
+
// in three places and not one of them was printed beside the others.
|
|
120
|
+
this.#logger?.info?.(this.describe());
|
|
117
121
|
return { freeBytes: this.#freeBytes, allowanceBytes: allowance, shares: this.#last };
|
|
118
122
|
}
|
|
119
123
|
|
package/test/disk-space.test.js
CHANGED
|
@@ -136,3 +136,15 @@ test("it says what the disk has and what each claimant may hold", async () => {
|
|
|
136
136
|
await space.revise();
|
|
137
137
|
assert.match(space.describe(), /disk: 100MB free; segments 4MB of 8MB/);
|
|
138
138
|
});
|
|
139
|
+
|
|
140
|
+
test("it says what it decided, every pass", async () => {
|
|
141
|
+
const lines = [];
|
|
142
|
+
const space = new DiskSpace({
|
|
143
|
+
readFree: async () => 100 * MEGABYTE,
|
|
144
|
+
logger: { info: (line) => lines.push(line) }
|
|
145
|
+
});
|
|
146
|
+
space.register(consumerOf("segments", 4 * MEGABYTE, 8 * MEGABYTE).consumer);
|
|
147
|
+
await space.revise();
|
|
148
|
+
assert.equal(lines.length, 1, "a pass that decided the shares said nothing about them");
|
|
149
|
+
assert.match(lines[0], /disk: 100MB free; segments 4MB of 8MB/);
|
|
150
|
+
});
|