Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

why crc16_t10dif() may make mistakes but crc16_t10dif_copy() running OK in file storage test ?

Open
#293 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
c
Domain
data

Research direction

Start at the reported call chain hcrc_calc_csum16_inner -> crc16_t10dif -> crc16_t10dif_by16_10, and compare it with crc16_t10dif_copy() during the file-write test. Reproduce the CRC mismatch with a minimal case if possible, then determine whether the fault is in the API call or the surrounding storage operation and document the evidence.

Written by the indexing model from the issue text.

Description

Problem description
in our distributed file storage, we use isa-l crc as data validation in file storage io . to be sure, we use the API as follows:
crc16_t10dif()
however, in our test,the API return error, and some partial stack information is as follows:

(gdb) bt
#0 0x00000000004404f4  in crc16_t10dif_by16_10() 
#1 0x00007fdef2d86377 in hcrc_calc_csum16_inner (...)
...

The calling relationship of functions is: hcrc_calc_csum16_inner -- > crc16_t10dif -- > crc16_t10dif_by16_10

and,there is crc bug happens when performing file write operations.
But when we switch crc16_t10dif to crc16_t10dif_copy(), the program is OK
What a strange thing ???
now, we have 2 ideas as follows:
(1). the function crc16_t10dif has mistakes itself when using it, but we have no idea how it happens, e.g compile optimization;
(2). running error in crc16_t10dif maybe has relationship with our file storage business or something , however, we can't catch it.

So, we want to know, if somebody has meet the same questions ? thanks a lot.

Dominant language
C
Stars
1.1k
Forks
350
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from intel/isa-l

All issues in intel/isa-l

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.