Bug 919793
| Summary: | /etc/security/limits.d/90-nproc.conf enforces ancient ulimit of 1024 nproc's and overrides /etc/security/limits.conf custom settings | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | james.greene <james.greene> |
| Component: | pam | Assignee: | Tomas Mraz <tmraz> |
| Status: | CLOSED WONTFIX | QA Contact: | Dalibor Pospíšil <dapospis> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.3 | CC: | armin.hammer, bjohnson, cplummer+bz, dapospis, ihavenoemail, jlightner, mpoole, redhat-bugs, sreber, viggiani |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-09-18 13:54:14 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1002711 | ||
|
Description
james.greene
2013-03-10 06:05:08 UTC
I came up with a consistent fix for my point that a sysadmin has to defend against new settings popping up in /etc/security/limits.d: cd /etc/security/limits.d/ ln -s ../limits.conf 99-zzzzzzzzzzzzzz.conf This way, when all the files are stacked, the limits.conf file is re-examined last of all files in limits.d, due to the symlink with exaggerated alphanumeric listing. Aside from my other points, can you put this symlink into a base package to protect the original intent of limits.conf being the real config location? I mostly agree with you that the ordering should have been done the other way - that is the limits.conf contents should override the settings in the files in the limits.d directory. On the other hand the upstream pam_limits module behaves this way and we cannot change this in a released version of the Red Hat Enterprise Linux as we could break configurations that depend on this. We can document your workaround in the manual pages and the limits.conf file. Tomas, I understand your statement that this bug is now in the current release and upstream (I see for several years). However, the expected behavior is that /etc/security/limits.conf is the authoritative configuration file. The bug behavior breaks the user experience, and will lead to continued outages for future generations. And it is only slowly being seen to cause issues because very few packagers (exception: pam's 90-nproc.conf) have seen fit to use it. To address the statement, "we could break configurations that depend on this", consider the likely impact -- if you revert to original behavior and a user puts in limits.conf a value that overrides the few examples of packagers' limits.d/*.conf files, then who is to blame? The user is to blame -- with any config file, you are free to set your own values (as long as they are valid) and cause yourself problems. I just ran into this on RHEL6.4 and am in agreement that it is annoying that this seems to have silently changes in RHEL6. It would really help if the messages said not just that a resource had been exceeded but specifically WHICH resource (e.g. nproc, nfile some other...) had been exceeded. Failing that and in line with other posts here why not at least put a comment in the default limits.conf file that highlights it: "******NOTE: These values may be overridden by /etc/limits.d/* files.********* Related command line symptoms that I saw before the secure.log: On doing su - <user> (or sudo su - <user>) I saw initially: su: cannot set user id: Resource temporarily unavailable Later I saw: -bash: fork: retry: Resource temporarily unavailable I guess the fork error should have been my clue it was an nproc limit but that wasn't what I saw initially. This request was not resolved in time for the current release. Red Hat invites you to ask your support representative to propose this request, if still desired, for consideration in the next release of Red Hat Enterprise Linux. Serious annoyance for me too :( Half a day struggling with Oracle and this limit. Chrome/chromium can *easily* have a few hundred threads just by itself. Without anything else doing crazy multi-process: $ ps xH | wc -l 490 Do anything interesting on top of that, and it's pretty easy to hit the current limit. +1 to everyone saying that this is unexpected behavior for admins/software accustomed to configuring limits.conf - we had no idea that the 90-nproc.conf file existed. This just caused an issue for us in RHEL 6.5 running Weblogic. This Bugzilla has been reviewed by Red Hat and is not planned on being addressed in Red Hat Enterprise Linux 6 and therefore will be closed. If this bug is critical to production systems, please contact your Red Hat support representative and provide sufficient business justification. Why the hell is there such a file?Any good reason? *** Bug 1298576 has been marked as a duplicate of this bug. *** (In reply to ihavenoemail from comment #14) > Why the hell is there such a file?Any good reason? The conf.d exists as it allows one to do individual settings for variables that might be complex (e.g. you've got cases where you're setting up a different value for each of multiple users). Having separate files allows you to focus only on the value you're interested in rather than having to look at all other values which may also have separate settings for different users. This is actually a common thing in RHEL where they will have standard conf file and a conf.d subdirectory that allows one to separate items. (Have a look at /etc/xinetd.conf vs /etc/xinetd.d for exmaple.) My complaint was never that it exists but that they didn't bother to put a note in the main conf file to tell you it exists at the point they first began using it. (In reply to Jeff Lightner from comment #16) > (In reply to ihavenoemail from comment #14) > > Why the hell is there such a file?Any good reason? > > The conf.d exists as it allows one to do individual settings for variables > that might be complex (e.g. you've got cases where you're setting up a > different value for each of multiple users). Having separate files allows > you to focus only on the value you're interested in rather than having to > look at all other values which may also have separate settings for different > users. > > This is actually a common thing in RHEL where they will have standard conf > file and a conf.d subdirectory that allows one to separate items. (Have a > look at /etc/xinetd.conf vs /etc/xinetd.d for exmaple.) > > My complaint was never that it exists but that they didn't bother to put a > note in the main conf file to tell you it exists at the point they first > began using it. I'm so furious yesterday because this file works in a sneaky way |