Re: Fw: [Bug 199109] New: pptp: kernel printk "recursion detected", and then reboot itself
flat view
From: Guillaume Nault <hidden>
Date: 2018-03-15 17:51:55
On Wed, Mar 14, 2018 at 08:02:17AM -0700, Stephen Hemminger wrote:
Begin forwarded message: Date: Wed, 14 Mar 2018 06:56:09 +0000 From: bugzilla-daemon@bugzilla.kernel.org To: stephen@networkplumber.org Subject: [Bug 199109] New: pptp: kernel printk "recursion detected", and then reboot itself https://bugzilla.kernel.org/show_bug.cgi?id=199109 Bug ID: 199109 Summary: pptp: kernel printk "recursion detected", and then reboot itself Product: Networking Version: 2.5 Kernel Version: 4.9.77 Hardware: Mips32 OS: Linux Tree: Mainline Status: NEW Severity: high Priority: P1 Component: IPV4 Assignee: stephen@networkplumber.org Reporter: xuheng333@zoho.com Regression: No Created attachment 274715 --> https://bugzilla.kernel.org/attachment.cgi?id=274715&action=edit system log Use openwrt LEDE, (gcc version 5.5.0 (OpenWrt GCC 5.5.0 r5932-9c4fe10) ). When use pptp, make WAN(eth1) down and then make WAN(eth1) up, pptp will redial itself. Do this in a loop. After a while, kernel print "recursion detected" and "net_ratelimit: 49422 callbacks suppressed", print this many times, then system reboot. When add more printk in driver "driver/net/ppp/ppp_generic.c", fond it fall in loop in "static void __ppp_xmit_process(struct ppp *ppp)", which called by "static void __ppp_channel_push(struct channel *pch)". __ppp_channel_push() locked ppp->xmit_recursion, and loop for long time( while (!ppp->xmit_pending && (skb = skb_dequeue(&ppp->file.xq))) ppp_send_frame(ppp, skb); ). Some other thread want to lock ppp->xmit_recursion, but failed.
Hi Xuheng, Are you sure that your PPTP packets aren't routed back to your PPP interface? What's the IP address of the PPTP server? Regards, Guillaume