> On Apr 14, 2017, at 12:49, Alan Somers <[email protected]> wrote: > > On Fri, Apr 14, 2017 at 1:41 PM, Ngie Cooper <[email protected]> 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 <[email protected]> (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
signature.asc
Description: Message signed with OpenPGP using GPGMail
