You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
erasure code - erasure_code_perf.c only checks for erasure corrections in data rows, not parity rows. #383
Hi @jeffareid. Could you share the command line to reproduce this issue? I am running the following command line and it works fine:
./erasure_code/erasure_code_perf -k 4 -p 10 -e 1
Right, that option doesn't work because of the condition that "e <= k". I'll look into it, but there is no issue with any infinite loop, it just prints:
Number of errors (5) cannot be higher than number of data buffers (4)
I forgot I had modified it to test an alternate faster encoding scheme (LFSR with self-reciprocal polynomial), which is how it got stuck in a loop. I edited the original issues, and deleted no longer needed posts.
Suggested changes: the loop to find random error index numbers < k (number of data rows) should be changed to find random numbers < m (total number of rows, data+parity), to check for erasures in both data and parity rows (needed if erasure code used to rebuild an array). With this change, then the number of errors just has to be less than or equal to p (number of parity rows).
Activity
pablodelara commentedon Jan 27, 2026
Hi @jeffareid. Could you share the command line to reproduce this issue? I am running the following command line and it works fine:
./erasure_code/erasure_code_perf -k 4 -p 10 -e 1
pablodelara commentedon Jan 28, 2026
Right, that option doesn't work because of the condition that "e <= k". I'll look into it, but there is no issue with any infinite loop, it just prints:
Number of errors (5) cannot be higher than number of data buffers (4)
jeffareid commentedon Jan 28, 2026
I forgot I had modified it to test an alternate faster encoding scheme (LFSR with self-reciprocal polynomial), which is how it got stuck in a loop. I edited the original issues, and deleted no longer needed posts.
Suggested changes: the loop to find random error index numbers < k (number of data rows) should be changed to find random numbers < m (total number of rows, data+parity), to check for erasures in both data and parity rows (needed if erasure code used to rebuild an array). With this change, then the number of errors just has to be less than or equal to p (number of parity rows).
pablodelara commentedon Feb 5, 2026
Hi @jeffareid. I pushed an update on this application. Feel free to test it ;)
jeffareid commentedon Feb 12, 2026
@pablodelara - erasure_code_update_perf.c should get the same change (%k -> %m).
pablodelara commentedon Mar 4, 2026