Re: [PATCH v3 00/10] xfs_ioc_bulkstat code refactoring and consolidation

Jeff Liu
2014-07-31T07:51:40Z

Hi Dave,

On 07/30/2014 07:27 AM, Dave Chinner wrote:
> On Tue, Jun 03, 2014 at 05:17:42PM +0800, Jeff Liu wrote:
>> Hi folk,
>>
>> This is the revised patches for xfs_ioc_bulkstat consolidation and code
>> refactoring. As per Christoph's comments, I'm not include the per AG
>> inumber patch in this series given that I don't actually introduce the
>> relevant inumbers interface now. Similar to that reason, I also dropped
>> the per AG bulkstat patch, it would be included in parallel quota check
>> series.
>>
>>
>> v3->v2:
>> - one major bug fix is at xfs_bulkstat_ag_ichunk() regarding the user buffer
>> pointer operations, it should be defined as a pointer-to-pointer since it
>> would be updated inside xfs_bulkstat_ag_ichunk().
>>
>> - separate xfs_inumber consolidate patch into two patches, the first one
>> fix the formater function return value and consolidate the codes, another
>> one does the actual logic changes for better error handling.
>>
>> - Add a separate patch to get rid of the redundant user buffer count
>> checks at xfs_bulkstat()
>>
>> - fixed agino calculation issue at xfs_bulkstat_grab_ichunk().
>>
>> v2: http://oss.sgi.com/archives/xfs/2014-04/msg00554.html
>> v1: http://oss.sgi.com/archives/xfs/2013-12/msg00901.html
>>
>>
>> Any comments are welcome!
>
> Hi Jeff, I ported this to the current dev tree based on the
> xfs-libxfs-restructure branch, and I keep seeing fsstress failing
> with memory corruption after random bulkstat ioctls. I see regular
> failures with generic/013, generic/068, xfs/167 and the other
> fstress tests also randomly fail. The typical failure is glibc
> detected memory heap corruption on freeing the bulkstat structure
> after the ioctl:
>
> generic/068 42s ...*** Error in `./ltp/fsstress': double free or corruption (!prev): 0x00007f0224000b70 ***
> ======= Backtrace: =========

Sorry for my late response and thanks for help porting this patch series.

Now I can reproduce this issue frequently with generic/013, will try to fix
it ASAP.