Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Bug in ulimit ?
- X-seq: zsh-workers 23283
- From: Stephane Chazelas <Stephane_Chazelas@xxxxxxxx>
- To: Micah Cowan <micah@xxxxxxxxxx>
- Subject: Re: Bug in ulimit ?
- Date: Tue, 17 Apr 2007 10:42:44 +0100
- Cc: davidpeer@xxxxxxxxxxxxx, zsh-workers@xxxxxxxxxx
- In-reply-to: <462493C0.20700@xxxxxxxxxx>
- Mail-followup-to: Micah Cowan <micah@xxxxxxxxxx>, davidpeer@xxxxxxxxxxxxx, zsh-workers@xxxxxxxxxx
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <46248CC2.4010901@xxxxxxxxxxxxx> <462493C0.20700@xxxxxxxxxx>
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
The abnormally high system time with zsh seems to be due to (according to
strace):
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
[...]
--
Stéphane
Messages sorted by:
Reverse Date,
Date,
Thread,
Author