#5844·quic-go

Path migration ignores DisablePathMTUDiscovery

Author: tmcCreated Sep 5, 2026Updated Sep 5, 2026

In quic-go v0.62.0, path migration starts MTU probing even when DisablePathMTUDiscovery is set. Discovery should remain disabled after migration.

Observed on IPv4 loopback with Go 1.26.0 on macOS arm64:

  1. Establish a connection with DisablePathMTUDiscovery: true and InitialPacketSize: 1200 on both endpoints.
  2. Exchange application data. Neither endpoint sends MTU probes.
  3. Migrate the client to a second UDP socket using AddPath, Probe, and Switch, then continue exchanging data.

Both endpoints then record acknowledged MTU probes of 1326, 1389, 1420, and 1436 bytes. The configuration is unchanged.

Handshake confirmation checks DisablePathMTUDiscovery and the socket's DF capability before starting discovery. The migration paths instead call mtuFinder.Reset, which arms probing without either check.

Migration should always discard the old path's MTU estimate, but restart probing only when both checks allow it. For client migration, the DF check must use the new socket.