NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Why so many .core files being created?



At Wed, 30 Apr 2025 00:06:20 +0600, unadvised%airmail.cc@localhost wrote:
Subject: Why so many .core files being created?
>
> 1. Why are .core files created?

Usually it is because of bugs in the programs that crash.

> 2. How can I disable creating .core files (without solving the crash)?
> Is there any config somewhere, like FreeBSD's kern.coredump sysctl
> switch?

There are some sysctl knobs related to core dumps:

$ /sbin/sysctl -a | fgrep core
kern.defcorename = %n.core
kern.coredump.setid.dump = 1
kern.coredump.setid.path = /var/crash/%u-%n-%p.core
kern.coredump.setid.owner = 0
kern.coredump.setid.group = 0
kern.coredump.setid.mode = 0600 (rw------- )
proc.curproc.corename = %n.core
proc.curproc.rlimit.coredumpsize.soft = unlimited
proc.curproc.rlimit.coredumpsize.hard = unlimited

(the last three are not exactly relevant)

Basically though to stop core dumps you want to set the rlimits for
coredumpsize to zero, and that can be done in a wide variety of ways,
including via /etc/login.conf or in your ~/.profile, etc.

To do this via your ~/.profile you would use the "ulimit" command.  This
would only affect processes started by your login shell, not those
started from an X11 session.

So, using /etc/login.conf is probably best if you are using xdm to login
to an X11 session, but you may have to set up a specific login class for
your user unless you're willing to brute-force it for every user with
the "default" class.  See login.conf(5) for details of course.  I leave
the kernel defaults untouched for coredumpsize, except for a class I
created for the superuser (that I named "rootclass"), and for it I set
the limits to "inf":

rootclass|Special login class used by root account:\
        :coredumpsize-max=inf:\
        :coredumpsize-cur=inf:\
        :cputime-max=inf:\
        :cputime-cur=inf:\
        :datasize-max=inf:\
        :datasize-cur=inf:\
        :filesize-max=inf:\
        :filesize-cur=inf:\
        :ignorenologin:\
        :login-retries=3:\
        :login-backoff=5:\
        :maxproc-max=inf:\
        :maxproc-cur=500:\
        :maxthread-max=inf:\
        :maxthread-cur=inf:\
        :memoryuse-max=inf:\
        :memoryuse-cur=inf:\
        :memorylocked-max=inf:\
        :memorylocked-cur=2G:\
        :minpasswordlen=8:\
        :openfiles-max=inf:\
        :openfiles-cur=2000:\
        :passwordtime@:\
        :path=/root/bin /sbin /usr/sbin /bin /usr/bin /usr/X11R7/bin /usr/pkg/sbin /usr/pkg/bin /usr/local/sbin /usr/local/bin:\
        :requirehome@:\
        :sbsize-max=inf:\
        :sbsize-cur=inf:\
        :stacksize-max=inf:\
        :stacksize-cur=32M:\
        :vmemoryuse-max=inf:\
        :vmemoryuse-cur=32G:\
        :tc=default:


> 3. How can I solve the issue so that there are no more crashes+*.core?

Well, that will depend on your programming and bug fixing skills!  :-)



> For #3 I have a feeling it might be something relating to limited RAM
> given to programs by NetBSD in default setup. I was thinking if
> login.conf can solve this? My /etc/login.conf is mostly commented
> except I have a rule for tor. In case needed, dmesg on the machine
> says:
>
> avail memory = 3736 MB

I doubt that's the cause of things like SIGSEGV -- usually you would see
other problems first, though sometimes programs won't check for memory
allocation failures and will then do bad things, such as dereference a
null pointer, and that will of course cause a SIGSEGV.

--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

Attachment: pgp5MggJf5KJb.pgp
Description: OpenPGP Digital Signature



Home | Main Index | Thread Index | Old Index