Thread (4 messages) 4 messages, 2 authors, 2023-06-01

Re: Regression in IPv6 autoconf, maybe "ipv6/addrconf: fix timing bug in tempaddr regen"

From: Jan Engelhardt <hidden>
Date: 2023-06-01 11:51:56

On Wednesday 2023-05-31 18:31, Sam Edwards wrote:
On 5/31/23 03:20, Jan Engelhardt wrote:
quoted
Greetings.

I am observing that between kernel 5.19 and 6.0, a change was introduced
that makes the system just stop generating IPv6 Privacy Addresses after
some time.
I'd been encountering this exact problem very reliably since at least the
early 4.x days, which was my motivation for authoring this patch (which had
fully fixed the problem for me). [...] So imagine my surprise to learn that
[...] but that my patch is evidently making the problem happen *more*
frequently in your case!
Interesting. So then, I will abandon the hypothesis of a regression
(and the bisect so far) and instead focus on finding the deeper
cause. If you say it has been a problem since 4.x, then my
observation that it seemingly worked in 5.19 doesn't hold water.
Also, more frequent occurrence with 6.x is decidedly a good thing for
me debugging this.

With some classic try-it-and-see printk'ing, my current of insight is
that this branch was taken when things start to go wrong:

        age = (now - tmp_tstamp + ADDRCONF_TIMER_FUZZ_MINUS) / HZ;
        if (cfg.preferred_lft <= regen_advance + age) {
                in6_ifa_put(ifp);
                in6_dev_put(idev);
                ret = -1;
                goto out;
        }

Now, I just need to dump the timer numbers to see how
this came together, and correlate with the RAs from the CPE.
Since we're having some pretty extreme Works On My Machine Syndrome here, we
should really figure out what's different in your case from mine. What arch are
you building these kernels for? Could you share the defconfig? Are you able to
see this on multiple machines/networks or have you only tried the one? Is this
machine real hardware or a VM?
Fujitsu U7311 x86_64, http://inai.de/files/ipv6-config.txt
Tried only one so far.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help