Branch: refs/heads/stable1-proposed Home: https://github.com/kronosnet/kronosnet Commit: 5c486b57dd8ef3acff4867749c658a4302d8ed0c https://github.com/kronosnet/kronosnet/commit/5c486b57dd8ef3acff4867749c658a... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2026-06-04 (Thu, 04 Jun 2026)
Changed paths: M libknet/threads_pmtud.c
Log Message: ----------- libknet: force PMTUD rerun after reschedule interruption
When PMTUD is interrupted by a reschedule request (returns EDEADLK), some links may have been checked while others were skipped. The next iteration uses the interval timer to decide which links to check, which means recently-checked links are skipped even if they need a new PMTUD run (e.g., after reconnection following onwire protocol upgrade).
Fix by setting pmtud_forcerun=1 when the PMTUD thread detects it was interrupted (errno == EDEADLK). This ensures the next iteration force-runs PMTUD on all links regardless of the interval timer, completing discovery on interrupted and skipped links.
This approach respects the 2018 commit d2a6344f design by setting forcerun in the PMTUD thread itself (after the interrupted iteration completes) rather than in _pmtud_reschedule() or its callers, avoiding the lock fighting and scheduling issues that commit addressed.
Signed-off-by: Fabio M. Di Nitto fabbione@kronosnet.org Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/kronosnet/kronosnet/settings/notifications