1177 Commits

Author SHA1 Message Date
Igor Sirotin
bad12e44b6
fix(filter): correct inverted idle-subscription cleanup check
The periodic cleanup in SubscribersMap.cleanUp deleted subscribers whose
elapsed time since last activity was *less* than the idle timeout, and kept
those that had gone idle. This is backwards: active subscribers (that keep
their subscription alive via pings, which call Refresh) were being dropped
within a cleanup cycle, while genuinely idle subscribers were never reaped
and leaked forever.

Flip the comparison so a subscriber is removed only once it has been idle
for longer than the timeout.

Also rewrite TestCleanup (which previously encoded the buggy behavior) and
add TestCleanupKeepsActiveSubscribers, which fails on the old inverted check.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 09:40:12 +01:00
Kirill Blinichkin
f3fc70002f
fix: bound WakuNode.Stop() with timeouts to avoid hang on dead connections (#1306)
Signed-off-by: kblinichkin <kirill.blinichkin@gmail.com>
2026-06-18 14:55:21 +01:00
Kirill Blinichkin
81291ef862
fix: reset peer backoff on recovery so reconnect is not blocked (#1308)
Signed-off-by: kblinichkin <kirill.blinichkin@gmail.com>
2026-06-15 12:44:59 +01:00
richΛrd
2ccee74ecb
chore: update CODEOWNERS to change ownership assignments (#1310) 2026-06-11 15:51:36 -04:00
Igor Sirotin
9a10629782
fix(peermanager): prefer connected peers in selection (#1309)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.10.2
2026-06-09 16:41:22 +01:00
Alex Jbanca
d6d39395ac chore: reduce PR verbosity 2026-05-18 12:14:54 +05:30
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