Fw:About bcache-check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Resending with no HTML format  ... ...


Hi Coly and all,
     I found there is an error message in our testing:


Sep 27 17:43:00 node-1 kernel: bcache: error on 
c2914b7e-d665-4ec1-80e1-272755de19ef: unsupported bset version at bucket
 58290, block 0, 40818810 keys, disabling caching


I checked the code in bch_btree_node_read_done() around this message:

 214         for (;
 215              b->written < btree_blocks(b) && i->seq == b->keys.set[0].data->seq;
 216              i = write_block(b)) {
 217                 err = "unsupported bset version";
 218                 if (i->version > BCACHE_BSET_VERSION)
 219                         goto err;
 220 
The problem is we found the i->seq is what we expected for this btree_node, but the version is not BCACHE_BSET_VERSION (1)



I think there would be two reasons to cause this messages:
(1) cache discard is not enabled.
      When we allocate a bucket, if we dont enable discard, there could be some outdated data in this bucket, 

and there is possibility that the location of i->seq is equal to what we expected,

but that's really not an bset at all, so we will found version, magic and bset_csum are all unexpected, 

currently we will goto err and stop cache_set.


(2) power-cut.
       When we are doing btree_node_write, if there is a power-cut happen, we could write a partial btree.
 

But when we meet this kind of problems, we cant use this cache device. There is no tool to recovery from this kind of problem.

I think I can cook a bcache-check in bcache-tools, something like fsck. to check this kind of problem

and allow user to repair it, warning on user force-repaire is risky.



Please help to point out if there is something I am missing. 



Thanx
Dongsheng







[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux