2010-06-13 13:28:59

by Marin Mitov

[permalink] [raw]
Subject: [REGRESSION]linux-2.6.35-rc3 in net/core/dev.c

Hi all,

I am using ssh with port redirection to log on host_at_work:

ssh -L20110:mail:110 host_at_work

With linux-2.6.35-rc3, when I telnet to localhost I get:

telnet localhost 20110
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection timed out

but the connection at host_at_work stays ESTABLISHED

With older kernels at home (linux-2.6.33.4) when I telnet I have:

telnet localhost 20110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK
quit
+OK
Connection closed by foreign host.

I have seen the posting on LKML:

http://lkml.org/lkml/2010/6/13/11

and decided to revert the patch mentioned their (see bellow).
The revert solves the problem for me.

Regards

Marin Mitov

===========================================================
--- a/net/core/dev.c 2010-06-13 13:21:36.000000000 +0300
+++ b/net/core/dev.c 2010-06-13 12:39:31.000000000 +0300
@@ -2810,13 +2810,24 @@
if (!skb->skb_iif)
skb->skb_iif = skb->dev->ifindex;

+ /*
+ * bonding note: skbs received on inactive slaves should only
+ * be delivered to pkt handlers that are exact matches. Also
+ * the deliver_no_wcard flag will be set. If packet handlers
+ * are sensitive to duplicate packets these skbs will need to
+ * be dropped at the handler. The vlan accel path may have
+ * already set the deliver_no_wcard flag.
+ */
null_or_orig = NULL;
orig_dev = skb->dev;
master = ACCESS_ONCE(orig_dev->master);
- if (master) {
- if (skb_bond_should_drop(skb, master))
+ if (skb->deliver_no_wcard)
+ null_or_orig = orig_dev;
+ else if (master) {
+ if (skb_bond_should_drop(skb, master)) {
+ skb->deliver_no_wcard = 1;
null_or_orig = orig_dev; /* deliver only exact match */
- else
+ } else
skb->dev = master;
}


2010-06-13 14:54:35

by Jindrich Makovicka

[permalink] [raw]
Subject: Re: [REGRESSION]linux-2.6.35-rc3 in net/core/dev.c

On Sun, 13 Jun 2010 16:25:54 +0300
Marin Mitov <[email protected]> wrote:

> Hi all,
>
> I am using ssh with port redirection to log on host_at_work:
>
> ssh -L20110:mail:110 host_at_work
>
> With linux-2.6.35-rc3, when I telnet to localhost I get:
>
> telnet localhost 20110
> Trying 127.0.0.1...
> telnet: connect to address 127.0.0.1: Connection timed out
[...]
>
> I have seen the posting on LKML:
>
> http://lkml.org/lkml/2010/6/13/11
>
> and decided to revert the patch mentioned their (see bellow).
> The revert solves the problem for me.

I can confirm this. Reverting of this patch fixes a regression with
Privoxy running on localhost, where most of the connections
(browser->proxy) stall and don't return anything.

--
Jindrich Makovicka

2010-06-13 15:28:50

by Heinz Diehl

[permalink] [raw]
Subject: Re: [REGRESSION]linux-2.6.35-rc3 in net/core/dev.c

On 13.06.2010, Jindrich Makovicka wrote:

> I can confirm this. Reverting of this patch fixes a regression with
> Privoxy running on localhost, where most of the connections
> (browser->proxy) stall and don't return anything.

This does also fix this bug:
https://bugzilla.kernel.org/show_bug.cgi?id=16188

2010-06-16 19:27:11

by Maciej Rutecki

[permalink] [raw]
Subject: Re: [REGRESSION]linux-2.6.35-rc3 in net/core/dev.c

On niedziela, 13 czerwca 2010 o 15:25:54 Marin Mitov wrote:
> Hi all,
>
> I am using ssh with port redirection to log on host_at_work:
>
> ssh -L20110:mail:110 host_at_work
>
> With linux-2.6.35-rc3, when I telnet to localhost I get:
>
> telnet localhost 20110
> Trying 127.0.0.1...
> telnet: connect to address 127.0.0.1: Connection timed out
>
> but the connection at host_at_work stays ESTABLISHED
>

I created a Bugzilla entry at
https://bugzilla.kernel.org/show_bug.cgi?id=16229
for your bug report, please add your address to the CC list in there, thanks!

--
Maciej Rutecki
http://www.maciek.unixy.pl