Guard history subsystem against corrupt data
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- distributed-systems
Research direction
Start by tracing the history subsystem around XDRInputFileStream::readOne and the handling of xdr::xdr_runtime_error. Inspect related history-data paths for additional malformed-input resource conditions; done means bad history data no longer crashes nodes or causes excessive downloading and processing.
Written by the indexing model from the issue text.
Description
Couple things that we don't seem to do much about:
-
no guard for xdr::xdr_runtime_error that is thrown when an xdr object cannot be de-serialized
-
no check for abnormally large objects XDRInputFileStream::readOne will happily accept objects that are 2GB
-
will crash nodes depending on the bad data
-
will also crash nodes but after spending a lot of time downloading bogus data
There are probably more conditions that may lead to nodes spending extraordinary amount of resources when facing bad data stored in history. (note that the bad dataset could be there by accident/bug, not just because of an active attack).
- Dominant language
- C++
- Stars
- 3.3k
- Forks
- 1.1k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 14
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stellar/stellar-core
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
stellar/stellar-core#5451 · 1 comment ·
-
enhancement
stellar/stellar-core#5441 · 1 assignee ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 68/100
stellar/stellar-core#5437 · 1 comment ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
stellar/stellar-core#5431 ·
-
stellar/stellar-core#5430 · 1 assignee ·
All issues in stellar/stellar-core
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·