Skip to contentSkip to conversation

JFFS2 wrong data CRC message

DISCUSSION Adrian Hunter 4 participants 8 messages May 2, 2007 – May 3, 2007 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

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.

#1 lore raw
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 at 0x07e85800: read 0x86c6656c, calculated 0xaf4f2bc5.

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
#2 lore raw
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 at 0x07e85800: read 0x86c6656c, calculated 0xaf4f2bc5.

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.

#3 lore raw
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
#4 lore raw
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
#5 lore raw
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
#7 lore raw
In reply to Adrian Hunter
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