JFFS2 wrong data CRC message
Hi
Can someone explain why this message is not an error?
JFFS2 notice: (17573) read_dnode: wrong data CRC in data node at 0x07e85800: read 0x86c6656c, calculated 0xaf4f2bc5.
Quoted 4 lines · Adrian Hunter
Can someone explain why this message is not an error?
JFFS2 notice: (17573)
read_dnode: wrong data CRC in data node at0x07e85800: read0x86c6656c, calculated0xaf4f2bc5.
Because it's almost certainly harmless. It usually just means that you rebooted or reset without cleanly unmounting -- and thus without the writebuffer getting flushed to finish the node it was writing at the time. So the data CRC fails, and the node is ignored.
Signature · 1 line
dwmw2
Quoted 11 lines · ext David Woodhouse
Quoted 4 lines · Adrian Hunter
Can someone explain why this message is not an error?
JFFS2 notice: (17573)
read_dnode: wrong data CRC in data node at0x07e85800: read0x86c6656c, calculated0xaf4f2bc5.Because it's almost certainly harmless. It usually just means that you rebooted or reset without cleanly unmounting -- and thus without the writebuffer getting flushed to finish the node it was writing at the time. So the data CRC fails, and the node is ignored.
Unfortunately I started with an empty flash and have not rebooted at all.
I've been running stress tests constantly for about a week, and this is the only JFFS2 message. The tests do unmount and remount, but there are no error messages.
So unless you can offer an alternative explanation I am going to have to assume it is an error.
Quoted 8 lines · Adrian Hunter
Unfortunately I started with an empty flash and have not rebooted at all.
I've been running stress tests constantly for about a week, and this is the only JFFS2 message. The tests do unmount and remount, but there are no error messages.
So unless you can offer an alternative explanation I am going to have to assume it is an error.
That's certainly possible -- and in fact is why I've resisted the persistent requests _not_ to print that message.
Can I see a hexdump of the offending node?
Signature · 1 line
dwmw2
Quoted 7 lines · David Woodhouse
Quoted 6 lines · Adrian Hunter
Unfortunately I started with an empty flash and have not rebooted at all.
I've been running stress tests constantly for about a week, and this is the only JFFS2 message. The tests do unmount and remount, but there are no error messages.
Quoted 5 lines
Quoted 2 lines
So unless you can offer an alternative explanation I am going to have to assume it is an error.
That's certainly possible -- and in fact is why I've resisted the persistent requests _not_ to print that message.
You could add a new node type to mark "safe" crc errors. Something roughly like this:
- Print error for crc errors, unless the next node in eraseblock is a "known crc error" node.
- Write "known crc error" node on mount for any node that is the last in an eraseblock if there still is enough room to write further data.
That should be able to eliminate most false positive. If you care.
Jörn
Signature · 3 lines
The wise man seeks everything in himself; the ignorant man tries to get everything from somebody else. -- unknown
Quoted 8 lines · Jörn Engel
You could add a new node type to mark "safe" crc errors. Something roughly like this:
- Print error for crc errors, unless the next node in eraseblock is a "known crc error" node.
- Write "known crc error" node on mount for any node that is the last in an eraseblock if there still is enough room to write further data.That should be able to eliminate most false positive. If you care.
I'm not sure we even need to go that far. If the data CRC fails and the last data bytes are 0xFF rather than anything else, then it's almost certain it's an unfinished write. I just don't care -- I'm happy enough seeing the warning.
Signature · 1 line
dwmw2 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
Quoted 1 line · ext David Woodhouse
Can I see a hexdump of the offending node?
Sorry it is long gone. The problem is most likely the OneNAND driver anyway.
Quoted 7 lines · Adrian Hunter
Quoted 6 lines
Because it's almost certainly harmless. It usually just means that you rebooted or reset without cleanly unmounting -- and thus without the writebuffer getting flushed to finish the node it was writing at the time. So the data CRC fails, and the node is ignored.
Unfortunately I started with an empty flash and have not rebooted at all.
I'd suspect some caching issues.
Vitaly