Skip to content

Commit

Permalink
chore: Update master from release v0.30 (#2908)
Browse files Browse the repository at this point in the history
* chore(rln): rln message limit to 100 (#2883)
* postgres_driver: add more error handling when creating partitions
   Given that multiple nodes can be connected to the same database,
   it can happen that other node did something that my node was willing
   to do. In this commit, we overcome the possible "interleaved" 
   partition creation.

---------

Co-authored-by: Alvaro Revuelta <[email protected]>
  • Loading branch information
Ivansete-status and alrevuelta authored Jul 15, 2024
1 parent b71ab28 commit 241fb8c
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
## v0.30.2 (2024-07-12)

### Release highlights

* RLN message limit to 100 messages per epoch.
* Avoid exclusive access when creating new partitions in the PostgreSQL messages table.

### Changes

- chore(rln): rln message limit to 100 ([#2883](https://github.com/waku-org/nwaku/pull/2883))
- fix: postgres_driver better partition creation without exclusive access [28bdb70b](https://github.com/waku-org/nwaku/commit/28bdb70be46d3fb3a6f992b3f9f2de1defd85a30)

This release supports the following [libp2p protocols](https://docs.libp2p.io/concepts/protocols/):
| Protocol | Spec status | Protocol id |
| ---: | :---: | :--- |
| [`11/WAKU2-RELAY`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/11/relay.md) | `stable` | `/vac/waku/relay/2.0.0` |
| [`12/WAKU2-FILTER`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/12/filter.md) | `draft` | `/vac/waku/filter/2.0.0-beta1` <br />`/vac/waku/filter-subscribe/2.0.0-beta1` <br />`/vac/waku/filter-push/2.0.0-beta1` |
| [`13/WAKU2-STORE`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/13/store.md) | `draft` | `/vac/waku/store/2.0.0-beta4` |
| [`19/WAKU2-LIGHTPUSH`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/19/lightpush.md) | `draft` | `/vac/waku/lightpush/2.0.0-beta1` |
| [`66/WAKU2-METADATA`](https://github.com/waku-org/specs/blob/master/standards/core/metadata.md) | `raw` | `/vac/waku/metadata/1.0.0` |

## v0.30.1 (2024-07-03)

### Notes
Expand Down
2 changes: 1 addition & 1 deletion waku/factory/networks_config.nim
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ proc TheWakuNetworkConf*(T: type ClusterConf): ClusterConf =
rlnRelayChainId: 11155111,
rlnRelayBandwidthThreshold: 0,
rlnEpochSizeSec: 600,
rlnRelayUserMessageLimit: 20,
rlnRelayUserMessageLimit: 100,
pubsubTopics:
@[
"/waku/2/rs/1/0", "/waku/2/rs/1/1", "/waku/2/rs/1/2", "/waku/2/rs/1/3",
Expand Down
22 changes: 18 additions & 4 deletions waku/waku_archive/driver/postgres_driver/postgres_driver.nim
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,24 @@ proc performWriteQueryWithLock*(
debug "skip performWriteQuery because the advisory lock is acquired by other"
return ok()

if error.contains("already exists"):
## expected to happen when trying to add a partition table constraint that already exists
## e.g., constraint "constraint_name" for relation "messages_1720364735_1720364740" already exists
debug "skip already exists error", error = error
return ok()

if error.contains("is already a partition"):
## expected to happen when a node tries to add a partition that is already attached,
## e.g., "messages_1720364735_1720364740" is already a partition
debug "skip is already a partition error", error = error
return ok()

if error.contains("does not exist"):
## expected to happen when trying to drop a constraint that has already been dropped by other
## constraint "constraint_name" of relation "messages_1720364735_1720364740" does not exist
debug "skip does not exist error", error = error
return ok()

debug "protected query ended with error", error = $error
return err("protected query ended with error:" & $error)

Expand Down Expand Up @@ -1042,10 +1060,6 @@ proc addPartition(
" (LIKE messages INCLUDING DEFAULTS INCLUDING CONSTRAINTS);"

(await self.performWriteQueryWithLock(createPartitionQuery)).isOkOr:
if error.contains("already exists"):
debug "skip create new partition as it already exists: ", skipped_error = $error
return ok()

return err(fmt"error adding partition [{partitionName}]: " & $error)

## Add constraint to the partition table so that EXCLUSIVE ACCESS is not performed when
Expand Down

0 comments on commit 241fb8c

Please sign in to comment.