Comment 3 for bug 1666320

Revision history for this message
clayg (clay-gerrard) wrote :

On my "bad" frags it doesn't look like there's any checksum information at all:

00000000 03 00 00 00 f5 07 00 00 00 00 00 00 de 17 00 00 |....?.......?...|
00000010 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 00 00 00 00 00 04 00 0d 02 00 cc 5e 0c 0b 09 |...........?^...|
00000040 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000050 4a 78 20 53 2d 65 25 78 2d 60 09 3b 27 72 24 51 |Jx S-e%x-`.;'r$Q|

compared to

00000000 02 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 |................|
00000010 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 00 00 00 00 00 04 00 0d 02 00 cc 5e 0c 0b 00 |............^...|
00000040 04 01 00 3e 17 51 ec 00 00 00 00 00 00 00 00 00 |...>.Q..........|
00000050 cb fd 36 8e 4a d7 1e f8 3d 9a 39 8c 22 90 25 8e |..6.J...=.9.".%.|

so on my bad node it's not possible no matter what the LD_PRELOAD to get the checksum to come back valid...

What's weird is that depending on the LD_PRELOAD the check_crc gets a different computed meta_crc:

ubuntu@saio:/vagrant/.scratch$ LD_PRELOAD=/usr/local/lib/liberasurecode.so.1.4.0 ./check_crc.py /srv/node3/sdb3/objects-1/589/c2b/93464008f434853ad9b74c8c5381ac2b/1498598728.24878#2#d.data
3985286910 3964737342 '>\x17Q\xec'
checksum mismatch!
ubuntu@saio:/vagrant/.scratch$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libz.so ./check_crc.py /srv/node3/sdb3/objects-1/589/c2b/93464008f434853ad9b74c8c5381ac2b/1498598728.24878#2#d.data
3964737342 3964737342 '>\x17Q\xec'
first frag checksum OK

^ different computed value matches stable recorded version depending on preload

root@swift-test-02:~# LD_PRELOAD=/usr/lib/liberasurecode.so.1.4.0 /home/swiftstack/check_crc.py /srv/node/d11/objects-2/398/465/6381800fa3e800cd36d6ea5bf4fd6465/1458349982.69822#3.data
283779307 0 '\x00\x00\x00\x00'
checksum mismatch!
root@swift-test-02:~# LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libz.so /home/swiftstack/check_crc.py /srv/node/d11/objects-2/398/465/6381800fa3e800cd36d6ea5bf4fd6465/1458349982.69822#3.data
2055872539 0 '\x00\x00\x00\x00'
checksum mismatch!

^ different computed value never matches stable (empty) recorded version regardless of preload