Trim extra shred bytes in blockstore (#16602)
Strip the zero-padding off of data shreds before insertion into blockstore Co-authored-by: Stephen Akridge <sakridge@gmail.com> Co-authored-by: Nathan Hawkins <utsl@utsl.org>
This commit is contained in:
@ -2944,7 +2944,6 @@ pub(crate) mod tests {
|
||||
fn test_dead_fork_entry_deserialize_failure() {
|
||||
// Insert entry that causes deserialization failure
|
||||
let res = check_dead_fork(|_, _| {
|
||||
let payload_len = SIZE_OF_DATA_SHRED_PAYLOAD;
|
||||
let gibberish = [0xa5u8; PACKET_DATA_SIZE];
|
||||
let mut data_header = DataShredHeader::default();
|
||||
data_header.flags |= DATA_COMPLETE_SHRED;
|
||||
@ -2957,7 +2956,7 @@ pub(crate) mod tests {
|
||||
);
|
||||
bincode::serialize_into(
|
||||
&mut shred.payload[SIZE_OF_COMMON_SHRED_HEADER + SIZE_OF_DATA_SHRED_HEADER..],
|
||||
&gibberish[..payload_len],
|
||||
&gibberish[..SIZE_OF_DATA_SHRED_PAYLOAD],
|
||||
)
|
||||
.unwrap();
|
||||
vec![shred]
|
||||
|
@ -611,9 +611,7 @@ mod tests {
|
||||
use solana_ledger::{
|
||||
blockstore::make_many_slot_entries,
|
||||
blockstore_processor::fill_blockstore_slot_with_ticks,
|
||||
shred::{
|
||||
max_ticks_per_n_shreds, CodingShredHeader, DataShredHeader, Shred, ShredCommonHeader,
|
||||
},
|
||||
shred::{max_ticks_per_n_shreds, Shred},
|
||||
};
|
||||
use solana_perf::packet::Packet;
|
||||
use solana_sdk::{hash::Hash, pubkey::Pubkey, timing::timestamp};
|
||||
@ -726,23 +724,10 @@ mod tests {
|
||||
nonce,
|
||||
);
|
||||
assert!(rv.is_none());
|
||||
let common_header = ShredCommonHeader {
|
||||
slot,
|
||||
index: 1,
|
||||
..ShredCommonHeader::default()
|
||||
};
|
||||
let data_header = DataShredHeader {
|
||||
parent_offset: 1,
|
||||
..DataShredHeader::default()
|
||||
};
|
||||
let shred_info = Shred::new_empty_from_header(
|
||||
common_header,
|
||||
data_header,
|
||||
CodingShredHeader::default(),
|
||||
);
|
||||
let shred = Shred::new_from_data(slot, 1, 1, None, false, false, 0, 2, 0);
|
||||
|
||||
blockstore
|
||||
.insert_shreds(vec![shred_info], None, false)
|
||||
.insert_shreds(vec![shred], None, false)
|
||||
.expect("Expect successful ledger write");
|
||||
|
||||
let index = 1;
|
||||
@ -954,6 +939,7 @@ mod tests {
|
||||
assert_eq!(shreds[0].slot(), 1);
|
||||
assert_eq!(shreds[0].index(), 0);
|
||||
shreds[0].payload.push(10);
|
||||
shreds[0].data_header.size = shreds[0].payload.len() as u16;
|
||||
blockstore
|
||||
.insert_shreds(shreds, None, false)
|
||||
.expect("Expect successful ledger write");
|
||||
|
Reference in New Issue
Block a user