> On Apr 14, 2017, at 12:49, Alan Somers <asom...@freebsd.org> wrote:
> 
> On Fri, Apr 14, 2017 at 1:41 PM, Ngie Cooper <n...@freebsd.org> wrote:
>> Author: ngie
>> Date: Fri Apr 14 19:41:48 2017
>> New Revision: 316938
>> URL: https://svnweb.freebsd.org/changeset/base/316938
>> 
>> Log:
>>  savecore: fix space calculation with respect to `minfree` in check_space(..)
>> 
>>  - Use strtoll(3) instead of atoi(3), because atoi(3) limits the
>>    representable data to INT_MAX. Check the values received from
>>    strtoll(3), trimming trailing whitespace off the end to maintain
>>    POLA.
>>  - Use `KiB` instead of `kB` when describing free space, total space,
>>    etc. I am now fully aware of `KiB` being the IEC standard for 1024
>>    bytes and `kB` being the IEC standard for 1000 bytes.
>>  - Store available number of KiB in `available` so it can be more
>>    easily queried and compared to ensure that there are enough KiB to
>>    store the dump image on disk.
>>  - Print out the reserved space on disk, per `minfree`, so end-users
>>    can troubleshoot why check_space(..) is reporting that there isn't
>>    enough free space.
>> 
>>  MFC after:    7 weeks
>>  Reviewed by:  Anton Rang <r...@acm.com> (earlier diff), cem (earlier diff)
>>  Tested with:  positive/negative cases (see review); make tinderbox
>>  Sponsored by: Dell EMC Isilon
>>  Differential Revision:        D10379
> 
> The free space calculation is still uselessly conservative, because it
> doesn't account for the fact that core dumps will always be either
> spare or compressed.  The result is that savecore will frequently
> refuse to save corefiles even when there's plenty of space.  I
> proposed removing the space check altogether in
> https://reviews.freebsd.org/D2587.  However, I agreed to wait until
> after the compressed core dump feature was merged, because then mostly
> accurate space checks will be possible.  AFAIK the compressed core
> dump feature still hasn't been finished.

That CR concerns me.

The whole being able to check how much space we have on disk before dumping is 
a wonderful tool because it prevents users from having /var/crash be full of 
truncated full dumps, text dumps, and/or mini dumps.

The real problem that you’re bringing up is that the size being passed in to 
check_size(..) is wrong. It needs to be the on-disk size (which can be a 
pessimization from gzip/zlib), not the in-memory size of all of the dumped 
pages.

Thanks for the note — this helps me with another related issue at $work that 
will likely prevent me from being able to write proper tests to test out panic 
dumps on OneFS :).

Cheers!
-Ngie

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to