From owner-freebsd-net@FreeBSD.ORG Mon May 24 02:17:39 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9870E16A4CE for ; Mon, 24 May 2004 02:17:39 -0700 (PDT) Received: from smtp-out2.xs4all.nl (smtp-out2.xs4all.nl [194.109.24.12]) by mx1.FreeBSD.org (Postfix) with ESMTP id C87E843D1F for ; Mon, 24 May 2004 02:17:38 -0700 (PDT) (envelope-from wim@mediamessage.nl) Received: from waldo (gwbw.xs4all.nl [213.84.100.200]) by smtp-out2.xs4all.nl (8.12.10/8.12.10) with ESMTP id i4O9H5K1040887 for ; Mon, 24 May 2004 11:17:05 +0200 (CEST) Received: from localhost (waldo [127.0.0.1]) by waldo (Postfix) with ESMTP id 84E6F36B50 for ; Mon, 24 May 2004 11:17:03 +0200 (CEST) Received: from waldo ([127.0.0.1]) by localhost (waldo [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11675-09 for ; Mon, 24 May 2004 11:16:56 +0200 (CEST) Received: from crazyharry.buyways.nl (crazyharry.buyways.nl [192.168.218.74]) by waldo (Postfix) with ESMTP id CB93536B4C for ; Mon, 24 May 2004 11:16:55 +0200 (CEST) From: Wim Rijnders To: freebsd-net@freebsd.org Content-Type: text/plain Message-Id: <1085390095.633.26.camel@crazyharry> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Mon, 24 May 2004 11:14:55 +0200 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at buyways.nl Subject: netgraph: kernel panic due to M_DONTWAIT when connecting ksocket X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2004 09:17:39 -0000 Hello, When trying to use a netgraph ksocket for a tcp connection, we get a kernel panic on opening the connection. The panic is a result of a KASSERT() on the value of a flag which we don't set ourselves and which we don't appear to have control over. Details of our investigation follow. What can we do to fix this? --- We're using the 5.2-CURRENT release. * We use ksockets in netgraph to create a tcp connection. The kernel panics when creating a connection with code similar to: result= NgSendMsg(ctrlSoc, path, NGM_KSOCKET_COOKIE, NGM_KSOCKET_CONNECT, &addr, sizeof(addr) ) * The kernel panic occurs in ng_ksocket.c , function ng_ksocket_incoming2() on a call to macro NG_MKMESSAGE(). This macro is defined in ng_message.h. One of the first things it does is perform this KASSERT(): KASSERT(!(how & M_DONTWAIT), \ ("NG_MKMESSAGE() with how=M_DONTWAIT (%d)\n", how)); \ * We do not set the M_DONTWAIT flag anywhere our code. The setting can be traced to call in sowakeup(), line 320 in /usr/src/sys/kern/uipc_socket2.c: if (sb->sb_flags & SB_UPCALL) sh freebeer*so->so_upcall)(so, so->so_upcallarg, M_DONTWAIT); --- Kind regards, Wim Rijnders Buyways BV.