override for mpd

YONETANI Tomokazu qhwt+dragonfly-submit at les.ath.cx
Tue Apr 6 18:40:52 PDT 2004


On Tue, Apr 06, 2004 at 11:24:53AM -0700, Matthew Dillon wrote:
> :Note that the netgraph code seems not in sync with recent changes
> :and it panics at somewhere in linker_search_path() called from
> :ng_make_node(), at least when netgraph modules are not compiled in
> :the kernel. I haven't tracked this down yet, and I'm using an older
> :kernel when I need mpd.
> :
> :Regards.
> 
>     I'm not very familiar with the workings of netgraph, but if you can
>     supply the panic info and a trace I can take a look at it.

I noticed that gdb doesn't support gcc3-compiled kernel with debug symbols.
I have to build a kernel with gcc2 and with netgraph drivers compiled in so
that they show up in the backtrace.

1. when the netgraph code tries to call a function in a module that's
not yet loaded, it calls linker_search_path(), which then passes
curthread to NDINIT, where KKASSERT(p != NULL) failed(p = td->td_proc).

2. when trying to open a pptp session with mpd, socreate() dereferences
   things via td->td_proc, but it's NULL. here's a backtrace roughly
   written down by hand:

    socreate
    ng_ksocket_nethook
    ng_add_hook
    ng_mkpeer
    ng_generic_msg
    ng_send_msg
    ngc_send
    netmsg_pru_dispatcher
    netmsg_service_loop

(sorry, I don't know how to reproduce this with ngctl yet,
I'm still learning it). I put printf()'s in these functions and at least
at ngc_send, curthread->td_proc was not NULL, but it's NULL in ng_add_hook.
I know td->td_proc may be NULL, but with older kernel it doesn't panic
in the places above. I don't know what caused this though.

Anyway I'm going to build a few kernels from source as of several days
before with gcc2 to make sure this is not yet another CPU optimization bug
I acidentally hit.





More information about the Submit mailing list