Thread View: comp.bugs.sys5
8 messages
8 total messages
Started by Dave Hamaker
Mon, 16 May 1988 23:44
Is applying ulimit to pipes a bug?
Author: Dave Hamaker
Date: Mon, 16 May 1988 23:44
Date: Mon, 16 May 1988 23:44
14 lines
1118 bytes
1118 bytes
I find myself often needing/wanting to put filters before and/or after raw devices and network connections. Often, the volume of data involved exceeds the ulimit file size controls. If I don't raise the ulimit, the pipes fail. This doesn't make sense to me, as pipes do not accumulate resources in the same kind of way as disk files: an out-of-control disk file can use up all the disk space; an out-of-control pipe consumes only renewable resources. The ulimit documentation is inclusive on the matter; in fact, it sounds confused. If you ask me, I smell a bug of omission; the pipe type just rode along with the file type during ulimit implementation, without much thought about it. -Dave Hamaker The Wollongong Group ...!ucbvax!ucsfcgl!hoptoad!sun!amdahl!twg-ap!dwh
Re: Is applying ulimit to pipes a bug?
Author: Doug Gwyn
Date: Tue, 17 May 1988 07:06
Date: Tue, 17 May 1988 07:06
4 lines
606 bytes
606 bytes
In article <242@twg-ap.UUCP> dwh@twg-ap.UUCP (Dave Hamaker) writes: >If I don't raise the ulimit, the pipes fail. If this is true, then it's a horrible bug. Please fix it!
Re: Is applying ulimit to pipes a bug?
Author: Daniel R. Levy
Date: Tue, 17 May 1988 18:19
Date: Tue, 17 May 1988 18:19
28 lines
2154 bytes
2154 bytes
In article <242@twg-ap.UUCP>, dwh@twg-ap.UUCP (Dave Hamaker) writes: # I find myself often needing/wanting to put filters before and/or after raw # devices and network connections. Often, the volume of data involved exceeds # the ulimit file size controls. If I don't raise the ulimit, the pipes fail. # This doesn't make sense to me, as pipes do not accumulate resources in the # same kind of way as disk files: an out-of-control disk file can use up all # the disk space; an out-of-control pipe consumes only renewable resources. # The ulimit documentation is inclusive on the matter; in fact, it sounds # confused. If you ask me, I smell a bug of omission; the pipe type just rode # along with the file type during ulimit implementation, without much thought # about it. # The Wollongong Group What VERSION of System V are you using, on what machine? The only pipe-related ulimit problem I've noticed here (ttrdc ttrdc 2.0v3 1208 3B-20S) is if I make the ulimit so ridiculously small (like 9) that the ulimit is smaller then the pipe's buffering capacity (5120 bytes). In this event a write larger than the ulimit indeed fails with EFBIG. I suppose you could call that a bug, albeit a rather unlikely bug. If I make the ulimit larger than the pipe's buffering capacity (even 11) then I can call write() with as much as I please (1 megabyte? no problem, it works) to a pipe. (I just tried it again on a 3B2, SVR3.1. Same results.) -- |------------Dan Levy------------| Path: ihnp4,<most AT&T machines>!ttrdc!levy | AT&T | Weinberg's Principle: An expert is a | Data Systems Group | person who avoids the small errors while |--------Skokie, Illinois--------| sweeping on to the grand fallacy.
Re: Is applying ulimit to pipes a bug?
Author: Kent Forschmiedt
Date: Wed, 18 May 1988 18:01
Date: Wed, 18 May 1988 18:01
22 lines
1385 bytes
1385 bytes
[ In article <242@twg-ap.UUCP> dwh@twg-ap.UUCP (Dave Hamaker)
notes that his ulimit is applied to pipes as well as regular
files, and that he feels that it is very stupid. ]
I think that ulimit, at least as implemented, and especially as
configured in most distributions, is extremely stupid. Fortunately
for me, Motorola made it a tunable parameter, so I can make it VERY
large and seldom worry about it. For others, it is not so easy.
I have told a few people how to use a fake init:
/* init.fake.c make a bootable floppy before you try this */
main(argc,argv) char **argv;
{ ulimit(2,BIGNUM); execv("/etc/init.real", argv); }
I have never heard anyone say anything nice about ulimit, though -
only, "How do I get around it?" To me, that is a sure indication
of a misfeature.
--
--
Kent Forschmiedt -- kent@happym.UUCP, tikal!camco!happym!kent
Happy Man Corporation 206-282-9598
Re: Is applying ulimit to pipes a bug?
Author: Dave Hamaker
Date: Wed, 18 May 1988 20:19
Date: Wed, 18 May 1988 20:19
15 lines
976 bytes
976 bytes
In article <242@twg-ap.UUCP>, dwh@twg-ap.UUCP I write: > ... > If I don't raise the ulimit, the pipes fail. > ... Oh embarrassment! I had come to this conclusion because of past experiences and when I try it now, it doesn't fail. The circumstantial evidence was overwhelming... but apparently quite wrong. Something else may have been at work; I have no reason to suspect the operating system now. My apologies for wasting everyone's time and the net bandwidth. -Dave Hamaker The Wollongong Group ...!ucbvax!ucsfcgl!hoptoad!sun!amdahl!twg-ap!dwh
Re: Is applying ulimit to pipes a bug?
Author: Doug Gwyn
Date: Thu, 19 May 1988 11:13
Date: Thu, 19 May 1988 11:13
19 lines
1589 bytes
1589 bytes
In article <244@twg-ap.UUCP> dwh@twg-ap.UUCP (Dave Hamaker) writes: >> If I don't raise the ulimit, the pipes fail. >Oh embarrassment! I had come to this conclusion because of past experiences >and when I try it now, it doesn't fail. The circumstantial evidence was >overwhelming... but apparently quite wrong. Something else may have been at >work; I have no reason to suspect the operating system now. Don't be so quick to retract this. I have it on very good authority that several important things break that shouldn't, once the user has lowered ulimit to (say) 0. I'm not sure that pipe writes are in this category but it wouldn't surprise me. I tried an experiment on our Cray-2 and was rather startled at the form taken by the system failure modes that this triggered. I was afraid to try the experiment that I really wanted to... I urge all System V vendors to completely DISABLE ulimit, not just because of this problem but because it is not a good solution to whatever problem it was perceived as "fixing". Its effects are far too drastic for whatever valid use it might have had.
Re: Is applying ulimit to pipes a bug?
Author: Chris Torek
Date: Thu, 19 May 1988 14:52
Date: Thu, 19 May 1988 14:52
20 lines
1375 bytes
1375 bytes
>In article <244@twg-ap.UUCP> dwh@twg-ap.UUCP (Dave Hamaker) writes: >>> If I don't raise the ulimit, the pipes fail. >>Oh embarrassment! I had come to this conclusion because of past experiences >>and when I try it now, it doesn't fail. In article <7928@brl-smoke.ARPA> gwyn@brl-smoke.ARPA (Doug Gwyn) writes: >Don't be so quick to retract this. Indeed not. As it happens, in older Unixes, the `apparent' size of a pipe was reset only when the reader caught up with the writer (or something along those lines---I never looked at that code, and now my pipes are sockets, but a friend says this). It may be that if the reader is perenially 1 block behind the writer, that the pipe eventually reaches the ulimit. I would have to look at the code to be sure, but it should not be too hard to test. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163) Domain: chris@mimsy.umd.edu Path: uunet!mimsy!chris
Re: Re: Is applying ulimit to pipes a bug?
Author: Lars Henrik Mathiesen
Date: Fri, 20 May 1988 20:59
Date: Fri, 20 May 1988 20:59
20 lines
1664 bytes
1664 bytes
In article <11575@mimsy.UUCP> chris@mimsy.UUCP (Chris Torek) writes: >As it happens, in older Unixes, the `apparent' size of a pipe was reset >only when the reader caught up with the writer (or something along >those lines---I never looked at that code, and now my pipes are >sockets, but a friend says this). It may be that if the reader is >perenially 1 block behind the writer, that the pipe eventually reaches >the ulimit. I just looked at Edition 6 (Lions): Yes, the apparent size is reset to zero only when the reader catches up to the writer, but the writer is blocked when the apparent size reaches 4kB (the `small file' limit). Now if someone changed the latter behaviour without changing the former, and then put in ulimit, the described symptoms might occur -- but think of it: A pipe allocating and deallocating disk blocks (on the root device!) somewhere in a doubly indirected block. Stupefying. The socket implementation has an advantage here, as it is not bound to a single linear sequence. -- Lars Mathiesen, DIKU, U of Copenhagen, Denmark [uunet!]mcvax!diku!thorinn Institute of Datalogy -- we're scientists, not engineers.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads