--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: libnetgraph4: netgraph completely broken
- From: antoine beaupre <anarcat@anarcat.ath.cx>
- Date: Sun, 09 May 2010 20:11:33 -0400
- Message-id: <20100510001133.4016.99253.reportbug@loony.anarcat.ath.cx>
Package: libnetgraph4
Version: 8.0-4
Severity: grave
Justification: renders package unusable
I can't get netgraph to work under Debian/kFreeBSD. I was able to get
ngctl to compile using a simple hack to work around #522773 and #522774
(#define __unused) but it's completely refusing to start:
loony:/home/anarcat/src/ngctl-7.3# ./ngctl -d
ngctl: bind(ngctl3745): Invalid argument
ngctl: can't create node: Invalid argument
The kernel then spawns the following:
WARNING: attempt to net_add_domain(netgraph) after domainfinalize()
... regardless of whether I'm using the 7.2, 7.3 or 8.0 kernels. This
error happens only once, when the netgraph modules get autoloaded.
I'm also having problems making the PPPoE support of the ppp userland
program work, a related problem described here:
http://lists.debian.org/debian-bsd/2010/05/msg00017.html
(Note that I have also tried the ppp binary provided by the
freebsd-hackedutils package, which leads to a similar problem:
http://lists.debian.org/debian-bsd/2010/05/msg00019.html )
So my current guess the problem lies within the netgraph library (as
opposed to ngctl, ppp or the kernel), which would do some things in the
wrong order for the kernel. I'm really just guessing here but that's
what the error message error above says. :) (Then again, the above error
message signals an error *within* the kernel's internal API, so the
problem may also lie within the kernel.)
This blocks kfreebsd users from doing anything significant with the
library, so I'm marking this bug as grave. Furthermore, it's affecting
the ppp functionality (keeps PPPoE from working) so it could even be
upgraded to critical (if we want PPPoE in kfreebsd!!), but I'll let the
package maintainer decide this.
I hope this is clear enough and that my tests were complete enough. :)
Let me know if you can reproduce.
A.
(More debugging/tracing guesswork below, skip if you already know how to
fix this. :P)
(net_add_domain() is how new protocols register "hooks" (like protocol
families and hooks for connect() and bind() syscalls) within the kernel.
This is defined in sys/domain.h and kern/uipc_domain.c which make me
suspect the problem may also lie within...)
(I have also traced the problem within ngctl, libgraph and the netgraph
kernel module source code. The problem starts on the NgMkSockNode(3)
call in ngctl's main.c:174. That function, part of libnetgraph, goes
around creating the netgraph socket(2) and bind(2) (in sock.c:76) The
above debugging output shows that it's during the bind(2) (sock.c:104)
that the failure happens. The function registered to handle bind(2)
syscalls in netgraph is ngc_bind() (according to ng_socket.c:1049). From
there on there are multiple places that throw the EINVAL error we can
see in the following trace of ngctl:
6034 ngctl CALL socket(PF_NETGRAPH,SOCK_DGRAM,0x2)
6034 ngctl RET socket 3
6034 ngctl CALL bind(0x3,0xbfbfe2a0,0)
6034 ngctl RET bind -1 errno 22 Invalid argument
That's about as far I can trace this at this point.)
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: kfreebsd-i386 (i686)
Kernel: kFreeBSD 7.3-1-686
Locale: LANG=fr_CA.UTF-8, LC_CTYPE=fr_CA.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to fr_CA.UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libnetgraph4 depends on:
ii libbsd0 0.2.0-1 utility functions from BSD systems
ii libc0.1 2.10.2-7 Embedded GNU C Library: Shared lib
libnetgraph4 recommends no packages.
libnetgraph4 suggests no packages.
-- no debconf information
--- End Message ---