[issue1642] hammer v2 mirror-copy + pfs-upgrade + pfs-downgrade makes data unavail

Matthew Dillon dillon at apollo.backplane.com
Tue Jan 5 11:16:35 PST 2010


:commit ec61b2892719413e2fd52a677fc9a1d05d09d59a
:(DragonFly_RELEASE_2_4 HAMMER - Fix root inode creation for slave)
:isn't included on dst (build the day before it was committed);
:I'm not sure if it is included on src (info is in git repo I can't access).
:
:Any chance to get my data back?
:
:I haven't updated src HAMMER file system since problem.
:These data aren't critical (some local changes); do have checkout.
:
: -thomas

    Woa.  That's a serious bug.  I think the data is probably gone.
    I reproduced it immediately on my test box.

    The bug is in how sync_end_tid (in the PFS staus) is being handled.
    The field is not touched for a PFS master and can become stale.
    When you downgraded to a slave the stale value was left intact
    which made the slave inaccessible.  Then when you upgraded to a
    master again the PFS upgrade code rolled back the B-Tree to the
    state as-of sync_end_tid, which was still a stale value.

    When you upgraded the destination after the mirroring operation the
    sync_end_tid was already set properly due to the mirroring operation,
    so that upgrade should have worked.

    I will fix the bug right now.  Basically I have to properly update
    sync_end_tid in the PFS status when downgrading a PFS or bad things
    happen.

						-Matt






More information about the Bugs mailing list