Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: PRT-improve-timeout-handling #1249

Merged
merged 63 commits into from
Mar 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
86379cd
refactored the rpcconsumer send, WIP
omerlavanet Feb 22, 2024
c0bcf0e
added TODO
omerlavanet Feb 22, 2024
130eeeb
progress, WIP
omerlavanet Feb 26, 2024
348e5fe
wip
omerlavanet Feb 26, 2024
2016497
wip
omerlavanet Feb 26, 2024
0342af0
relay_processor done
omerlavanet Feb 28, 2024
516c327
change timeouts across the protocol
omerlavanet Feb 28, 2024
a66beef
handle non deterministic apis in the quorum
omerlavanet Feb 28, 2024
353ca05
lint
omerlavanet Feb 28, 2024
5d15525
fix tests
omerlavanet Feb 28, 2024
154e441
fix deadlock
omerlavanet Feb 28, 2024
6398a5f
fix nil getSessions
omerlavanet Feb 28, 2024
fcd51d6
increase hanging api time
omerlavanet Feb 28, 2024
9c2b59c
add unitest for usedProviders
omerlavanet Feb 29, 2024
1cd0136
added tests + refactor for simplicity
omerlavanet Feb 29, 2024
b38652b
added more tests
omerlavanet Feb 29, 2024
628ab5c
added more testing
omerlavanet Mar 1, 2024
f393b29
Merge remote-tracking branch 'origin/main' into PRT-improve-timout-ha…
omerlavanet Mar 1, 2024
05a9be4
lint
omerlavanet Mar 1, 2024
fbc2242
add unitests
omerlavanet Mar 3, 2024
c243a39
on init do not fail init relays on pairing
omerlavanet Mar 3, 2024
60652ab
change csm get provider error to warning
omerlavanet Mar 3, 2024
617ea4a
added errors when failing relays
omerlavanet Mar 3, 2024
47fb46b
remove data reliability errors on latest block requests
omerlavanet Mar 3, 2024
60abc95
disabled data reliability latest also on node errors
omerlavanet Mar 3, 2024
488da3a
add more information on error during quorum
omerlavanet Mar 4, 2024
2927739
allow empty results for queries without an error
omerlavanet Mar 4, 2024
75b74da
add missing consumer consistency
omerlavanet Mar 4, 2024
24d06f3
empty response quorum
omerlavanet Mar 4, 2024
01b1658
Merge remote-tracking branch 'origin/main' into PRT-improve-timout-ha…
omerlavanet Mar 4, 2024
e6fbeed
add more info on provider error
omerlavanet Mar 4, 2024
f84dcff
Merge remote-tracking branch 'origin/main' into PRT-improve-timout-ha…
omerlavanet Mar 6, 2024
cec200f
added basic consumer unitest
omerlavanet Mar 6, 2024
bf735fe
added a check for consumer to be up during unitest
omerlavanet Mar 6, 2024
4d41b08
refactor code for reuse in unitest
omerlavanet Mar 6, 2024
a50600a
added provider and consumer unitests
omerlavanet Mar 7, 2024
6313c30
added rpcproviderServer creation to unitest
omerlavanet Mar 7, 2024
69b9b3e
added provider dialing
omerlavanet Mar 7, 2024
a551a32
fixed bug in rpcconsumer, finished unitest
omerlavanet Mar 7, 2024
1ad183d
fix panic in relayErrors
omerlavanet Mar 11, 2024
650ab23
sanitize unique errors get
omerlavanet Mar 11, 2024
8d0ff06
prevent port conflict
omerlavanet Mar 11, 2024
511d2be
rename
ranlavanet Mar 11, 2024
0e225a3
fix addUsed with len(0) resetting the wait
omerlavanet Mar 11, 2024
888db6a
Merge branch 'PRT-improve-timout-handling' of github.com:lavanet/lava…
omerlavanet Mar 11, 2024
b0f001a
simplify port selection in unitests
omerlavanet Mar 11, 2024
44be705
add timeouts and fails to relays in unitest
omerlavanet Mar 11, 2024
379f79b
fix tests
omerlavanet Mar 13, 2024
a529191
added timeout to the scenarios
omerlavanet Mar 13, 2024
0ebfac9
lint
omerlavanet Mar 13, 2024
5abeea6
add a new test for tx sending
omerlavanet Mar 16, 2024
ad0ab82
Merge branch 'main' into PRT-improve-timout-handling
ranlavanet Mar 19, 2024
1b83426
Merge branch 'PRT-improve-timout-handling' of github.com:lavanet/lava…
ranlavanet Mar 19, 2024
e881ef5
sort logs better :)
ranlavanet Mar 19, 2024
599c92f
fix Caching error spam when missing cache
ranlavanet Mar 20, 2024
f1b3216
adding nil protection for used Providers
ranlavanet Mar 21, 2024
011ff99
set default 0
ranlavanet Mar 21, 2024
0298067
adding error logs and nil protection.
ranlavanet Mar 21, 2024
582a1dd
adding some checks to avoid nil deref
ranlavanet Mar 21, 2024
6fb97af
allow error for connection reset by peer when in emergency mode.. as …
ranlavanet Mar 21, 2024
16c3752
adding debugging information for next time ts fails.
ranlavanet Mar 21, 2024
19e2082
es lint..
ranlavanet Mar 21, 2024
d4f0801
eslint fix
ranlavanet Mar 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions ecosystem/cache/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,16 +126,17 @@ func (s *RelayerCacheServer) GetRelay(ctx context.Context, relayCacheGet *pairin
}()
// wait for all reads to complete before moving forward
waitGroup.Wait()

// validate that the response seen block is larger or equal to our expectations.
if cacheReply.SeenBlock < slices.Min([]int64{relayCacheGet.SeenBlock, relayCacheGet.RequestedBlock}) { // TODO unitest this.
// Error, our reply seen block is not larger than our expectations, meaning we got an old response
// this can happen only in the case relayCacheGet.SeenBlock < relayCacheGet.RequestedBlock
// by setting the err variable we will get a cache miss, and the relay will continue to the node.
err = utils.LavaFormatDebug("reply seen block is smaller than our expectations",
utils.LogAttr("cacheReply.SeenBlock", cacheReply.SeenBlock),
utils.LogAttr("seenBlock", relayCacheGet.SeenBlock),
)
if err == nil { // in case we got a hit validate seen block of the reply.
// validate that the response seen block is larger or equal to our expectations.
if cacheReply.SeenBlock < slices.Min([]int64{relayCacheGet.SeenBlock, relayCacheGet.RequestedBlock}) { // TODO unitest this.
// Error, our reply seen block is not larger than our expectations, meaning we got an old response
// this can happen only in the case relayCacheGet.SeenBlock < relayCacheGet.RequestedBlock
// by setting the err variable we will get a cache miss, and the relay will continue to the node.
err = utils.LavaFormatDebug("reply seen block is smaller than our expectations",
utils.LogAttr("cacheReply.SeenBlock", cacheReply.SeenBlock),
utils.LogAttr("seenBlock", relayCacheGet.SeenBlock),
)
}
}
// set seen block.
if relayCacheGet.SeenBlock > cacheReply.SeenBlock {
Expand Down
4 changes: 2 additions & 2 deletions ecosystem/lava-sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"bignumber.js": "^9.1.1",
"chalk": "4.1.2",
"commander": "^9.4.1",
"eslint": "^8.29.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"google-protobuf": "^3.21.2",
Expand Down Expand Up @@ -113,4 +113,4 @@
"node": ">=18",
"npm": ">=6.12.0"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,15 @@ describe("ProviderOptimizer", () => {
perturbationPercentage
);
expect(returnedProviders).toHaveLength(1);
console.log(
"[Debugging] expect(returnedProviders[0]).toBe(providers[skipIndex]); Optimizer Issue",
"returnedProviders",
returnedProviders,
"providers",
providers,
"skipIndex",
skipIndex
);
expect(returnedProviders[0]).toBe(providers[skipIndex]);

returnedProviders = providerOptimizer.chooseProvider(
Expand Down
Loading
Loading