[Bug 1829284] Re: systemd-resolved doesn't support tcp pipelining in b/c
Dan Streetman
dan.streetman at canonical.com
Wed May 15 19:15:41 UTC 2019
** Also affects: systemd (Ubuntu Bionic)
Importance: Undecided
Status: New
** Also affects: systemd (Ubuntu Cosmic)
Importance: Undecided
Status: New
** Changed in: systemd (Ubuntu Cosmic)
Assignee: (unassigned) => Dan Streetman (ddstreet)
** Changed in: systemd (Ubuntu Bionic)
Assignee: (unassigned) => Dan Streetman (ddstreet)
** Changed in: systemd (Ubuntu Cosmic)
Importance: Undecided => Medium
** Changed in: systemd (Ubuntu Bionic)
Importance: Undecided => Medium
** Changed in: systemd (Ubuntu Cosmic)
Status: New => In Progress
** Changed in: systemd (Ubuntu Bionic)
Status: New => In Progress
** Tags added: ddstreet-next
** Changed in: systemd (Ubuntu)
Status: New => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1829284
Title:
systemd-resolved doesn't support tcp pipelining in b/c
Status in systemd package in Ubuntu:
Fix Released
Status in systemd source package in Bionic:
In Progress
Status in systemd source package in Cosmic:
In Progress
Bug description:
[impact]
with systemd and resolvconf installed, the /etc/resolv.conf file is
managed by resolvconf, and in bug 1817903 the 'options edns0' option
is stripped from the systemd stub resolv.conf so no 'options edns0'
will be present in /etc/resolv.conf (unless added through other means
than the resolvconf-pull-resolved.service).
However, in b/c the local systemd stub resolver does not support
pipelined TCP dns queries, which glibc does by default when falling
back to TCP dns queries (i.e., glibc will perform both A and AAAA
queries using a single tcp packet, instead of opening separate tcp
connections for each query). This results in glibc's dns queries
always failing, when using TCP. This can be done by adding 'options
use-vc' to /etc/resolv.conf, but also happens in glibc when the dns
response does not fit inside the 512-byte default max, such as for dns
A lookups with a lot of addresses. This is explained in more detail
in bug 1811471.
What this means is that systems installed with either b or c, and that
have systemd and resolvconf installed, will experience the problem
from bug 1811471 - they cannot lookup any address where the response
exceeds 512 bytes.
[test case]
install a bionic or cosmic system, which will have systemd installed,
and also install resolvconf. You may need to reboot after installing
resolvconf to ensure that /etc/resolv.conf has been updated to remove
the 'options edns0' line. After verifying that line is not in the
/etc/resolv.conf file, the test case from bug 1811471 should fail, or
a simpler one is:
$ ping toomany.ddstreet.org
[regression potential]
any change to systemd and/or resolvconf has a high potential for
regression. more details here TBD.
[other info]
the best way to fix this is to backport tcp pipelining support in
systemd-resolved.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1829284/+subscriptions
More information about the foundations-bugs
mailing list