pmtiles-swarm 0.35.3 β†’ 0.35.5

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,48 @@
7
7
  ### 🐞 Bug fixes
8
8
  - _...Add new stuff here..._
9
9
 
10
+ ## 0.35.5
11
+ ### ✨ Features and improvements
12
+
13
+ ### 🐞 Bug fixes
14
+ - **Requires pmtiles-torrent 0.7.4, which stops archives dropping out of the engine a few more with
15
+ every restart.** Seen here as `[restore] <archive>: mismatching info-hash`, beginning with one
16
+ archive and reaching eighteen of twenty. An archive that failed this way was never handed to the
17
+ engine at all, so the console showed it at 0% with no state, a recheck answered `no such
18
+ torrent`, and its data sat complete on the disk the whole time β€” the preview rendered from it
19
+ perfectly well.
20
+
21
+ The sidecar was writing resume data under the wrong torrent's name: saving it was the last thing
22
+ still popping libtorrent's alert queue on its own thread while the alert pump popped on another,
23
+ and the pump's next pop freed the batch that loop was reading. `add` then refuses such a file
24
+ with "mismatching info-hash". 0.7.2 did not introduce it but made the pump pop far more often,
25
+ which is why it appeared immediately after that upgrade.
26
+
27
+ Restarting on this version is the whole recovery: an add refused over resume data is retried
28
+ without it, and the recheck finds every byte already on disk. Nothing is downloaded again,
29
+ though rechecking a large archive is not quick.
30
+
31
+ ## 0.35.4
32
+ ### ✨ Features and improvements
33
+
34
+ ### 🐞 Bug fixes
35
+ - **Requires pmtiles-torrent 0.7.2, which is what actually stops `libtorrent list timed out after
36
+ 60000ms`.** The console header sat at "connecting…" and clicking an archive never loaded its
37
+ details, on a node that was otherwise seeding, downloading and serving tiles perfectly well.
38
+ 0.35.1 and 0.35.3 both chased this β€” through the sidecar's request loop, then through a slow
39
+ disk β€” and neither reached it.
40
+
41
+ The cost was in the listing itself. Reading one torrent's state is a blocking round-trip to
42
+ libtorrent's session thread, and the sidecar did three per torrent, so twenty archives cost
43
+ sixty, each queued behind whatever that one thread was doing. Measured on a session holding
44
+ twenty torrents: 0.66ms idle against 1001ms with the session busy hashing. The slow disk is real
45
+ and is what makes the session thread slow β€” but a slow session thread only becomes a minute of
46
+ waiting when the call costs sixty round-trips. The sidecar now keeps a status cache fed by
47
+ asynchronous updates, and listing reads a dictionary.
48
+
49
+ `^0.7.1` already admits 0.7.2, so a fresh install picks the fix up on its own. The floor is
50
+ raised anyway, because a node installed from a lock file does not.
51
+
10
52
  ## 0.35.3
11
53
  ### ✨ Features and improvements
12
54
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmtiles-swarm",
3
- "version": "0.35.3",
3
+ "version": "0.35.5",
4
4
  "description": "BitTorrent distribution for PMTiles map archives: create torrents, watch folders, publish and subscribe to RSS feeds, and seed through qBittorrent or an embedded client",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -46,7 +46,7 @@
46
46
  "maplibre-gl": "^6.2.0",
47
47
  "parse-torrent": "^11.0.24",
48
48
  "pmtiles": "^4.4.1",
49
- "pmtiles-torrent": "^0.7.1",
49
+ "pmtiles-torrent": "^0.7.4",
50
50
  "webtorrent": "^3.0.21"
51
51
  },
52
52
  "engines": {