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

Handle failing fee conversion #2159

Merged
merged 2 commits into from
Oct 9, 2023
Merged

Handle failing fee conversion #2159

merged 2 commits into from
Oct 9, 2023

Conversation

karlb
Copy link
Contributor

@karlb karlb commented Jul 12, 2023

#2134 leads us to
believe that there are failures happening in production. This change

  • Handles error cases by skipping processing of respective txs instead
    of segfaulting
  • Logs tx information in these cases to better understand why this is
    happening

Skipping transactions where conversion is not possible is analogous to
handling other cases of bad transactions. But since the linked issue
only happens for some nodes, I am not sure if this is the right thing to
do or if we should intentionally panic in that case to avoid harder to
debug consensus failures due to having different nodes process a
different set of transactions.

I would not recommend merging this PR before Gingerbread unless we are very confident that we are doing the right thing.

Very basic error logging for the problematic case has already been merged in #2157.

@github-actions
Copy link

github-actions bot commented Jul 12, 2023

Coverage from tests in ./e2e_test/... for ./consensus/istanbul/... at commit b621b9a

coverage: 50.0% of statements across all listed packages
coverage:  63.0% of statements in consensus/istanbul
coverage:  40.0% of statements in consensus/istanbul/announce
coverage:  54.6% of statements in consensus/istanbul/backend
coverage:   0.0% of statements in consensus/istanbul/backend/backendtest
coverage:  24.3% of statements in consensus/istanbul/backend/internal/replica
coverage:  65.1% of statements in consensus/istanbul/core
coverage:  45.0% of statements in consensus/istanbul/db
coverage:   0.0% of statements in consensus/istanbul/proxy
coverage:  64.2% of statements in consensus/istanbul/uptime
coverage:  51.8% of statements in consensus/istanbul/validator
coverage:  79.2% of statements in consensus/istanbul/validator/random

@github-actions
Copy link

github-actions bot commented Jul 12, 2023

5862 passed, 45 skipped

@codecov
Copy link

codecov bot commented Jul 12, 2023

Codecov Report

Attention: 8 lines in your changes are missing coverage. Please review.

Comparison is base (9ec64bb) 55.08% compared to head (376bf8b) 55.07%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2159      +/-   ##
==========================================
- Coverage   55.08%   55.07%   -0.01%     
==========================================
  Files         681      681              
  Lines      114405   114413       +8     
==========================================
- Hits        63015    63014       -1     
+ Misses      47509    47504       -5     
- Partials     3881     3895      +14     
Files Coverage Δ
core/types/transaction.go 54.37% <50.00%> (-0.42%) ⬇️
miner/block.go 50.53% <55.55%> (-0.55%) ⬇️

... and 25 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@karlb karlb marked this pull request as ready for review July 12, 2023 08:41
karlb added 2 commits October 6, 2023 15:15
The declaration is repeated multiple times and I am about to change it,
so it is nice to pull it into a typedef.
#2134 leads us to
believe that there are failures happening in production. This change
* Handles error cases by skipping processing of respective txs instead
  of segfaulting
* Logs tx information in these cases to better understand why this is
  happening

Skipping transactions where conversion is not possible is analogous to
handling other cases of bad transactions. But since the linked issue
only happens for some nodes, I am not sure if this is the right thing to
do or if we should intentionally panic in that case to avoid harder to
debug consensus failures due to having different nodes process a
different set of transactions.
@karlb karlb force-pushed the karlb/tocelo-error-logging2 branch from 95e3a15 to 376bf8b Compare October 6, 2023 13:15
@karlb karlb enabled auto-merge (squash) October 6, 2023 13:15
@karlb karlb disabled auto-merge October 6, 2023 16:29
@karlb karlb enabled auto-merge (squash) October 6, 2023 16:30
@karlb karlb merged commit b621b9a into master Oct 9, 2023
@karlb karlb deleted the karlb/tocelo-error-logging2 branch October 9, 2023 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants