The linearstore now implements a 32-bit checksum in the record tail to check data integrity of the xid and data sections of the record. These have not been implemented (the value 0x0 is hardwired currently) and need some developement effort.
Upstream bug: https://issues.apache.org/jira/browse/QPID-5358
Fixed in r.1547601 See upstream bug (comment 1) for further comments.
Could you please describe implemeted checksum, like where it is written, for which items is computed, etc. ?
The checksum is calculated for the entire record except the record tail, ie header, xid (if present) and data (if present). The checksum uses the Adler-32 algorithm, and is implemented in the store in linearstore/jrounal/Checksum.h, cpp. There is a Python equivalent in zlib which I use in the linearstore file analyzer, and can be used as follows: import zlib def adler32(data): return slib.adler32(data) & 0xffffffff and will return identical results to the c++ version for the same data.
This was checked on RHEL 6.5 i386 & x86_64 with packages: perl-qpid-0.22-7.el6 python-qpid-0.22-11.el6 python-qpid-qmf-0.22-27.el6 qpid-cpp-client-0.22-35.el6 qpid-cpp-client-devel-0.22-35.el6 qpid-cpp-client-devel-docs-0.22-35.el6 qpid-cpp-debuginfo-0.22-35.el6 qpid-cpp-server-0.22-35.el6 qpid-cpp-server-devel-0.22-35.el6 qpid-cpp-server-ha-0.22-35.el6 qpid-cpp-server-linearstore-0.22-35.el6 qpid-cpp-server-xml-0.22-35.el6 qpid-java-client-0.22-6.el6 qpid-java-common-0.22-6.el6 qpid-java-example-0.22-6.el6 qpid-jca-0.22-2.el6 qpid-jca-xarecovery-0.22-2.el6 qpid-proton-c-0.6-1.el6 qpid-proton-c-devel-0.6-1.el6 qpid-proton-debuginfo-0.6-1.el6 qpid-qmf-0.22-27.el6 qpid-qmf-debuginfo-0.22-27.el6 qpid-snmpd-1.0.0-15.el6 qpid-snmpd-debuginfo-1.0.0-15.el6 qpid-tools-0.22-8.el6 ruby-qpid-qmf-0.22-27.el6 -> VERIFIED
Since this was a check / review setting qe_test_coverage-