/usr/bin/limits (WAS: Re: Apache.sh on current)
Yuriy Tsibizov
Yuriy.Tsibizov at gfk.ru
Tue Sep 2 06:02:07 UTC 2008
On Mon, 1 Sep 2008, Manfred Antar wrote:
> At 07:19 AM 9/1/2008, Claus Guttesen wrote:
>>> /usr/local/etc/rc.d/apache.sh :
>>> /usr/bin/limits -e -U www
>>> dumps core when starting apache on current
>>> This something new, not sure when it started as I have been out of the Country for the past month.
>>> Kernel and usr are current
>>> Also /usr/local/sbin/apachect :
>>> eval `limits -e -C daemon`
>>> also dumps core
>>
>> Are you using apache and php?
>>
>> --
>> regards
>> Claus
>>
>> When lenity and cruelty play for a kingdom,
>> the gentler gamester is the soonest winner.
>>
>> Shakespeare
>
> Yes
> But if I just do limits -e -U root I get a core dump.
> I don't think the problem is with apache.
> limits -e -U (Any User) dumps core
It's not apache problem. There was new limit added to kernel, and
/usr/src/usr.bin/limits was not updated.
looking in limits core (lines are a bit different, I had some debug
printfs in .c file):
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x0804937d in main (argc=3, argv=0xbfbfed44)
at /usr/src/usr.bin/limits/limits.c:341
(gdb) l
341 val = resources[rcswhich].func(lc, resources[rcswhich].cap, limits[rcswhich].rlim_cur, limits[rcswhich].rlim_cur);
342 limits[rcswhich].rlim_cur = resources[rcswhich].func(lc, str, val, val);
343 /* maximum value overridden by resourcename or resourcename-max */
344 sprintf(str, "%s-max", resources[rcswhich].cap);
345 val = resources[rcswhich].func(lc, resources[rcswhich].cap, limits[rcswhich].rlim_max, limits[rcswhich].rlim_max);
346 limits[rcswhich].rlim_max = resources[rcswhich].func(lc, str, val, val);
347 }
348 }
349 }
350
(gdb) p resources
$1 = {{cap = 0x804adc2 "cputime", func = 0x8048c84 <login_getcaptime>}, {
cap = 0x804adca "filesize", func = 0x8048c34 <login_getcapsize>}, {
cap = 0x804add3 "datasize", func = 0x8048c34 <login_getcapsize>}, {
cap = 0x804addc "stacksize", func = 0x8048c34 <login_getcapsize>}, {
cap = 0x804ade6 "coredumpsize", func = 0x8048c34 <login_getcapsize>},{
cap = 0x804adf3 "memoryuse", func = 0x8048c34 <login_getcapsize>}, {
cap = 0x804adfd "memorylocked", func = 0x8048c34 <login_getcapsize>},{
cap = 0x804ae0a "maxproc", func = 0x8048c94 <login_getcapnum>}, {
cap = 0x804ae12 "openfiles", func = 0x8048c94 <login_getcapnum>}, {
cap = 0x804ae1c "sbsize", func = 0x8048c34 <login_getcapsize>}, {
cap = 0x804ae23 "vmemoryuse", func = 0x8048c34 <login_getcapsize>}, {
cap = 0x0, func = 0}}
And limits dies when processing last limit.
Yuriy Tsibizov,
GfK RUS Network Administrator
p.s. Please keep me in CC.
More information about the freebsd-current
mailing list