On Tue, Oct 22 2019 17:30:37 +0300, Lauri Tirkkonen wrote:
> But it's still very strange that '-soii' would break *IPv4*. So I tried
> to do some more digging: I booted old snapshot bsd.rd's from
> ftp.hostserver.de archives, started a shell in them and did:
>
> dhclient vio0
> ifconfig vio0 -soii
>
> to verify whether the problem exists. The results:
>
> https://ftp.hostserver.de/pub/OpenBSD/6.5/amd64/bsd.rd OK
> https://ftp.hostserver.de/archive/2019-06-06-0105/amd64/bsd.rd bad
>
> Unfortunately older snapshots than that are not available any more from
> ftp.hostserver.de, so digging in more detail is harder. I also tried to
> build more recent kernels, up to the Aug 21 commit to in6_ifattach.c
> above, on top of a fresh 6.5 install, but could not reproduce the
> problem (which suggests the problem may be triggered by a userland
> change instead).
I did some bisecting today: using the github src mirror, I built
bsd.rd's on a fresh 6.5 install (which I had to manually bootstrap
libc.so.95.1 on to build all the necessary revisions), booted them on
a Hetzner VM, and checked whether 'dhclient vio0; ifconfig vio0 -soii'
lost connectivity and started displaying the "no arp information" kernel
messages. The results:
a571f6fc23a13c4832f0066f64a7d855785533f4 is the first bad commit
commit a571f6fc23a13c4832f0066f64a7d855785533f4
Author: krw <[email protected]>
Date: Fri May 10 18:50:11 2019 +0000
Restart the protocol and get a new/renewed lease for any relevant
RTM_IFINFO seen. As dhclient no longer commits suicide to restart
the
protocol this should be very low cost.
This will help some trunk(4) setups after some pending network stack
commits.
Requested by & ok florian@
:040000 040000 038c213a90ba80990a4ab6e74ff3de09227749e8
fdfc486143c5c06197c590f5f2e59d33c0c7568f M sbin
This corresponds to dhclient.c r1.634. I have no idea why this diff
would cause '-soii' to make the dhclient-added v4 default route lose
RTF_LLINFO (that seems to be the reason for the error message, from
netinet/if_ether.c), but it does.
bisect log below.
$ git bisect log
git bisect start
# good: [22d9b58b60d9c4b80b3016ef4d7adfd5ad259ddb] sync
git bisect good 22d9b58b60d9c4b80b3016ef4d7adfd5ad259ddb
# bad: [eedc3e89a813e007ee20d011314f613a59bb057c] Replace calls to
ssh_malloc_init() by a static init of malloc_options. Prepares for changes in
the way malloc is initialized. ok guenther@ dtucker@
git bisect bad eedc3e89a813e007ee20d011314f613a59bb057c
# good: [f39ab06012465ab45abcaa8b471a99ae52d59005] Simplify the
detection for installed python and scapy. Refactor
these tests to make them similar. Use the setup and cleanup variables.
git bisect good f39ab06012465ab45abcaa8b471a99ae52d59005
# bad: [1c537871235070cc2a970ab1f7da0c7feea1227a] pass a context struct
to each test function in order to reduce future churn
git bisect bad 1c537871235070cc2a970ab1f7da0c7feea1227a
# bad: [0977b27cedbaeb967e2d8dadc008c4a377dfee1a] zap confusing
unneeded parameters okay jca@, jasper@
git bisect bad 0977b27cedbaeb967e2d8dadc008c4a377dfee1a
# bad: [65c540d0d4c3c425b69019d3eae1aa2518f32bde] Add support for IKEv2
Message Fragmentation as defined in RFC 7383.
git bisect bad 65c540d0d4c3c425b69019d3eae1aa2518f32bde
# good: [d84214aeea65496e5ec36c39db6c8bccf0d6a690] remove receive_vm
prototype for the function does not exist (anymore)
git bisect good d84214aeea65496e5ec36c39db6c8bccf0d6a690
# bad: [0fd3f4e79563a06036aac197f2374c6571e80ebf] Refactor efiboot into
32 and 64 bit copies.
git bisect bad 0fd3f4e79563a06036aac197f2374c6571e80ebf
# bad: [caa55ec6cd29e83f4f078d6070add047112f3f65] Initialize
EC_KEY_METHOD before use.
git bisect bad caa55ec6cd29e83f4f078d6070add047112f3f65
# good: [9262e070b4250387ec24125a9d5446cebbe12ec8] Revert part of
r1.36: in the case of GCM, gcm.key is assigned from aesni_gcm_init_key() via
CRYPTO_gcm128_init(), so it needs to be copied over...
git bisect good 9262e070b4250387ec24125a9d5446cebbe12ec8
# bad: [74106511ec570f1b07fbdeb67a8f3c7f86627cee] Reduce number of
timehands from to just two.
git bisect bad 74106511ec570f1b07fbdeb67a8f3c7f86627cee
# bad: [a571f6fc23a13c4832f0066f64a7d855785533f4] Restart the protocol
and get a new/renewed lease for any relevant
RTM_IFINFO seen. As dhclient no longer commits suicide to restart the
protocol this should be very low cost.
git bisect bad a571f6fc23a13c4832f0066f64a7d855785533f4
# first bad commit: [a571f6fc23a13c4832f0066f64a7d855785533f4] Restart
the protocol and get a new/renewed lease for
any relevant RTM_IFINFO seen. As dhclient no longer commits suicide to
restart the protocol this should be very low
cost.
--
Lauri Tirkkonen | lotheac @ IRCnet