qmail

2003-06-28 Thread Alejandro Ayala
Thanks to all for helping me with my email server, installed Qmail-mysql and 
is working awsome :)

Alex

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-17 Thread Chris Shenton
Don Lewis [EMAIL PROTECTED] writes:

 Thanks for doing the testing.  I just committed this patch.

Seems fine here too -- many thanks.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Tim Robbins
On Sun, Jun 15, 2003 at 08:43:15PM -0400, Chris Shenton wrote:

 I've been running qmail for years and like it, installed pretty much
 per www.LifeWithQmail.org.  My main system was running FreeBSD
 5.0-RELEASE and -CURRENT and qmail was fine.  When I just upgraded to
 5.1-CURRENT a couple days back, the qmail-send process started using
 all CPU.

This looks like a bug in the named pipe code. Reverting
sys/fs/fifofs/fifo_vnops.c to the RELENG_5_0 version makes the problem go
away. I haven't tracked down exactly what change between RELENG_5_0 and
RELENG_5_1 caused the problem.


Tim
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Thorsten Schroeder
Hi,

On Mon, 15 Jun 2003, Chris Shenton wrote:

 [...] qmail is run under daemontools and all work fine (the configuration
 is 2 years old!), but when I delivery the first mail (localy or remote)
 the qmail-send process fire up to 100% of CPU infinitely

 All other mail are right delivery, and the CPU use is the only problem, I
 see in qmail-send.c that select() function, after the first message,
 allways return 1

same here too.
I don't know what it could be - perhaps a problem with named pipes
(lock/trigger)?

You can find my ktrace output here: http://cs.so36.net/~ths/kdump.txt

Would be nice if anyone have an idea :)

 A truss shows me it's running in a tight loop over this code:
 close(9) = 0 (0x0)
 select(0x9,0xbfbffcbc,0xbfbffc3c,0x0,0xbfbffc24) = 1 (0x1)

 Anyone else seen this or know what in FreeBSD-5.1 might have changed to cause
 this?  Any thoughts on how I might go about diagnosing this any better?

greetings,

  thorsten

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Thorsten Schroeder wrote:
 Hi,
 
 On Mon, 15 Jun 2003, Chris Shenton wrote:
 
 [...] qmail is run under daemontools and all work fine (the configuration
 is 2 years old!), but when I delivery the first mail (localy or remote)
 the qmail-send process fire up to 100% of CPU infinitely

 All other mail are right delivery, and the CPU use is the only problem, I
 see in qmail-send.c that select() function, after the first message,
 allways return 1
 
 same here too.
 I don't know what it could be - perhaps a problem with named pipes
 (lock/trigger)?
 
 You can find my ktrace output here: http://cs.so36.net/~ths/kdump.txt
 
 Would be nice if anyone have an idea :)
 
 A truss shows me it's running in a tight loop over this code:
 close(9) = 0 (0x0)
 select(0x9,0xbfbffcbc,0xbfbffc3c,0x0,0xbfbffc24) = 1 (0x1)
 
 Anyone else seen this or know what in FreeBSD-5.1 might have changed to cause
 this?  Any thoughts on how I might go about diagnosing this any better?

Which version of fifo_vnops.c?  If the problem is present in
5.1-RELEASE, then the problem is likely to be the change made in 1.79
and 1.85.  If the problem didn't show up until after the 5.1-RELEASE,
then the problem could be the changes in 1.87 or 1.88.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Tim Robbins
On Mon, Jun 16, 2003 at 04:09:51PM +1000, Tim Robbins wrote:

 On Sun, Jun 15, 2003 at 08:43:15PM -0400, Chris Shenton wrote:
 
  I've been running qmail for years and like it, installed pretty much
  per www.LifeWithQmail.org.  My main system was running FreeBSD
  5.0-RELEASE and -CURRENT and qmail was fine.  When I just upgraded to
  5.1-CURRENT a couple days back, the qmail-send process started using
  all CPU.
 
 This looks like a bug in the named pipe code. Reverting
 sys/fs/fifofs/fifo_vnops.c to the RELENG_5_0 version makes the problem go
 away. I haven't tracked down exactly what change between RELENG_5_0 and
 RELENG_5_1 caused the problem.

Looks like revision 1.86 works, but it stops working with 1.87. Moving the
soclose() calls to fifo_inactive() may have caused it.


Tim
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Thorsten Schroeder
Hi,

On Sun, 15 Jun 2003, Don Lewis wrote:

  I don't know what it could be - perhaps a problem with named pipes
  (lock/trigger)?
 
  You can find my ktrace output here: http://cs.so36.net/~ths/kdump.txt

 Which version of fifo_vnops.c?  If the problem is present in
 5.1-RELEASE, then the problem is likely to be the change made in 1.79
 and 1.85.  If the problem didn't show up until after the 5.1-RELEASE,
 then the problem could be the changes in 1.87 or 1.88.

FreeBSD 5.1-CURRENT #1: Thu Jun  5 19:29:29 CEST 2003

fifo_vnops.c:

$FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.87 2003/06/01 06:24:32 truckman Exp $

bye,

  thorsten



___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Tim Robbins wrote:
 On Mon, Jun 16, 2003 at 04:09:51PM +1000, Tim Robbins wrote:
 
 On Sun, Jun 15, 2003 at 08:43:15PM -0400, Chris Shenton wrote:
 
  I've been running qmail for years and like it, installed pretty much
  per www.LifeWithQmail.org.  My main system was running FreeBSD
  5.0-RELEASE and -CURRENT and qmail was fine.  When I just upgraded to
  5.1-CURRENT a couple days back, the qmail-send process started using
  all CPU.
 
 This looks like a bug in the named pipe code. Reverting
 sys/fs/fifofs/fifo_vnops.c to the RELENG_5_0 version makes the problem go
 away. I haven't tracked down exactly what change between RELENG_5_0 and
 RELENG_5_1 caused the problem.
 
 Looks like revision 1.86 works, but it stops working with 1.87. Moving the
 soclose() calls to fifo_inactive() may have caused it.

This is an interesting observation, but I'm not sure why it would make a
difference.  I haven't looked at the qmail source, but it looks like it
is doing a non-blocking open on the fifo, calling select() on the fd,
and hoping that select() waits for a writer to open the fifo before
returning with an indication that the descriptor is readable.

It looks like the select code is calling the soreadable() macro to
determine if the fifo descriptor is readable, and the soreadable() macro
returns a true value if the SS_CANTRCVMORE socket flag is set, which
would indicate an EOF condition.

I might believe that I accidentally changed the setting of this flag,
but I just compared fifo_vnops.c rev 1.78 with 1.87 and I believe this
flag should be set the same way in both versions.

In both versions, fifo_close() always calls socantrcvmore(), which sets
SS_CANTRCVMORE when the writer count drops to zero.  Prior to 1.87,
fifo_close() also destroyed the sockets when the reference count dropped
to zero, which caused fifo_open() to recreate the sockets when the fifo
was opened again, and when it did, fifo_open() set the SS_CANTRCVMORE
flag again.

The posted qmail syscall trace looks like what I would expect to see in
the present implementation.  I can't explain why it would behave any
differently prior to 1.87 ...

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, I wrote:
 On 16 Jun, Tim Robbins wrote:

 This looks like a bug in the named pipe code. Reverting
 sys/fs/fifofs/fifo_vnops.c to the RELENG_5_0 version makes the problem go
 away. I haven't tracked down exactly what change between RELENG_5_0 and
 RELENG_5_1 caused the problem.
 
 Looks like revision 1.86 works, but it stops working with 1.87. Moving the
 soclose() calls to fifo_inactive() may have caused it.
 
 This is an interesting observation, but I'm not sure why it would make a
 difference.  I haven't looked at the qmail source, but it looks like it
 is doing a non-blocking open on the fifo, calling select() on the fd,
 and hoping that select() waits for a writer to open the fifo before
 returning with an indication that the descriptor is readable.
 
 It looks like the select code is calling the soreadable() macro to
 determine if the fifo descriptor is readable, and the soreadable() macro
 returns a true value if the SS_CANTRCVMORE socket flag is set, which
 would indicate an EOF condition.
 
 I might believe that I accidentally changed the setting of this flag,
 but I just compared fifo_vnops.c rev 1.78 with 1.87 and I believe this
 flag should be set the same way in both versions.
 
 In both versions, fifo_close() always calls socantrcvmore(), which sets
 SS_CANTRCVMORE when the writer count drops to zero.  Prior to 1.87,
 fifo_close() also destroyed the sockets when the reference count dropped
 to zero, which caused fifo_open() to recreate the sockets when the fifo
 was opened again, and when it did, fifo_open() set the SS_CANTRCVMORE
 flag again.
 
 The posted qmail syscall trace looks like what I would expect to see in
 the present implementation.  I can't explain why it would behave any
 differently prior to 1.87 ...

The plot thickens ...

I ran this bit of code on both 5.1 current with version 1.88 of
fifo_vnops.c, and 4.8-stable:

#include sys/types.h
#include sys/time.h
#include unistd.h
#include fcntl.h
main()
{
int fd;
fd_set readfds;

fd = open(myfifo, O_RDONLY | O_NONBLOCK);

printf(before the loop\n);
while (1) {
FD_ZERO(readfds);
FD_SET(fd, readfds);
printf(%d %d\n, fd, select(20, readfds, NULL, NULL, NULL));
}
exit(0);
}

On 4.8-stable, select() immediately returns a 1, whether or not the
fifo has ever been opened for writing.

On 5.1-current, select() waits forever, even if the fifo has been opened
for writing by another process.  Select() only returns when something
has actually been written to the fifo, and since this process doesn't
read anything from the fifo, it spins on select() forever.

If some data is getting written to the fifo, it doesn't look like qmail
consumes it, and since fifo_close in 1.87 doesn't destroy the sockets,
it looks like the data is hanging around in the fifo while neither end
is open, and qmail stumbles across this data when it calls select()
after re-opening the fifo.

Now there are two questions that I can't answer:

Why is my analysis of select() and the SS_CANTRCVMORE flag
incorrect in 5.1-current with version 1.87 or 1.88 of
fifo_vnops.c.

Why doesn't qmail get stuck in a similar loop in 4.8-stable,
since select always returns true for reading on a fifo with no
writers?
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Bruce Evans
On Mon, 16 Jun 2003, Don Lewis wrote:

 On 16 Jun, I wrote:
  On 16 Jun, Tim Robbins wrote:

  This looks like a bug in the named pipe code. Reverting
  sys/fs/fifofs/fifo_vnops.c to the RELENG_5_0 version makes the problem go
  away. I haven't tracked down exactly what change between RELENG_5_0 and
  RELENG_5_1 caused the problem.
 
  Looks like revision 1.86 works, but it stops working with 1.87. Moving the
  soclose() calls to fifo_inactive() may have caused it.
 
  This is an interesting observation, but I'm not sure why it would make a
  difference.  I haven't looked at the qmail source, but it looks like it
  is doing a non-blocking open on the fifo, calling select() on the fd,
  and hoping that select() waits for a writer to open the fifo before
  returning with an indication that the descriptor is readable.

In my review of 1.87, I forgot to ask you how atomic the close is with part
of it moved out to fifo_inactive().  I think it's important that all
traces of the old open have gone away (as far as applications can tell)
when the last close returns.

  It looks like the select code is calling the soreadable() macro to
  determine if the fifo descriptor is readable, and the soreadable() macro
  returns a true value if the SS_CANTRCVMORE socket flag is set, which
  would indicate an EOF condition.

fifo_close() sets this flag and the corresponding send flag on last close,
so there is no direct problem here.

  ...
  The posted qmail syscall trace looks like what I would expect to see in
  the present implementation.  I can't explain why it would behave any
  differently prior to 1.87 ...

 The plot thickens ...

 I ran this bit of code on both 5.1 current with version 1.88 of
 fifo_vnops.c, and 4.8-stable:

 #include sys/types.h
 #include sys/time.h
 #include unistd.h
 #include fcntl.h
 main()
 {
 int fd;
 fd_set readfds;

 fd = open(myfifo, O_RDONLY | O_NONBLOCK);

 printf(before the loop\n);
 while (1) {
 FD_ZERO(readfds);
 FD_SET(fd, readfds);
 printf(%d %d\n, fd, select(20, readfds, NULL, NULL, NULL));
 }
 exit(0);
 }

 On 4.8-stable, select() immediately returns a 1, whether or not the
 fifo has ever been opened for writing.

 On 5.1-current, select() waits forever, even if the fifo has been opened
 for writing by another process.  Select() only returns when something
 has actually been written to the fifo, and since this process doesn't
 read anything from the fifo, it spins on select() forever.

 If some data is getting written to the fifo, it doesn't look like qmail
 consumes it, and since fifo_close in 1.87 doesn't destroy the sockets,
 it looks like the data is hanging around in the fifo while neither end
 is open, and qmail stumbles across this data when it calls select()
 after re-opening the fifo.

 Now there are two questions that I can't answer:

   Why is my analysis of select() and the SS_CANTRCVMORE flag
 incorrect in 5.1-current with version 1.87 or 1.88 of
 fifo_vnops.c.

I think it is correct, assuming that something writes to the fifo.
Writing might be part of synchronization but actually reading the
data should not be necessary since the last close must discard the
data (POSIX spec).

   Why doesn't qmail get stuck in a similar loop in 4.8-stable,
 since select always returns true for reading on a fifo with no
 writers?

Don't know.  Maybe it uses autoconfig to handle the 4.8 behaviour.
The 4.8 behaviour is normal compared with the buggy behaviour of
not discarding data on last close, so applications should handle it
better :-).  Maybe qmain spins under 4.8 too, but only until
synchronization is achieved.

Bruce
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Bruce Evans wrote:
 On Mon, 16 Jun 2003, Don Lewis wrote:
 
 On 16 Jun, I wrote:
  On 16 Jun, Tim Robbins wrote:

  This looks like a bug in the named pipe code. Reverting
  sys/fs/fifofs/fifo_vnops.c to the RELENG_5_0 version makes the problem go
  away. I haven't tracked down exactly what change between RELENG_5_0 and
  RELENG_5_1 caused the problem.
 
  Looks like revision 1.86 works, but it stops working with 1.87. Moving the
  soclose() calls to fifo_inactive() may have caused it.
 
  This is an interesting observation, but I'm not sure why it would make a
  difference.  I haven't looked at the qmail source, but it looks like it
  is doing a non-blocking open on the fifo, calling select() on the fd,
  and hoping that select() waits for a writer to open the fifo before
  returning with an indication that the descriptor is readable.
 
 In my review of 1.87, I forgot to ask you how atomic the close is with part
 of it moved out to fifo_inactive().  I think it's important that all
 traces of the old open have gone away (as far as applications can tell)
 when the last close returns.

I hadn't taken queued data into consideration.  Now that I've looked at
this more closely, there are other problems in both the old and new
code.  If a process calls fcntl(fd, F_SETOWN, ...) on one end of the
fifo, that should be undone when that end of the fifo is closed.  In the
old implementation, that only happens when both ends of the fifo are
closed and the sockets are deleted.


 On 5.1-current, select() waits forever, even if the fifo has been opened
 for writing by another process.  Select() only returns when something
 has actually been written to the fifo, and since this process doesn't
 read anything from the fifo, it spins on select() forever.

 If some data is getting written to the fifo, it doesn't look like qmail
 consumes it, and since fifo_close in 1.87 doesn't destroy the sockets,
 it looks like the data is hanging around in the fifo while neither end
 is open, and qmail stumbles across this data when it calls select()
 after re-opening the fifo.

 Now there are two questions that I can't answer:

  Why is my analysis of select() and the SS_CANTRCVMORE flag
 incorrect in 5.1-current with version 1.87 or 1.88 of
 fifo_vnops.c.
 
 I think it is correct, assuming that something writes to the fifo.
 Writing might be part of synchronization but actually reading the
 data should not be necessary since the last close must discard the
 data (POSIX spec).

It sure looks to me like SS_CANTRCVMORE is always set when the write end
of the fifo is closed, no matter whether the the sockets were freshly
allocated by a fifo_open() call on the read end of the fifo, or because
the the last writer closed the write end of the fifo.  It sure looks
like select() should immediately return if this flag is set, but it is
not returning ...

Actually, something seems broken.  I modified my little test program to
actually read the data, which works just fine, but select() still blocks
when the writer closes the fifo, so there doesn't seem to be a way to
detect the EOF.

  Why doesn't qmail get stuck in a similar loop in 4.8-stable,
 since select always returns true for reading on a fifo with no
 writers?
 
 Don't know.  Maybe it uses autoconfig to handle the 4.8 behaviour.
 The 4.8 behaviour is normal compared with the buggy behaviour of
 not discarding data on last close, so applications should handle it
 better :-).  Maybe qmain spins under 4.8 too, but only until
 synchronization is achieved.
 
 Bruce

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Thorsten Schroeder wrote:
 Hi,
 
 On Sun, 15 Jun 2003, Don Lewis wrote:
 
  I don't know what it could be - perhaps a problem with named pipes
  (lock/trigger)?
 
  You can find my ktrace output here: http://cs.so36.net/~ths/kdump.txt
 
 Which version of fifo_vnops.c?  If the problem is present in
 5.1-RELEASE, then the problem is likely to be the change made in 1.79
 and 1.85.  If the problem didn't show up until after the 5.1-RELEASE,
 then the problem could be the changes in 1.87 or 1.88.
 
 FreeBSD 5.1-CURRENT #1: Thu Jun  5 19:29:29 CEST 2003
 
 fifo_vnops.c:
 
 $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.87 2003/06/01 06:24:32 truckman Exp $


Try upgrading to 1.88 and applying this patch:

Index: sys/fs/fifofs/fifo_vnops.c
===
RCS file: /home/ncvs/src/sys/fs/fifofs/fifo_vnops.c,v
retrieving revision 1.88
diff -u -r1.88 fifo_vnops.c
--- sys/fs/fifofs/fifo_vnops.c  13 Jun 2003 06:58:11 -  1.88
+++ sys/fs/fifofs/fifo_vnops.c  16 Jun 2003 08:44:20 -
@@ -70,7 +70,6 @@
 static int fifo_lookup(struct vop_lookup_args *);
 static int fifo_open(struct vop_open_args *);
 static int fifo_close(struct vop_close_args *);
-static int fifo_inactive(struct vop_inactive_args *);
 static int fifo_read(struct vop_read_args *);
 static int fifo_write(struct vop_write_args *);
 static int fifo_ioctl(struct vop_ioctl_args *);
@@ -98,7 +97,6 @@
{ vop_create_desc, (vop_t *) vop_panic },
{ vop_getattr_desc,(vop_t *) vop_ebadf },
{ vop_getwritemount_desc,  (vop_t *) vop_stdgetwritemount },
-   { vop_inactive_desc,   (vop_t *) fifo_inactive },
{ vop_ioctl_desc,  (vop_t *) fifo_ioctl },
{ vop_kqfilter_desc,   (vop_t *) fifo_kqfilter },
{ vop_lease_desc,  (vop_t *) vop_null },
@@ -556,32 +554,18 @@
if (fip-fi_writers == 0)
socantrcvmore(fip-fi_readsock);
}
-   VOP_UNLOCK(vp, 0, td);
-   return (0);
-}
-
-static int
-fifo_inactive(ap)
-   struct vop_inactive_args /* {
-   struct vnode *a_vp;
-   struct thread *a_td;
-   } */ *ap;
-{
-   struct vnode *vp = ap-a_vp;
-   struct fifoinfo *fip = vp-v_fifoinfo;
-
VI_LOCK(vp);
-   if (fip != NULL  vp-v_usecount == 0) {
+   if (vp-v_usecount == 1) {
vp-v_fifoinfo = NULL;
VI_UNLOCK(vp);
(void)soclose(fip-fi_readsock);
(void)soclose(fip-fi_writesock);
FREE(fip, M_VNODE);
-   }
-   VOP_UNLOCK(vp, 0, ap-a_td);
+   } else
+   VI_UNLOCK(vp);
+   VOP_UNLOCK(vp, 0, td);
return (0);
 }
-
 
 /*
  * Print out internal contents of a fifo vnode.

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Terry Lambert
Don Lewis wrote:
 Actually, something seems broken.  I modified my little test program to
 actually read the data, which works just fine, but select() still blocks
 when the writer closes the fifo, so there doesn't seem to be a way to
 detect the EOF.

I think this should be covered under the exceptional event
and read select flags (a subsequent read will return 0).

Also, you should remember that qmail opens the thing with
non-blocking I/O, and then expects the select to block.  Very
odd program, qmail.

-- Terry
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Bruce Evans
On Mon, 16 Jun 2003, Don Lewis wrote:

 On 16 Jun, Bruce Evans wrote:
  In my review of 1.87, I forgot to ask you how atomic the close is with part
  of it moved out to fifo_inactive().  I think it's important that all
  traces of the old open have gone away (as far as applications can tell)
  when the last close returns.

 I hadn't taken queued data into consideration.  Now that I've looked at
 this more closely, there are other problems in both the old and new
 code.  If a process calls fcntl(fd, F_SETOWN, ...) on one end of the
 fifo, that should be undone when that end of the fifo is closed.  In the
 old implementation, that only happens when both ends of the fifo are
 closed and the sockets are deleted.

F_SETOWN (and associated signal delivery) is even more broken than that :-].
This fcntl() should applied to the file (though not just the file descriptor),
so its effect should be limited to fd's open in the file instance and go
away when all thse are closed.  However, F_SETOWN (and associated signal
delivery) actually applies to the socket for fifos.  It doesn't work quite
right for ttys either.  F_SETOWN apparently isn't used in ways complicated
enough to require it to work right.

  Now there are two questions that I can't answer:
 
 Why is my analysis of select() and the SS_CANTRCVMORE flag
  incorrect in 5.1-current with version 1.87 or 1.88 of
  fifo_vnops.c.
 
  I think it is correct, assuming that something writes to the fifo.
  Writing might be part of synchronization but actually reading the
  data should not be necessary since the last close must discard the
  data (POSIX spec).

 It sure looks to me like SS_CANTRCVMORE is always set when the write end
 of the fifo is closed, no matter whether the the sockets were freshly
 allocated by a fifo_open() call on the read end of the fifo, or because
 the the last writer closed the write end of the fifo.  It sure looks
 like select() should immediately return if this flag is set, but it is
 not returning ...

Alfred changed the semantics for 5.x.  I thought that you knew this.
I finally gave up resisting this change after a lot of email :-).  In
5.x, SS_CANTRCVMORE often has no effect for fifos (it still works
normally for sockets).  fifo_poll() normally calls soo_poll() with
POLLIN converted to POLLINIGNEOF.  This causes soo_poll() (sopoll())
to skip the usual SS_CANTRCVMORE check (which is inside soreadable())
and check the watermark instead, so that select() on a fifo normally
waits for data even when the fifo is open in nonblocking mode and
SS_CANTRCVMORE is set.  Blocking in select() even in nonblocking mode
is usually what is wanted, but is not what is wanted for detecting
EOF.  4.8 handles EOF detection (== all writers going away in the context
of fifos) better at a cost of providing no good way to wait for the
first writer.  We changed it since all other systems seem to do it like
5.x and few applications understand this.

 Actually, something seems broken.  I modified my little test program to
 actually read the data, which works just fine, but select() still blocks
 when the writer closes the fifo, so there doesn't seem to be a way to
 detect the EOF.

Hmm, we may have changed too much.  EOF can be detected using poll() instead
of select() and seting POLLIN and POLLINIGNEOF in the poll flags (this stops
fifo_poll() clearing POLLIN -- see the comment), but the POLLINIGNEOF is
not documented at the application level and is probably never used there.
I suspect that other systems have more magic to handle EOF.  I tried to
avoid such magic since I think the state of the fifo should be the same
when there are no writers (and no data) no matter how the state of having
no writers was reached (otherwise I think the state depends too much on
races between open() for reading and close() by the last writer).  POSIX
is clear enough on this for read/write but fuzzy for select/poll.

Bruce
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Thorsten Schroeder
Hi,

On Mon, 16 Jun 2003, Don Lewis wrote:

  FreeBSD 5.1-CURRENT #1: Thu Jun  5 19:29:29 CEST 2003
 
  fifo_vnops.c:
 
  $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.87 2003/06/01 06:24:32 truckman Exp $

 Try upgrading to 1.88 and applying this patch:

 Index: sys/fs/fifofs/fifo_vnops.c
 ===
 RCS file: /home/ncvs/src/sys/fs/fifofs/fifo_vnops.c,v
 retrieving revision 1.88
 diff -u -r1.88 fifo_vnops.c
 --- sys/fs/fifofs/fifo_vnops.c13 Jun 2003 06:58:11 -  1.88
 +++ sys/fs/fifofs/fifo_vnops.c16 Jun 2003 08:44:20 -
[...]

Yes! This seems to work fine :)

qmail-send doesn't increase cpu usage after the first mail anymore.

Thanks a lot,

  Thorsten


___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Jesse Guardiani
Thorsten Schroeder wrote:

 Hi,
 
 On Mon, 16 Jun 2003, Don Lewis wrote:
 
  FreeBSD 5.1-CURRENT #1: Thu Jun  5 19:29:29 CEST 2003
 
  fifo_vnops.c:
 
  $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.87 2003/06/01 06:24:32
  truckman Exp $
 
 Try upgrading to 1.88 and applying this patch:

 Index: sys/fs/fifofs/fifo_vnops.c
 ===
 RCS file: /home/ncvs/src/sys/fs/fifofs/fifo_vnops.c,v
 retrieving revision 1.88
 diff -u -r1.88 fifo_vnops.c
 --- sys/fs/fifofs/fifo_vnops.c   13 Jun 2003 06:58:11 -  1.88
 +++ sys/fs/fifofs/fifo_vnops.c   16 Jun 2003 08:44:20 -
 [...]
 
 Yes! This seems to work fine :)

I run qmail on my 4.8 servers.

For my sanity, is this a problem in 5.1-RELEASE, or in code after 5.1-RELEASE?
We haven't upgraded to 5.1 yet (and don't intend to for a while), but I thought
I'd ask since this bug would cripple our mail server.

-- 
Jesse Guardiani, Systems Administrator
WingNET Internet Services,
P.O. Box 2605 // Cleveland, TN 37320-2605
423-559-LINK (v)  423-559-5145 (f)
http://www.wingnet.net


___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Thorsten Schroeder wrote:
 Hi,
 
 On Mon, 16 Jun 2003, Don Lewis wrote:
 
  FreeBSD 5.1-CURRENT #1: Thu Jun  5 19:29:29 CEST 2003
 
  fifo_vnops.c:
 
  $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.87 2003/06/01 06:24:32 truckman Exp $
 
 Try upgrading to 1.88 and applying this patch:

 Index: sys/fs/fifofs/fifo_vnops.c
 ===
 RCS file: /home/ncvs/src/sys/fs/fifofs/fifo_vnops.c,v
 retrieving revision 1.88
 diff -u -r1.88 fifo_vnops.c
 --- sys/fs/fifofs/fifo_vnops.c   13 Jun 2003 06:58:11 -  1.88
 +++ sys/fs/fifofs/fifo_vnops.c   16 Jun 2003 08:44:20 -
 [...]
 
 Yes! This seems to work fine :)
 
 qmail-send doesn't increase cpu usage after the first mail anymore.
 
 Thanks a lot,

Thanks for doing the testing.  I just committed this patch.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Jesse Guardiani wrote:

 I run qmail on my 4.8 servers.
 
 For my sanity, is this a problem in 5.1-RELEASE, or in code after 5.1-RELEASE?
 We haven't upgraded to 5.1 yet (and don't intend to for a while), but I thought
 I'd ask since this bug would cripple our mail server.

It was broken in 5.1-CURRENT shortly after 5.1-RELEASE, until I
committed a patch a few minutes ago.  5.1-RELEASE is fine.  The
problematic versions of fifo_vnops.c are 1.87 and 1.88.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-16 Thread Don Lewis
On 16 Jun, Bruce Evans wrote:
 On Mon, 16 Jun 2003, Don Lewis wrote:
 
 On 16 Jun, Bruce Evans wrote:
  In my review of 1.87, I forgot to ask you how atomic the close is with part
  of it moved out to fifo_inactive().  I think it's important that all
  traces of the old open have gone away (as far as applications can tell)
  when the last close returns.

 I hadn't taken queued data into consideration.  Now that I've looked at
 this more closely, there are other problems in both the old and new
 code.  If a process calls fcntl(fd, F_SETOWN, ...) on one end of the
 fifo, that should be undone when that end of the fifo is closed.  In the
 old implementation, that only happens when both ends of the fifo are
 closed and the sockets are deleted.
 
 F_SETOWN (and associated signal delivery) is even more broken than that :-].
 This fcntl() should applied to the file (though not just the file descriptor),
 so its effect should be limited to fd's open in the file instance and go
 away when all thse are closed.  However, F_SETOWN (and associated signal
 delivery) actually applies to the socket for fifos.  It doesn't work quite
 right for ttys either.  F_SETOWN apparently isn't used in ways complicated
 enough to require it to work right.

There is a fundamental architectural problem -- devices and files don't
have a list of the descriptors that have them open.  That would require
putting descriptors on another list (and dealing with the necessary
locking), which would also bloat the size of the descriptor structure.
Storing the F_SETOWN info there would bloat all descriptors even more
rather than the relative handful of device structures that support this
feature.

  Now there are two questions that I can't answer:
 
Why is my analysis of select() and the SS_CANTRCVMORE flag
  incorrect in 5.1-current with version 1.87 or 1.88 of
  fifo_vnops.c.
 
  I think it is correct, assuming that something writes to the fifo.
  Writing might be part of synchronization but actually reading the
  data should not be necessary since the last close must discard the
  data (POSIX spec).

 It sure looks to me like SS_CANTRCVMORE is always set when the write end
 of the fifo is closed, no matter whether the the sockets were freshly
 allocated by a fifo_open() call on the read end of the fifo, or because
 the the last writer closed the write end of the fifo.  It sure looks
 like select() should immediately return if this flag is set, but it is
 not returning ...
 
 Alfred changed the semantics for 5.x.  I thought that you knew this.
 I finally gave up resisting this change after a lot of email :-).  In
 5.x, SS_CANTRCVMORE often has no effect for fifos (it still works
 normally for sockets).  fifo_poll() normally calls soo_poll() with
 POLLIN converted to POLLINIGNEOF.  This causes soo_poll() (sopoll())
 to skip the usual SS_CANTRCVMORE check (which is inside soreadable())
 and check the watermark instead, so that select() on a fifo normally
 waits for data even when the fifo is open in nonblocking mode and
 SS_CANTRCVMORE is set.

Nope, I didn't know this, and I missed the POLLIN-POLLINIGNEOF
conversion when I was tracing the code.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-15 Thread Chris Shenton
I've been running qmail for years and like it, installed pretty much
per www.LifeWithQmail.org.  My main system was running FreeBSD
5.0-RELEASE and -CURRENT and qmail was fine.  When I just upgraded to
5.1-CURRENT a couple days back, the qmail-send process started using
all CPU.

  last pid: 22793;  load averages:  1.06,  1.02,  1.00  up 0+08:13:46  20:36:32
  74 processes:  2 running, 72 sleeping

  Mem: 38M Active, 51M Inact, 84M Wired, 28K Cache, 73M Buf, 452M Free
  Swap: 2048M Total, 2048M Free

PID USERNAME PRI NICE   SIZERES STATETIME   WCPUCPU COMMAND
615 qmails   1320  1228K   616K RUN483:00 96.88% 96.88% qmail-send

I noticed an identical complaint on the qmail list, to which there have so
far been no replies (except you should ask the FreeBSD list):

From: Luca Morettoni [EMAIL PROTECTED]
Subject: qmail on FreeBSD 5.1-CURRENT
To: [EMAIL PROTECTED]

[...] qmail is run under daemontools and all work fine (the configuration
is 2 years old!), but when I delivery the first mail (localy or remote)
the qmail-send process fire up to 100% of CPU infinitely

All other mail are right delivery, and the CPU use is the only problem, I
see in qmail-send.c that select() function, after the first message,
allways return 1

A truss shows me it's running in a tight loop over this code:

open(lock/trigger,0x4,027757775230)= 8 (0x8)
stat(todo,0xbfbffa00)  = 0 (0x0)
open(todo,0x4,01)  = 9 (0x9)
fstat(9,0xbfbffa00)  = 0 (0x0)
fcntl(0x9,0x2,0x1)   = 0 (0x0)
fstatfs(0x9,0xbfbff900)  = 0 (0x0)
getdirentries(0x9,0x8059000,0x1000,0x805a214)= 512 (0x200)
gettimeofday(0xbfbffbc8,0x0) = 0 (0x0)
select(0x9,0xbfbffcbc,0xbfbffc3c,0x0,0xbfbffc24) = 1 (0x1)
gettimeofday(0xbfbffbc8,0x0) = 0 (0x0)
gettimeofday(0xbfbffbc8,0x0) = 0 (0x0)
select(0x9,0xbfbffcbc,0xbfbffc3c,0x0,0xbfbffc24) = 1 (0x1)
gettimeofday(0xbfbffbc8,0x0) = 0 (0x0)
getdirentries(0x9,0x8059000,0x1000,0x805a214)= 0 (0x0)
lseek(9,0x0,0)   = 0 (0x0)
close(9) = 0 (0x0)
gettimeofday(0xbfbffbc8,0x0) = 0 (0x0)
select(0x9,0xbfbffcbc,0xbfbffc3c,0x0,0xbfbffc24) = 1 (0x1)
gettimeofday(0xbfbffbc8,0x0) = 0 (0x0)
close(8) = 0 (0x0)
open(lock/trigger,0x4,027757775230)= 8 (0x8)

I see nothing besides usual message delivery information in qmail's logs.

Failing that, I rebuilt qmail and it seemed to have fixed it, but I didn't
wait long enough: it's pegged at 100% CPU, constantly.  If what Luca says is
true, maybe it hadn't sent a message yet.

Anyone else seen this or know what in FreeBSD-5.1 might have changed to cause
this?  Any thoughts on how I might go about diagnosing this any better?

Thanks.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: qmail uses 100% cpu after FreeBSD-5.0 to 5.1 upgrade

2003-06-15 Thread Fred Souza
 I've been running qmail for years and like it, installed pretty much
 per www.LifeWithQmail.org.  My main system was running FreeBSD
 5.0-RELEASE and -CURRENT and qmail was fine.  When I just upgraded to
 5.1-CURRENT a couple days back, the qmail-send process started using
 all CPU.

  [snip]

 Anyone else seen this or know what in FreeBSD-5.1 might have changed to cause
 this?  Any thoughts on how I might go about diagnosing this any better?

  I saw this too, but couldn't get it fixed either. My solution
  (hopefully temporary) was to switch to another MTA.


  Fred


-- 
I used to think romantic love was a neurosis shared by two, a supreme
foolishness.  I no longer thought that.  There's nothing foolish in
loving anyone.  Thinking you'll be loved in return is what's foolish.
-- Rita Mae Brown


pgp0.pgp
Description: PGP signature


Re: Integrating QMAIL in the world

2000-04-13 Thread Jordan K. Hubbard

We argue about this a lot.  Nobody has, as yet, ever done the work to
make "bindist" a meta-package which depends (perhaps selectively) on
sub-packages like groff, sendmail, gcc, et al. to achieve the required
state of "bundling by default but not by requirement" in FreeBSD.

This is despite the fact that we've even gotten to the level of
discussing "how it should look" many many times, and I even believe a
few people volunteered to do the work the last few times this came up.

They subsequently disappeared into the same black hole which swallows
so many prospective volunteers, it seems, and all that was left to
mark the event was the echos of thread in the mail archives. :-)

- Jordan


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-13 Thread Brad Knowles

At 11:21 PM -0700 2000/4/12, Jordan K. Hubbard wrote:

  They subsequently disappeared into the same black hole which swallows
  so many prospective volunteers, it seems, and all that was left to
  mark the event was the echos of thread in the mail archives. :-)

Sorry, my fault.  I shouldn't have gotten this mess going again.  ;-(

--
   These are my opinions -- not to be taken as official Skynet policy
==
Brad Knowles, [EMAIL PROTECTED]|| Belgacom Skynet SA/NV
Systems Architect, Mail/News/FTP/Proxy Admin || Rue Colonel Bourg, 124
Phone/Fax: +32-2-706.13.11/12.49 || B-1140 Brussels
http://www.skynet.be || Belgium


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Chuck Robey

On Fri, 14 Apr 2000, Joe Greco wrote:

  In other words, if we're going to be replacing sendmail with an 
  alternative MTA, I'd prefer postfix over qmail, and I believe I can 
  marshall some pretty strong arguments for that position.
 
 Perhaps it's time to revisit something I proposed several years ago.
 
 Remove Sendmail from the base system - or, at least, make it a "package"
 that is removable with the package management tool.  Then be able to add
 another mailer (or an updated Sendmail) in its place.  Ideally, Sendmail
 would be available as a package for installation as part of the base
 system, just like games or info or proflibs.
 
 I would love to see this happen with other components of the system as
 well, such as BIND.
 
 While it is fantastic that FreeBSD comes out of the box so fully
 functional, it does make it a bit of a pain for those of us who intend
 to build servers - we have to disable the original before installing a
 new package.  :-/

I always keep hearing the same line.  You guys *know* perfectly well how
to do it, and it's not a big thing to you, you even admit it's only "a bit
of a pain".  To most of the rest of the world, it's a huge thing, and they
don't have the least clue how to do it.  If you guys want so desperately
to make things 1% easier, why have I never seen anyone bring out a
parallel "sparse" FreeBSD?  It wouldnt' be a large thing to do, and you
who keep on asking for it, you know that very well.

Just have a reasonable bit of compassion for everyone else.  That's not to
say the huge hurt it would do to FreeBSD to all reviewers and the public
at large, just to save you "a bit of a pain".

 


Chuck Robey| Interests include C  Java programming, FreeBSD,
[EMAIL PROTECTED]  | electronics, communications, and signal processing.

New Year's Resolution:  I will not sphroxify gullible people into looking up
fictitious words in the dictionary.




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Joe Greco

 On Fri, 14 Apr 2000, Joe Greco wrote:
 
   In other words, if we're going to be replacing sendmail with an 
   alternative MTA, I'd prefer postfix over qmail, and I believe I can 
   marshall some pretty strong arguments for that position.
  
  Perhaps it's time to revisit something I proposed several years ago.
  
  Remove Sendmail from the base system - or, at least, make it a "package"
  that is removable with the package management tool.  Then be able to add
  another mailer (or an updated Sendmail) in its place.  Ideally, Sendmail
  would be available as a package for installation as part of the base
  system, just like games or info or proflibs.
  
  I would love to see this happen with other components of the system as
  well, such as BIND.
  
  While it is fantastic that FreeBSD comes out of the box so fully
  functional, it does make it a bit of a pain for those of us who intend
  to build servers - we have to disable the original before installing a
  new package.  :-/
 
 I always keep hearing the same line.  You guys *know* perfectly well how
 to do it, and it's not a big thing to you, you even admit it's only "a bit
 of a pain".  To most of the rest of the world, it's a huge thing, and they
 don't have the least clue how to do it.  If you guys want so desperately
 to make things 1% easier, why have I never seen anyone bring out a
 parallel "sparse" FreeBSD?  It wouldnt' be a large thing to do, and you
 who keep on asking for it, you know that very well.
 
 Just have a reasonable bit of compassion for everyone else.  That's not to
 say the huge hurt it would do to FreeBSD to all reviewers and the public
 at large, just to save you "a bit of a pain".

Uh, Chuck, can you tell me how many BIND and Sendmail advisories there have
been in the last five years?

Wouldn't it be nice if we could just tell newbies, "hey, yeah, that Sendmail
has a known security issue, pkg_delete it and then add this new one here". 
Or would you prefer to explain to someone who doesn't "have the least clue 
how to do it" how to upgrade BIND and Sendmail to the latest?

The concept is beneficial from _many_ angles, not just the one I gave. 

Despite my tendency to promote the traditional BSD distribution style, that
does not mean that I feel that everything in FreeBSD should arrive as it did
on the 4.4BSD tape.  I think that the ability to be able to select modules
for inclusion or exclusion would be particularly useful.

... Joe

---
Joe Greco - Systems Administrator [EMAIL PROTECTED]
Solaria Public Access UNIX - Milwaukee, WI 414/342-4847


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Chuck Robey

On Sat, 15 Apr 2000, Joe Greco wrote:

 Uh, Chuck, can you tell me how many BIND and Sendmail advisories there have
 been in the last five years?
 
 Wouldn't it be nice if we could just tell newbies, "hey, yeah, that Sendmail
 has a known security issue, pkg_delete it and then add this new one here". 
 Or would you prefer to explain to someone who doesn't "have the least clue 
 how to do it" how to upgrade BIND and Sendmail to the latest?
 
 The concept is beneficial from _many_ angles, not just the one I gave. 
 
 Despite my tendency to promote the traditional BSD distribution style, that
 does not mean that I feel that everything in FreeBSD should arrive as it did
 on the 4.4BSD tape.  I think that the ability to be able to select modules
 for inclusion or exclusion would be particularly useful.

If you want to pick another one and by default install that, fine.  If you
want to force new users to read all about mailers just to get their first
mail working, no, that's just too much, Joe, you're asking too much of
folks.  If you've got a bone to pick with sendmail, that's ok, but you
have to pick a better one.  If you can't decide on the best one, then how
in the heck do you expect Joe Public to do better?

ALWAYS provide sensible default values, not a bunch of expert questions.



Chuck Robey| Interests include C  Java programming, FreeBSD,
[EMAIL PROTECTED]  | electronics, communications, and signal processing.

New Year's Resolution:  I will not sphroxify gullible people into looking up
fictitious words in the dictionary.




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Joe Greco

 On Sat, 15 Apr 2000, Joe Greco wrote:
 
  Uh, Chuck, can you tell me how many BIND and Sendmail advisories there have
  been in the last five years?
  
  Wouldn't it be nice if we could just tell newbies, "hey, yeah, that Sendmail
  has a known security issue, pkg_delete it and then add this new one here". 
  Or would you prefer to explain to someone who doesn't "have the least clue 
  how to do it" how to upgrade BIND and Sendmail to the latest?
  
  The concept is beneficial from _many_ angles, not just the one I gave. 
  
  Despite my tendency to promote the traditional BSD distribution style, that
  does not mean that I feel that everything in FreeBSD should arrive as it did
  on the 4.4BSD tape.  I think that the ability to be able to select modules
  for inclusion or exclusion would be particularly useful.
 
 If you want to pick another one and by default install that, fine.  If you
 want to force new users to read all about mailers just to get their first
 mail working, no, that's just too much, Joe, you're asking too much of
 folks.  If you've got a bone to pick with sendmail, that's ok, but you
 have to pick a better one.  If you can't decide on the best one, then how
 in the heck do you expect Joe Public to do better?
 
 ALWAYS provide sensible default values, not a bunch of expert questions.

Chuck,

Please go back and read what I _wrote_.  Your response assumes I made
statements that I certainly did not, and suggests to me that you missed
every third word in my previous messages.  :-(  In particular, I advocated
including Sendmail in the base system in a manner that would allow it to
be trivially removed (or, alternatively, not including it but making it
a selectable package, like X11).

This could, for example, be done in the very same way that we currently
do loads of other crap, like /usr/games, proflibs, etc.  More ideally, it
would be done in a format compatible with the package management system,
so that one could simply "pkg_delete" Sendmail and install a new one.

Am I getting through now?  :-)
-- 
... Joe

---
Joe Greco - Systems Administrator [EMAIL PROTECTED]
Solaria Public Access UNIX - Milwaukee, WI 414/342-4847


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Forrest Aldrich

How will this affect this /etc/mail/mailer.conf "thing" (and I wonder
why that was put there to begin with).

If we're going to use a mailer.conf, then it should be able to 
work with other MTAs; which it probably won't because they perform
their respective tasks differently.


_F


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Chuck Robey

On Sat, 15 Apr 2000, Joe Greco wrote:

 Chuck,
 
 Please go back and read what I _wrote_.  Your response assumes I made

I've got your message, I quoted it fully in my first response.  You asked
to "Remove Sendmail from the base system", and that's a direct quote, Joe.

 statements that I certainly did not, and suggests to me that you missed
 every third word in my previous messages.  :-(  In particular, I advocated
 including Sendmail in the base system in a manner that would allow it to
 be trivially removed (or, alternatively, not including it but making it
 a selectable package, like X11).

No, you said remove it, or at least make it removeable.  I responded that
you can't just remove it.  Go to your sent mail message folder, I'm not
making this up.  I said don't remove it (not "don't make it removeable").  
You're the one who's sticking new words in.

 This could, for example, be done in the very same way that we currently
 do loads of other crap, like /usr/games, proflibs, etc.  More ideally, it
 would be done in a format compatible with the package management system,
 so that one could simply "pkg_delete" Sendmail and install a new one.
 
 Am I getting through now?  :-)

You asked in your mail to remove it, I said you can't leave ordinary users
without a good default.  Your context in what you said was that it was a
minor pain to have to remove the default mailer.  I stand by what I said.  
You changed your message, and if you want, I can send your message back to
you.

If you argue *only* that some easier method be arranged so that mailers
can be swapped out, that I fully approve of.  I never said otherwise, and
I don't like much the way you changed things.

In fact, what the heck, here's your original message, cut out of my reply
(where I quoted all of your part of the exchange):

 Perhaps it's time to revisit something I proposed several years ago.
 
 Remove Sendmail from the base system - or, at least, make it a "package"
 that is removable with the package management tool.  Then be able to add
 another mailer (or an updated Sendmail) in its place.  Ideally, Sendmail
 would be available as a package for installation as part of the base
 system, just like games or info or proflibs.
 
 I would love to see this happen with other components of the system as
 well, such as BIND.
 
 While it is fantastic that FreeBSD comes out of the box so fully
 functional, it does make it a bit of a pain for those of us who intend
 to build servers - we have to disable the original before installing a
 new package.  :-/


 


Chuck Robey| Interests include C  Java programming, FreeBSD,
[EMAIL PROTECTED]  | electronics, communications, and signal processing.

New Year's Resolution:  I will not sphroxify gullible people into looking up
fictitious words in the dictionary.






To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Joe Greco

 On Sat, 15 Apr 2000, Joe Greco wrote:
 
  Chuck,
  
  Please go back and read what I _wrote_.  Your response assumes I made
 
 I've got your message, I quoted it fully in my first response.  You asked
 to "Remove Sendmail from the base system", and that's a direct quote, Joe.

Yes.  That doesn't mean that it can't come with FreeBSD...  manpages, games,
proflibs, even X11, none of those are part of the base system, but people
find their way to installing them.  Somehow.  Also, you've completely
ignored that there was a latter half to that sentence.  "Hmm."  I love
creative quoting, and I really have an aversion to being made to say
something that I didn't, like "let's force users to choose a mailer".
-- 
... Joe

---
Joe Greco - Systems Administrator [EMAIL PROTECTED]
Solaria Public Access UNIX - Milwaukee, WI 414/342-4847


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-12 Thread Andreas Klemm

On Fri, Apr 14, 2000 at 05:21:24PM -0500, Joe Greco wrote:
 Remove Sendmail from the base system - or, at least, make it a "package"
 that is removable with the package management tool.  Then be able to add
 another mailer (or an updated Sendmail) in its place.  Ideally, Sendmail
 would be available as a package for installation as part of the base
 system, just like games or info or proflibs.

Sounds all basically like a good idea to have different choices
for a MTA.

But I don't like _basic_ system functionalities to be out sourced
completely to ports.

Two examples:

If I give people a FreeBSD-STABLE snapshot CD, I'd like to give
them a complete Unix, and for me a MTA belongs to a basic package.

If I want to do a complete upgrade of all of my system ports,
because I come to the conclusion
- I installed to much experimental crap and don't get it
  sorted out manually
- or I want to upgrade everything to the latest and greatest
I don't want to kill my MTA (sendmail) by performing a rm -rf /usr/local/*
action.

FreeBSD - as is - has all the basic system functionality in the
base system and I wouldn't like to have a "neutral" "castrated"
Unix just for the sake, that you can start later to customize
things like sendmail and maybe other things 

 I would love to see this happen with other components of the system as
 well, such as BIND.

definitively not. I hate the Linux way to have a puzzle system.
Could we please still agree on a base system that is complete,
so that SNAP CD's still represent a complete BSD without having
to create additional ports ???

Again FreeBSD != Linux.

 While it is fantastic that FreeBSD comes out of the box so fully
 functional, it does make it a bit of a pain for those of us who intend
 to build servers - we have to disable the original before installing a
 new package.  :-/

Well ... for that purpose I'd vote for the following:

a) make more
NO_ (sendmail, bind, whatever)
   knobs in /etc/make.conf as needed
b) make the Makefiles in the install target more complete by
   removing (old) occurrencies of sendmail, bind, if such a
   NO_XXX knob has been set.
   Then you get such an ISP server as you like after a make world
   session
c) Split FreeBSD packaging any further (bin, man, doc, compat,...)
   Add something like a package internet (sendmail, bind, ...)
   Then you can install a sendmail, DNS free system as you like.

But I wouldn't for a generally castrated BSD.

-- 
Andreas Klemm   http://people.FreeBSD.ORG/~andreas
 http://www.freebsd.org/~fsmp/SMP/SMP.html
   powered by Symmetric MultiProcessor FreeBSD
New APSFILTER 533 and songs from our band - http://people.freebsd.org/~andreas



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-11 Thread Joe Greco

 At 2:44 PM -0400 2000/4/9, Patrick Bihan-Faou wrote:
 
   The advantage would be that we can have a fairly decent qmail
 configuration
   using the standard make world feature.
 
   Is there any interest in that kind of work ?
 
 Considering the number of qmail-specific pieces that need to be 
 installed to support it (and the resulting domino effect), the highly 
 negative impacts that qmail is notorious for, and that it is not 
 intended to be a drop-in replacement for sendmail, I would be highly 
 opposed to this change.
 
 
 If we are actively interested in finding a replacement for the 
 open-source sendmail MTA, I would prefer one that was designed from 
 the beginning with security in mind (including going so far as being 
 intended to run in a chroot() environment), is intended to avoid 
 undesirable behaviour as much as possible, and is intended to be a 
 drop-in replacement for sendmail to the greatest degree possible.
 
 In other words, if we're going to be replacing sendmail with an 
 alternative MTA, I'd prefer postfix over qmail, and I believe I can 
 marshall some pretty strong arguments for that position.

Perhaps it's time to revisit something I proposed several years ago.

Remove Sendmail from the base system - or, at least, make it a "package"
that is removable with the package management tool.  Then be able to add
another mailer (or an updated Sendmail) in its place.  Ideally, Sendmail
would be available as a package for installation as part of the base
system, just like games or info or proflibs.

I would love to see this happen with other components of the system as
well, such as BIND.

While it is fantastic that FreeBSD comes out of the box so fully
functional, it does make it a bit of a pain for those of us who intend
to build servers - we have to disable the original before installing a
new package.  :-/
-- 
... Joe

---
Joe Greco - Systems Administrator [EMAIL PROTECTED]
Solaria Public Access UNIX - Milwaukee, WI 414/342-4847


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-11 Thread Joe Greco

 On Fri, Apr 14, 2000 at 05:21:24PM -0500, Joe Greco wrote:
  While it is fantastic that FreeBSD comes out of the box so fully
  functional, it does make it a bit of a pain for those of us who intend
  to build servers - we have to disable the original before installing a
  new package.  :-/
 
 man mailwrapper

No, that's not what I'm talking about.  If you want to install the latest
Sendmail, what do you do?  (hint: it has nothing to do with mailwrapper)

I'd like it to be something like:

# pkg_delete sendmail; pkg_add sendmail

Right now, to do a chrooted sendmail, not only do you have to remove the
pre-existing sendmail:

# chmod 000 /usr/sbin/sendmail /etc/sendmail.cf (etc etc)

but you also have to do some things to install it chrooted someplace safe.

Some of us also view the concept of having to actually change executables
within the base system as something nearing criminal.  I _really_ like the
idea of mounting my systems RO and very secure.  Changing modes on files
doesn't bother me so much, but I'd prefer not to do it.

The ideal situation would be where sendmail did not come installed by
default.
-- 
... Joe

---
Joe Greco - Systems Administrator [EMAIL PROTECTED]
Solaria Public Access UNIX - Milwaukee, WI 414/342-4847


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-10 Thread Brad Knowles

At 2:44 PM -0400 2000/4/9, Patrick Bihan-Faou wrote:

  The advantage would be that we can have a fairly decent qmail configuration
  using the standard make world feature.

  Is there any interest in that kind of work ?

Considering the number of qmail-specific pieces that need to be 
installed to support it (and the resulting domino effect), the highly 
negative impacts that qmail is notorious for, and that it is not 
intended to be a drop-in replacement for sendmail, I would be highly 
opposed to this change.


If we are actively interested in finding a replacement for the 
open-source sendmail MTA, I would prefer one that was designed from 
the beginning with security in mind (including going so far as being 
intended to run in a chroot() environment), is intended to avoid 
undesirable behaviour as much as possible, and is intended to be a 
drop-in replacement for sendmail to the greatest degree possible.

In other words, if we're going to be replacing sendmail with an 
alternative MTA, I'd prefer postfix over qmail, and I believe I can 
marshall some pretty strong arguments for that position.

--
   These are my opinions -- not to be taken as official Skynet policy
==
Brad Knowles, [EMAIL PROTECTED]|| Belgacom Skynet SA/NV
Systems Architect, Mail/News/FTP/Proxy Admin || Rue Colonel Bourg, 124
Phone/Fax: +32-2-706.13.11/12.49 || B-1140 Brussels
http://www.skynet.be || Belgium


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-10 Thread Brad Knowles

At 5:40 PM -0400 2000/4/9, Patrick Bihan-Faou wrote:

  Then people that are running a mail server could install either the
  Sendmail, Postfix, Qmail, Zmail, etc...  MTA ports.

  Sounds like a great idea. The reason why I am doing this is because I DONT
  want sendmail. The solution that is being implemented sounds like the best
  way to approach this.

I can support this position as well.  I don't think we're likely 
to find consensus on replacing one MTA with another (the community is 
too diverse for that), so replacing a full-featured MTA with one that 
has the minimum necessary features for "nullclient" operations and 
then allowing people to install whatever full-featured MTA they may 
want seems to be the best alternative.

--
   These are my opinions -- not to be taken as official Skynet policy
==
Brad Knowles, [EMAIL PROTECTED]|| Belgacom Skynet SA/NV
Systems Architect, Mail/News/FTP/Proxy Admin || Rue Colonel Bourg, 124
Phone/Fax: +32-2-706.13.11/12.49 || B-1140 Brussels
http://www.skynet.be || Belgium


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Integrating QMAIL in the world

2000-04-09 Thread Patrick Bihan-Faou

Hi,

I have integrated the source of qmail so it can be built as part of the
"world". I think that it would be nice to have an alternative for the mailer
package to be built as part of a make world.

What I would like to do is upgrate the "NO_SENDMAIL" variable to a
"MAILER_SYSTEM" variable, which could be set to "SENDMAIL" (default), "NONE"
or "QMAIL".

The advantage would be that we can have a fairly decent qmail configuration
using the standard make world feature.

Is there any interest in that kind of work ?


Patrick.




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-09 Thread Jon Parise

On Sun, Apr 09, 2000 at 02:44:25PM -0400, Patrick Bihan-Faou wrote:

 I have integrated the source of qmail so it can be built as part
 of the "world". I think that it would be nice to have an
 alternative for the mailer package to be built as part of a make
 world.

I don't recall the particulars (it's been a while since I've
managed a qmail installation), but aren't there issues with qmail's
distribution license that would make integrating it into the build
tree illegal?

As a side note, I don't think it's all that good of an idea to add
another MTA to the build tree, but I'm sure others will raise a
more substantial argument than I could.

-- 
Jon Parise ([EMAIL PROTECTED])  .  Rochester Inst. of Technology
http://www.csh.rit.edu/~jon/  :  Computer Science House Member


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-09 Thread Patrick Bihan-Faou

From: "Jon Parise" [EMAIL PROTECTED]
 On Sun, Apr 09, 2000 at 02:44:25PM -0400, Patrick Bihan-Faou wrote:

  I have integrated the source of qmail so it can be built as part
  of the "world". I think that it would be nice to have an
  alternative for the mailer package to be built as part of a make
  world.

 I don't recall the particulars (it's been a while since I've
 managed a qmail installation), but aren't there issues with qmail's
 distribution license that would make integrating it into the build
 tree illegal?


I will contact DJB and find out if this is OK with him. After reading his
"license" page, I come to the conclusion that it is a matter of obtaining is
approval. He wants to ensure that qmail IS qmail no matter how and where it
is installed.



 As a side note, I don't think it's all that good of an idea to add
 another MTA to the build tree, but I'm sure others will raise a
 more substantial argument than I could.

Well, qmail is a fairly popular alternative to sendmail. It is supposedly
more secure, and definitely easier to configure. I use it exclusively and it
would be a lot nicer for me to have it included in the base distribution of
FreeBSD. I am sure that other people feel the same.

My intent is NOT to start a flame war on MTA's. If nobody is interested
and/or the FreeBSD team does not want it, then it will not be included in
the tree. It's that simple.

I remember some while ago some threads going wild on the subject of MTA. The
only reason why I am posting this is that I did the work for some other
project I am involved in, and if it can help others, then I'd rather share
it.


Patrick.




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-09 Thread David O'Brien

On Sun, Apr 09, 2000 at 02:44:25PM -0400, Patrick Bihan-Faou wrote:
 I have integrated the source of qmail so it can be built as part of the
 "world". I think that it would be nice to have an alternative for the mailer
 package to be built as part of a make world.
...
 Is there any interest in that kind of work ?

I'd say probably not.

Peter Wemm is working on kicking Sendmail out of the base system and
replacing it with a very simple piece that can do local mail delivery and
outgoing SMTP to a relay host -- these are the minimal operational
requirements.

Then people that are running a mail server could install either the
Sendmail, Postfix, Qmail, Zmail, etc...  MTA ports.

-- 
-- David([EMAIL PROTECTED])


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-09 Thread Patrick Bihan-Faou


- Original Message -
From: "David O'Brien" [EMAIL PROTECTED]
 On Sun, Apr 09, 2000 at 02:44:25PM -0400, Patrick Bihan-Faou wrote:
  I have integrated the source of qmail so it can be built as part of the
  "world". I think that it would be nice to have an alternative for the
mailer
  package to be built as part of a make world.
 ...
  Is there any interest in that kind of work ?

 I'd say probably not.

 Peter Wemm is working on kicking Sendmail out of the base system and
 replacing it with a very simple piece that can do local mail delivery and
 outgoing SMTP to a relay host -- these are the minimal operational
 requirements.

 Then people that are running a mail server could install either the
 Sendmail, Postfix, Qmail, Zmail, etc...  MTA ports.


Sounds like a great idea. The reason why I am doing this is because I DONT
want sendmail. The solution that is being implemented sounds like the best
way to approach this.

Thread closed ?

Patrick.




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Integrating QMAIL in the world

2000-04-09 Thread Hasan Diwan

qmail is distributed as "freeware" according to freshmeat.net. They do
not define the term, but by my definition, freeware would be freer
than the BSD license.
* Jon Parise ([EMAIL PROTECTED]) [000409 15:04]:
 I don't recall the particulars (it's been a while since I've
 managed a qmail installation), but aren't there issues with qmail's
 distribution license that would make integrating it into the build
 tree illegal?

-- 
Hasan Diwan [[EMAIL PROTECTED]] :)
Rensselaer Polytechnic Institute 
Computer Science Department
http://forsythe.dhs.org/~hdiwan 

 PGP signature