** Description changed:
[Impact]
- * ss can't filter using single entries in parentheses
+ * ss won't be able to run commands with single filters inside
+ parentheses, like: "( sport == :X )", for example.
+
+ * A workaround is to remove "( )" from single filters, since it looks
+ the issue does not affect 2 filters being put together in the same
+ parentheses, like: " ( X and Y ) and Y " instead of ( X and Y ) and ( Y
+ )".
+
+ * CTDB is unable to use ss filter to obtain nodes public IP addresses
+ in order to fail over services (LP: #722201).
[Test Case]
- * ss -tn state established "( src [172.16.17.2] || src [172.16.17.3] )" "(
sport == :2049 )"
- * test case was discovered during CTDB scripts execution
+ * Having an Ubuntu Cosmic, Disco or Eoan, try to execute the following
+ command:
+
+ $ ss -tn state established "( src [172.16.17.2] || src [172.16.17.3] )"
+ "( sport == :2049 )"
+
+ Independent of the IPs or ports being used. Copying and pasting the
+ command should be enough for you to know if you are affected.
+
+ Bad Result:
+
+ ss: bison bellows (while parsing filter): "syntax error!" Sorry.
+ Usage: ss [ OPTIONS ]
+ ss [ OPTIONS ] [ FILTER ]
+ -h, --help this message
+ ...
+
+ Expected Result:
+
+ Recv-Q Send-Q Local Address:Port
Peer Address:Port
+ ...
+
+ * test case was discovered during CTDB scripts execution
[Regression Potential]
- * ss interpreter (bison powered) could be broken
- * patch is based in an upstream fix and was tested
- * would likely not jeopardize ip command (higher issues)
+ * biggest risk would be to affect ss interpreter (worst case scenario).
+ * the proposed patch is based in upstream fix and was tested against the
same issue reported as the reproducer (above) and some other generic ss
commands.
+ * any problem here is unlikely to change iproute2 most important command
interpreter, "ip", since the patch is applied against ss code.
[Other Info]
-
+
ORIGINAL DESCRIPTION:
Investigating an issue for CTDB (LP: #722201), after suggesting a fix on
ss syntax to CTDB upstream project, we discovered that "ss" seems to be
broken in Ubuntu since Ubuntu Cosmic:
----
# Debian Sid
inaddy@workstation:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
Recv-Q Send-Q Local Address:Port
Peer Address:Port
# Ubuntu Ubuntu 16.04 LTS (Xenial Xerus)
(c)inaddy@xenial:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
Recv-Q Send-Q Local Address:Port
Peer Address:Port
# Ubuntu 18.04 LTS (Bionic Beaver)
(c)inaddy@bionic:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
Recv-Q Send-Q Local Address:Port
Peer Address:Port
# Ubuntu 18.10 (Cosmic Cuttlefish)
(c)inaddy@cosmic:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
# Ubuntu 19.04 (Disco Dingo)
(c)inaddy@disco:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
# Ubuntu 19.10 (Eoan Ermine)
(c)inaddy@eoan:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
----
I have generated a pkg using upstream iproute2 source code and it does
not suffer the issue. I have generated a package using Ubuntu cosmic
source package, without debian/patches/*, and verified the issue still
persists (not being introduced by any of our packages, and being present
if vanilla upstream version used in Cosmic).
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to iproute2 in Ubuntu.
Matching subscriptions: iproute2
https://bugs.launchpad.net/bugs/1831775
Title:
ss seems broken when using multiple filters in the same cmdline
Status in iproute2 package in Ubuntu:
Confirmed
Status in iproute2 source package in Cosmic:
In Progress
Status in iproute2 source package in Disco:
In Progress
Status in iproute2 source package in Eoan:
Confirmed
Bug description:
[Impact]
* ss won't be able to run commands with single filters inside
parentheses, like: "( sport == :X )", for example.
* A workaround is to remove "( )" from single filters, since it looks
the issue does not affect 2 filters being put together in the same
parentheses, like: " ( X and Y ) and Y " instead of ( X and Y ) and (
Y )".
* CTDB is unable to use ss filter to obtain nodes public IP addresses
in order to fail over services (LP: #722201).
[Test Case]
* Having an Ubuntu Cosmic, Disco or Eoan, try to execute the
following command:
$ ss -tn state established "( src [172.16.17.2] || src [172.16.17.3]
)" "( sport == :2049 )"
Independent of the IPs or ports being used. Copying and pasting the
command should be enough for you to know if you are affected.
Bad Result:
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
...
Expected Result:
Recv-Q Send-Q Local Address:Port
Peer Address:Port
...
* test case was discovered during CTDB scripts execution
[Regression Potential]
* biggest risk would be to affect ss interpreter (worst case scenario).
* the proposed patch is based in upstream fix and was tested against the
same issue reported as the reproducer (above) and some other generic ss
commands.
* any problem here is unlikely to change iproute2 most important command
interpreter, "ip", since the patch is applied against ss code.
[Other Info]
ORIGINAL DESCRIPTION:
Investigating an issue for CTDB (LP: #722201), after suggesting a fix
on ss syntax to CTDB upstream project, we discovered that "ss" seems
to be broken in Ubuntu since Ubuntu Cosmic:
----
# Debian Sid
inaddy@workstation:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
Recv-Q Send-Q Local Address:Port
Peer Address:Port
# Ubuntu Ubuntu 16.04 LTS (Xenial Xerus)
(c)inaddy@xenial:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
Recv-Q Send-Q Local Address:Port
Peer Address:Port
# Ubuntu 18.04 LTS (Bionic Beaver)
(c)inaddy@bionic:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
Recv-Q Send-Q Local Address:Port
Peer Address:Port
# Ubuntu 18.10 (Cosmic Cuttlefish)
(c)inaddy@cosmic:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
# Ubuntu 19.04 (Disco Dingo)
(c)inaddy@disco:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
# Ubuntu 19.10 (Eoan Ermine)
(c)inaddy@eoan:~$ ss -tn state established "( src [172.16.17.2] || src
[172.16.17.3] )" "( sport == :2049 )"
ss: bison bellows (while parsing filter): "syntax error!" Sorry.
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
----
I have generated a pkg using upstream iproute2 source code and it does
not suffer the issue. I have generated a package using Ubuntu cosmic
source package, without debian/patches/*, and verified the issue still
persists (not being introduced by any of our packages, and being
present if vanilla upstream version used in Cosmic).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/iproute2/+bug/1831775/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp