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

Backport e2e-test of the latest tendermint main branch #536

Merged
merged 6 commits into from
Dec 22, 2022

Conversation

tnasu
Copy link
Member

@tnasu tnasu commented Dec 20, 2022

Description

e2e-test is old and it makes too many failures each PR and Push. I investigated the error logs of e2e-test, and it shows light01 failure due to starting delay. light01 depends on the witness("validator01", "validator02", "validator03") and validator02 depends on the seeds("seed02"). And the log shows that "seed02" is in the process of starting normally. Therefore, "validator02" and "light01" were also starting up and did not reach the expected Height within the expected time, resulting in an error. So "seed02" is removed.

  • light01 happened an error
light01        | I[2022-12-21|02:55:43.981] Downloading trusted light block using options module=main 
light01        | I[2022-[12](https://github.com/line/ostracon/actions/runs/3738979308/jobs/6360920253#step:10:13)-21|02:55:43.985] error comparing first header with witness. You may want to consider removing the witness module=main err="light block not found"
light01        | panic: runtime error: invalid memory address or nil pointer dereference
light01        | [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xc220b4]
light01        | 
light01        | goroutine 30 [running]:
light01        | github.com/line/ostracon/light/provider/http.(*http).LightBlock(0xc000ba1a40, {0x153f440, 0xc000b64c40}, 0x0)
light01        | 	/src/ostracon/light/provider/http/http.go:86 +0x[13](https://github.com/line/ostracon/actions/runs/3738979308/jobs/6360920253#step:10:14)4
light01        | github.com/line/ostracon/light.(*Client).getTargetBlockOrLatest(0xc000ba1a40?, {0x153f440, 0xc000b64c40}, 0x3e8, {0x153c3a0, 0xc000ba1a40})
light01        | 	/src/ostracon/light/detector.go:382 +0x3c
light01        | github.com/line/ostracon/light.(*Client).compareNewHeaderWithWitness(0xc00003e840, {0x153f440, 0xc000b64c40}, 0xc00005ff78?, 0xc000537a70, {0x153c3a0, 0xc000ba1a40}, 0x0)
light01        | 	/src/ostracon/light/detector.go:136 +0x285
light01        | created by github.com/line/ostracon/light.(*Client).compareFirstHeaderWithWitnesses
light01        | 	/src/ostracon/light/client.go:1[14](https://github.com/line/ostracon/actions/runs/3738979308/jobs/6360920253#step:10:15)5 +0x96b
  • validator02 is starting now, it's not started, so light01 cannot get a block
validator02    | I[2022-12-21|02:55:26.107] received complete proposal block             module=consensus height=1000 hash=158E96A848B4AF973BAFAF7453B3077DEDE33044D49C327B44A853A101C86E88
validator02    | I[2022-12-21|02:55:29.105] Timed out                                    module=consensus dur=3s height=1000 round=0 step=RoundStepPropose
validator02    | I[2022-12-21|02:55:50.053] Starting Peer service                        module=p2p peer=2551a13ed720101b271a5df4816d1e4b3d3bd133@[fd80:b10c::6]:52926 impl="Peer{MConn{[fd80:b10c::6]:52926} 2551a13ed720101b271a5df4816d1e4b3d3bd133 in}"
validator02    | I[2022-12-21|02:55:50.053] Starting MConnection service                 module=p2p 
  • seed02 is started at "02:55:50", so validator02 cannot start
seed02         | I[2022-12-21|02:55:50.602] commit is for a block we do not know about; set ProposalBlock=nil module=consensus height=1000 commit_round=1 proposal= commit=B0278D2A75529747D37EFB72D40A9A30AB6EEC716BAE3C490F3DB45F9246428B
seed02         | I[2022-12-21|02:55:50.703] received complete proposal block             module=consensus height=1000 hash=B0278D2A75529747D37EFB72D40A9A30AB6EEC716BAE3C490F3DB45F9246428B
seed02         | I[2022-12-21|02:55:50.704] finalizing commit of block                   module=consensus height=1000 hash=B0278D2A75529747D37EFB72D40A9A30AB6EEC716BAE3C490F3DB45F9246428B 

Based on: tendermint/tendermint@b1fbe26

Refs:

Remarks: (Excludes some of the new features)

@codecov
Copy link

codecov bot commented Dec 20, 2022

Codecov Report

Merging #536 (8b6b7a6) into main (67311dc) will increase coverage by 0.00%.
The diff coverage is 92.00%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #536   +/-   ##
=======================================
  Coverage   66.27%   66.28%           
=======================================
  Files         280      281    +1     
  Lines       38133    38147   +14     
=======================================
+ Hits        25273    25285   +12     
+ Misses      11063    11048   -15     
- Partials     1797     1814   +17     
Impacted Files Coverage Δ
test/e2e/generator/main.go 55.00% <70.00%> (+55.00%) ⬆️
test/e2e/generator/random.go 98.18% <92.85%> (ø)
libs/log/lazy.go 100.00% <100.00%> (ø)
libs/log/ocfmt_logger.go 84.28% <100.00%> (+0.70%) ⬆️
test/e2e/generator/generate.go 90.41% <100.00%> (-0.76%) ⬇️
libs/events/events.go 93.23% <0.00%> (-5.27%) ⬇️
privval/socket_listeners.go 79.72% <0.00%> (-4.06%) ⬇️
blockchain/v0/pool.go 79.06% <0.00%> (-3.11%) ⬇️
privval/signer_listener_endpoint.go 88.88% <0.00%> (-2.39%) ⬇️
... and 12 more

@Kynea0b Kynea0b added the C: bug Classification: Something isn't working label Dec 21, 2022
@tnasu tnasu force-pushed the main-e2e branch 9 times, most recently from 8672484 to a500e4b Compare December 21, 2022 12:46
@tnasu tnasu marked this pull request as ready for review December 21, 2022 13:23
@ulbqb ulbqb self-requested a review December 22, 2022 02:26
libs/log/ocfmt_logger_test.go Outdated Show resolved Hide resolved
libs/log/ocfmt_logger_test.go Outdated Show resolved Hide resolved
test/e2e/generator/main_test.go Outdated Show resolved Hide resolved
@Kynea0b
Copy link
Contributor

Kynea0b commented Dec 22, 2022

Simple question. Please tell me what you think. @tnasu
Q1. About fixing timing errors
Since validator02 depends on seed02, light01, which depends on validator02, cannot get a block if seed02 is delayed. So, validator02 is set to depend on seed01 like validator03 and validator01.

Is it a change that lowered the probability of failure due to delay with the above change?

Q2. About post-commit errors
https://github.com/line/ostracon/actions/runs/3749344661/jobs/6367896870#step:9:12

E[2022-12-21|12:55:35.620] timed out waiting for seed01 to reach height 0

Looking at this error, does this mean that if seed01 is late it can error out as well?

@tnasu
Copy link
Member Author

tnasu commented Dec 22, 2022

@kokeshiM0chi

Q1

Yes, it does. Because we cannot control the network condition on GitHub Actions.

Q2

Yes, it does. But, if seed01 happens an error, it returns an error immediately and we can re-run e2e-test immediately. light02's error is so late and waits a long time.

Copy link
Member

@ulbqb ulbqb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@Kynea0b Kynea0b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tnasu tnasu merged commit 1fb0dda into Finschia:main Dec 22, 2022
@tnasu tnasu deleted the main-e2e branch December 22, 2022 08:37
@torao
Copy link
Contributor

torao commented Jan 18, 2023

Tip: The test/maverick using the Byzantine node has been removed in this PR. In subsequent modifications, it's not necessary to also modify the maverick package when modifying consensus or node modules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: bug Classification: Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants