Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Bug in ulimit ?
- X-seq: zsh-workers 23284
- From: Micah Cowan <micah@xxxxxxxxxx>
- To: davidpeer@xxxxxxxxxxxxx, zsh-workers@xxxxxxxxxx
- Subject: Re: Bug in ulimit ?
- Date: Tue, 17 Apr 2007 03:04:55 -0700
- In-reply-to: <20070417094244.GA4955@xxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <46248CC2.4010901@xxxxxxxxxxxxx> <462493C0.20700@xxxxxxxxxx> <20070417094244.GA4955@xxxxxxxxxxxxxxx>
Stephane Chazelas wrote:
> On Tue, Apr 17, 2007 at 02:30:40AM -0700, Micah Cowan wrote:
>> David Peer wrote:
>>> If the user run: ulimit -t 0, he can run jobs without any cputime
>>> limitation:
>> This sounds more like a kernel problem to me than a zsh bug. I get the
>> same behavior on my Ubuntu 7.04 (beta) system, in _bash_.
>>
>> I note that getrlimit(2) says:
>>
>> In 2.6.x kernels before 2.6.17, a RLIMIT_CPU limit of 0 is wrongly
>> treated as "no limit" (like RLIM_INFINITY). Since kernel 2.6.17, set???
>> ting a limit of 0 does have an effect, but is actually treated as a
>> limit of 1 second.
>>
>> However, I'm running 2.6.20(-14-generic), and still experiencing that
>> symptom.
> [...]
>
> (note that there's a lot a modern CPU can do in 1 second).
>
> Works as I'd expect from your man page quote here:
>
> $ time zsh -c 'ulimit -t 0; while :; do :; done'
> zsh: cpu limit exceeded zsh -c 'ulimit -t 0; while :; do :; done'
> zsh -c 'ulimit -t 0; while :; do :; done' 0.72s user 0.28s system 95% cpu 1.050 total
> $ time bash -c 'ulimit -t 0; while :; do :; done'
> zsh: killed bash -c 'ulimit -t 0; while :; do :; done'
> bash -c 'ulimit -t 0; while :; do :; done' 1.00s user 0.00s system 95% cpu 1.047 total
> $ uname -a
> Linux sc.homeunix.net 2.6.21-rc4 #1 PREEMPT Sun Mar 25 15:39:31 BST 2007 i686 GNU/Linux
> ~$ uname -rs
> Linux 2.6.21-rc4
Yes, I get those same results. However, in an interactive shell:
% ulimit -t 0
% ( ulimit -t; while :; do :; done )
0
<< watch the CPU time used climb in top >>
^C
%
...
% ulimit -Ht 0
% ( ulimit -t; while :; do :; done )
0
zsh: killed (; ulimit -t; while :; do; :; done; )
%
My first thought was: is zsh blocking SIGXCPU in some circumstances? But
killing the process with kill -XCPU worked fine.
It therefore appears that while the manpage is correct for hard limits,
soft limits of 0 are still treated as unlimited.
--
Micah J. Cowan
Programmer, musician, typesetting enthusiast, gamer...
http://micah.cowan.name/
Messages sorted by:
Reverse Date,
Date,
Thread,
Author