[Mike, please don't top-post responses - it makes it really hard to quote properly. ] On Fri, Sep 24, 2010 at 10:53:43AM -0500, Mike Gao wrote: > On Thu, Sep 16, 2010 at 8:44 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote: > > On Wed, Sep 15, 2010 at 10:59:07AM -0500, Mike Gao wrote: > > > xlog_recover_process_iunlinks( > > > xlog_t *log) > > > { > > > /* > > > * Reacquire the agibuffer and continue around > > > * the loop. This should never fail as we know > > > * the buffer was good earlier on. > > > */ > > > error = xfs_read_agi(mp, NULL, agno, &agibp); > > > ASSERT(error == 0); > > > agi = XFS_BUF_TO_AGI(agibp); > > > > > > } > > > If no defined DEBUG, ASSERT will not work and agibp could be ZERO if > > there > > > is a error in xfs_read_agi. > > > And the comment shouldn't say it never fail because xfs_read_agi will > > > return error in function and it does when there is forced shutdown. > > > > Have you seen a failure here? > > I am curious about how this happens. What, how a failure happens there? The ASSERT is saying that a failure should never happen there.... > This error is caused by log recovery when mount try to fill super block. As > super block is protected by log or Journaling, it shouldn't be corrupted or > can't be recovery by journaling. I'm not sure I follow you here - the above is reading an AGI, not a superblock. What is the stack trace that you've seen? > Anyway, this is reported as XFS INTERNAL ERROR. > > XFS internal error XFS_WANT_CORRUPTED_GOTO at line 4147 of file > fs/xfs/xfs_bmap.c. Caller 0x871b9c26 That is from a corrupted bmap btree, which has no connection to the AGI. I'm confused by what problems you are trying to report. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs