cvs commit: src/sys/sys mbuf.h src/sys/kern uipc_mbuf.c
uipc_syscalls.c src/usr.bin/netstat mbuf.c src/lib/libc/sys sendfile.2
Mike Silbersack
silby at silby.com
Fri Jun 18 00:46:43 PDT 2004
On Fri, 18 Jun 2004, Ken Smith wrote:
> This is where we disagree and I don't think either of us will change
> our minds. My take on it is that this breaks an API in a -stable
> branch and is adding new functionality so it *should* be added as
> a new flag. Using a slight variant on your ls example, your approach
> is like adding the ability to find out what the inode number is by
> adding a new column to the output of "ls -l". But they didn't do
> that, they added the -i flag. If they had added it to the output
> of the -l flag anyone parsing the "ls -l" output in a script would
> need to accomodate the extra field. IMHO that's acceptable in
> -current, not -stable and IMHO the new information should go in
> as a new flag.
You're right, my ls example was too inflamatory; netstat -m is clearly
different than ls.
> Your opinion is obviously different, doesn't look like that will
> change.
>
> --
> Ken Smith
My opinion is based on the fact that software in contrib/ and in ports/
can change greatly from version to version, yet I'm getting attacked
because I added a few lines of extra information to a utility.
Look at the release notes from the last few releases in the 4.x branch;
we've imported new versions of bind, sendmail, openssh, binutils, gcc,
some utilities have been converted from perl to C, tar, tcpdump, and the
list goes on. Especially in the case of converted utilities, it's
possible that subtle bugs were added, bugs that could silently cause
problems.
In the case of adding output to netstat -m, what could possibly happen?
Maybe someone's mbuf monitoring script sets a false alarm - the user logs
in to check the situation, finds out that sfbuf output was added, fixes
the script, and life goes on.
This isn't a terrible ABI breakage, it's just a few extra lines of
information in the middle of some information that was never meant to be
machine parsed.
FWIW, netstat -m is variable depending on usage anyway - a different
number of lines of output will be printed depending on the types of mbufs
that are allocated in the system; take a look at the mbtypenames structure
in src/usr.bin/netstat/mbuf.c.
Mike "Silby" Silbersack
More information about the cvs-src
mailing list