override for mpd

YONETANI Tomokazu qhwt+dragonfly-bugs at les.ath.cx
Wed Apr 7 06:19:42 PDT 2004


[switching to bugs@]

On Wed, Apr 07, 2004 at 10:39:36AM +0900, YONETANI Tomokazu wrote:
> 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.

After doing some binary searches, I found that backing out two changes

sys/kern/uipc_msg.c,1.4
sys/sys/socketops.h,1.4

stopped panic situation 2 above. With these revisions backed out,
kernel from CVS tip doesn't panic when using pptp on mpd. I don't quite
understand what's wrong about this.
As for the backtrace, savecore keeps failing for dumps from older kernels.
I'm doing buildkernel from newer source with gcc2 and no CPU optimization
flags now.





More information about the Bugs mailing list