On Fri, Apr 14, 2017 at 1:58 PM, Ngie Cooper (yaneurabeya) <yaneurab...@gmail.com> wrote: > >> 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
Right: check_size() needs to know the on-disk size of the core dump. But it doesn't have any way to know the on-disk size until after it's written everything to disk. That's why I simply disabled the check at $WORK. Another possibility would be for savecore to ignore the up-front check, but handle ENOSPC by deleting the fragmentary vmcore file. I never tried to implement that. -Alan _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"