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

Stop Bad Trees from Exiting Backfiller Tree Lookup #113

Merged
merged 1 commit into from
Dec 1, 2023

Conversation

kespinola
Copy link
Collaborator

Issue

The fetch_trees_by_gpa called used to gather up trees on-chain that need to be included in the DAS index exits returning an error if there is any issues deserializing any of the queried trees. The error prevents any trees any of the discovered tree from being included in the backfill.

Failed to get size of max depth 12 and max buffer size 32                                                                                                                                                                                                                                                             [36/18983]
{"timestamp":"2023-12-01T14:42:04.061547Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 10 and max buffer size 32
{"timestamp":"2023-12-01T14:42:04.069132Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 7 and max buffer size 16
{"timestamp":"2023-12-01T14:42:04.074816Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 10 and max buffer size 32
{"timestamp":"2023-12-01T14:42:04.075639Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 10 and max buffer size 32
{"timestamp":"2023-12-01T14:42:04.079972Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 10 and max buffer size 32
{"timestamp":"2023-12-01T14:42:04.086461Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 10 and max buffer size 32
{"timestamp":"2023-12-01T14:42:04.089533Z","level":"ERROR","fields":{"message":"Failed to get size: AnchorError { error_name: \"ConcurrentMerkleTreeConstantsError\", error_code_number: 6003, error_msg: \"An unsupported max depth or max buffer size constant was provided\", error_origin: Some(Source(Source { filename: \"
/Users/kyleespinola/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spl-account-compression-0.2.0/src/state/concurrent_merkle_tree_header.rs\", line: 195 })), compared_values: None }","log.target":"nft_ingester::backfiller","log.module_path":"nft_ingester::backfiller","log.file":"nft_ingester/src/backfiller.rs","l
og.line":753},"target":"nft_ingester::backfiller"}
Failed to get size of max depth 12 and max buffer size 32

Fix

Capture any deserialization errors and instead of exiting skip that tree so others can be gathered.

Discussion

  1. The spl-account-compression crate is missing latest version of get_size macro.
    https://explorer.solana.com/address/8ELPLXBvqzbxjETTdccJo6ucXDG1mzSFQLC9ncaNEjL3
    The depth buffer combinations resulting in errors were added in this PR. However, there is no later version of the program to include in the project.
    [account compression] add height: 6-9 @ buffer: 16, height: 10-13 @ buffer: 32 solana-labs/solana-program-library#5438

…_tree_get_size errors from not being able to determine the trees size. this immediately ends the loop and logs the error preventing trees from being gathered. instead continue to the next tree and exclude it from the trees to backfill.
@Juanito87 Juanito87 merged commit ba20d9d into triton-build Dec 1, 2023
2 checks passed
@Juanito87 Juanito87 deleted the espi/backiller-bad-trees branch December 1, 2023 15:53
linuskendall pushed a commit that referenced this pull request Dec 29, 2023
…_tree_get_size errors from not being able to determine the trees size. this immediately ends the loop and logs the error preventing trees from being gathered. instead continue to the next tree and exclude it from the trees to backfill. (#113)
linuskendall pushed a commit that referenced this pull request Jan 11, 2024
…_tree_get_size errors from not being able to determine the trees size. this immediately ends the loop and logs the error preventing trees from being gathered. instead continue to the next tree and exclude it from the trees to backfill. (#113)
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