[pve-devel] [PATCH installer v2 0/6] fix #4872: properly timeout `traceroute` command in country detection

Christoph Heiss c.heiss at proxmox.com
Tue Feb 13 16:13:57 CET 2024


For all the details, see patch #6.

TL;DR: SIGALRM does not interrupt line reading using <>, causing the
installer to hang on country detection. Fix it by using
Proxmox::Sys::Command::run_command(), which properly interacts with
SIGALRM.

Patch #1 is a rather mundane fix for some niche cases, #2 is a small
refactoring as proposed by Thomas and #3 might warrant some more
thought. #4 & #5 are preparatory and to not alter existing behaviour.

v1: https://lists.proxmox.com/pipermail/pve-devel/2024-February/061677.html

Changes since v1:
  * new patches #2 (refactoring) and #3 (EINTR handling)
  * introduce CMD_FINISHED constant for run_command()
  * added function documentation

Christoph Heiss (6):
  low-level: initialize UI backend for 'dump-env' subcommand too
  sys: command: factor out kill() + waitpid() from run_command()
  sys: command: handle EINTR in run_command()
  sys: command: allow terminating the process early from log subroutine
  sys: command: add option to not print process output to stdout
  fix #4872: run env: use run_command() for country detection

 Proxmox/Install/RunEnv.pm   | 22 +++++-----
 Proxmox/Sys/Command.pm      | 85 ++++++++++++++++++++++++++++++++-----
 proxmox-low-level-installer |  1 +
 test/Makefile               |  5 ++-
 test/run-command.pl         | 46 ++++++++++++++++++++
 5 files changed, 137 insertions(+), 22 deletions(-)
 create mode 100755 test/run-command.pl

--
2.43.0





More information about the pve-devel mailing list