Alex Jbanca
2da08c3e14
fix(filter): bound per-Sub retry storm under sustained subscribe failures
...
Sustained subscribe failures saturated CPU, leaked 600+ subscriptionLoop
goroutines, and twice panicked with `strings: Join output length overflow`.
Five independent issues:
- api/filter: errcnt budget was gated on `possibleRecursiveError`, which
matched only `ErrNoPeersAvailable` / `swarm.ErrDialBackoff`. The dominant
error class never incremented errcnt, so the 3-error-per-5s budget was
dead code. Replaced gate with `shouldIncrementErrCnt(err)`: counts every
non-nil error.
- protocol/filter: WakuFilterLightNode.Subscribe flattened per-peer errors
via `fmt.Errorf+strings.Join`, losing typed *FilterError and growing
unboundedly. Replaced with typed `*SubscribeError` (PeerID, ContentTopics,
Err) plus `HasRateLimitError()`; `Error()` is hard-capped. Concurrent
per-peer appends now mutex-guarded.
- api/filter: 60-s rate-limit backoff on `*SubscribeError.HasRateLimitError()`.
`shouldHonourRateLimitBackoff(rateLimitedUntil, now)` gates ticker push and
closing-channel checkAndResubscribe. Cleared on subscribe success.
- api/filter: FilterManager.waitingToSubQueue was a cap-100 chan written and
drained under the same lock, deadlocking the manager once full. Replaced
with mutex-guarded slice.
- api/filter: Sub.cleanup closed DataCh while multiplex forwarders could
still be sending. Added multiplexWG awaited in cleanup; forwarder send is
in a select with apiSub.ctx.Done() so it can't deadlock when
subDetails.C is never closed (node-stop transitions).
Tests (all under -race):
- TestSub_CleanupRaceWithMultiplex (50 iter)
- TestSub_CleanupDoesNotDeadlockWhenSubChannelStaysOpen
- TestFilterManager_SubscribeFilter_DoesNotDeadlockWhenQueueFull
- TestShouldIncrementErrCnt
2026-05-18 12:14:54 +05:30
Alex Jbanca
de84ba47f9
fix: SetClosing no longer holds SubscriptionDetails lock across a potentially blocking channel send ( #1301 )
2026-04-21 15:40:52 +05:30
Igor Sirotin
d1b2917b3a
chore: update license files to comply with Logos licensing requirements
2026-02-05 15:08:36 +00:00
9503a0c27f
chore: bump jenkins lib add build ids to ghcmgr
...
Depends on:
https://github.com/status-im/status-jenkins-lib/pull/131
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2026-01-16 20:03:13 +01:00
Igor Sirotin
f40bcd7e79
chore: update version file
v0.10.1
2025-12-10 10:27:51 +00:00
Igor Sirotin
b0af7695bd
feat: single point of localnode parametrization ( #1297 )
2025-12-10 10:21:57 +00:00
Igor Sirotin
4b28d08451
fix: start watchTopicShards once ( #1298 )
2025-12-09 10:50:39 +00:00
Igor Sirotin
5635735da6
fix(PeerManager): SelectRandom filter by protocol ( #1296 )
2025-12-08 21:26:41 +00:00
Prem Chaitanya Prathi
84a4b1be7a
fix: use simple protocol and pubsubTopic based selection for peerExchange ( #1295 )
2025-10-15 06:37:06 +05:30
Igor Sirotin
06c9af60f3
chore: update go-discover ( #1294 )
2025-10-03 23:51:21 +01:00
Igor Sirotin
01bb2e1c49
feat: version 0.10.0
v0.10.0
2025-10-03 00:38:02 +01:00
Igor Sirotin
070ff0d7c5
chore: upgrade go-ethereum ( #1292 )
2025-10-03 00:33:39 +01:00
Igor Sirotin
b2d4752dd1
ci: remove codeclimate coverare reporting ( #1293 )
2025-10-01 17:22:02 +01:00
Igor Sirotin
0c3d6dc0a8
chore: upgrade go-libp2p ( #1288 )
2025-08-25 18:23:53 +01:00
Igor Sirotin
feac2604f5
chore: upgrade to go 1.23 ( #1291 )
...
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Jakub Sokołowski <jakub@status.im>
2025-08-25 17:47:02 +01:00
Igor Sirotin
6ceea038ff
ci: fix linter, storev3 tests and nix-flake jobs ( #1289 )
...
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Jakub Sokołowski <jakub@status.im>
2025-08-25 15:44:07 +01:00
Siddarth Kumar
d6b9120de3
ci: disable restart from stage in jenkins
...
related issue : https://github.com/status-im/infra-ci/issues/202
2025-07-26 15:39:21 +05:30
Igor Sirotin
5dea6d3bce
fix: remove automatic relay unsubscribe in a goroutine ( #1284 )
2025-05-28 12:04:23 +01:00
gabrielmer
900b98812a
fix: store query by hash ( #1282 )
2025-04-11 17:56:37 +03:00
kaichao
f59588a970
feat: send bucket update when rate limit applied ( #1277 )
2025-03-25 17:52:50 +08:00
gabrielmer
fdf03de179
fix: setting peerId for store query ( #1278 )
2025-03-20 15:47:51 +02:00
richΛrd
e68fcdb554
refactor: use peerInfo and multiaddresses instead of peerID ( #1269 )
2025-03-13 18:15:44 +02:00
Siddarth Kumar
b53227f641
ci: upgrade nix to 2.24 ( #1272 )
2025-03-13 12:02:12 -04:00
Prem Chaitanya Prathi
24932b529c
chore: disable filter logs to prevent spam ( #1275 )
2025-02-18 11:16:16 +05:30
Prem Chaitanya Prathi
4ef460cb95
fix: filter network change handling ( #1270 )
2025-01-03 15:47:27 +05:30
Prem Chaitanya Prathi
c0afa070a3
fix: update criteria context on missing msg verifier start ( #1268 )
2024-12-24 14:28:53 +05:30
kaichao
6dcf177414
feat: rate limit with rln configuration ( #1262 )
2024-12-24 11:27:48 +08:00
Prem Chaitanya Prathi
78b522db50
fix: have better defaults for send/recv rate-limits ( #1267 )
2024-12-16 19:18:16 +05:30
frank
ffed0595ad
fix: concurrent peerMap iteration and write ( #1266 )
2024-12-12 18:46:22 +08:00
Pablo Lopez
9a243696d7
fix: fatal error: concurrent map writes ( #1265 )
2024-12-10 14:08:04 +02:00
Prem Chaitanya Prathi
809dba5854
fix: use bad peer removal logic only for lightpush and filter and option to restart missing message verifier ( #1244 )
2024-12-09 14:14:28 +05:30
Arseniy Klempner
6550ff35bc
feat: option to emit event to bus upon message sent ( #1261 )
2024-12-02 19:22:30 -08:00
richΛrd
0c594b3140
feat: filter rate limit ( #1258 )
2024-11-29 12:25:55 -04:00
Richard Ramos
1608cf2b0b
fix: populate pinger
2024-11-28 14:38:57 -04:00
Zoro
68a6faaf5c
chore: use decred secp256k1 directly ( #1245 )
2024-11-25 15:06:12 -04:00
richΛrd
f98a17bacf
feat: limit api store queries to 24h ( #1257 )
2024-11-25 15:05:47 -04:00
richΛrd
96702e278b
fix: setup shards ( #1256 )
2024-11-22 09:36:02 -04:00
richΛrd
dd82c24e00
chore: use AddrInfo instead of ID to match nwaku's libwaku ping function ( #1251 )
2024-10-28 15:46:39 -04:00
Prem Chaitanya Prathi
c78b09d4ca
fix: filter stats mismatch and add bad peer check for light mode ( #1241 )
2024-10-28 11:46:40 +05:30
richΛrd
fdb3c3d0b3
refactor: use protobuffer for API storenode queries ( #1248 )
2024-10-24 14:47:57 -04:00
Richard Ramos
6bdf125dd1
refactor: extract ping interface
2024-10-24 14:32:22 -04:00
kaichao
38be0dc169
chore: fix store request id log ( #1242 )
2024-10-21 11:23:49 +08:00
richΛrd
37f936d747
refactor: decouple API from go-waku ( #1239 )
2024-10-15 15:48:15 -04:00
richΛrd
76275f6fb8
feat: storenode cycle ( #1223 )
2024-10-14 14:58:51 -04:00
Prem Chaitanya Prathi
0ed94ce0b1
fix: simple backoff strategy after 3 subscribe failures ( #1238 )
2024-10-04 11:10:19 +05:30
richΛrd
15b4aee808
fix: use byte array to decode ENRs uint8 fields ( #1227 )
2024-10-03 10:12:31 -04:00
Richard Ramos
ae423936ed
fix: remove bandwidth metrics that were commited to master by mistake
2024-10-01 18:24:47 -04:00
Prem Chaitanya Prathi
244bb176eb
feat: add clusterID and shards config to c-bindings ( #1228 )
2024-10-01 10:21:13 +05:30
richΛrd
12abd041d6
chore: bump go-libp2p and go-libp2p-pubsub ( #1208 )
2024-09-26 12:21:17 -04:00
frank
8b0e03113d
feat: log error and stacktrace when panic in goroutine ( #1225 )
2024-09-25 17:15:20 +08:00