← Back to team overview

touch-packages team mailing list archive

[Bug 1272414] Re: extremely slow sudo with many network interfaces due to slow getifaddrs() syscall perf

 

For anyone else hit by this, the fix still requires you to turn it on.

   echo "Set probe_interfaces false" | sudo tee -a /etc/sudo.conf

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to sudo in Ubuntu.
https://bugs.launchpad.net/bugs/1272414

Title:
  extremely slow sudo with many network interfaces due to slow
  getifaddrs() syscall perf

Status in sudo package in Ubuntu:
  Fix Released
Status in sudo source package in Precise:
  New

Bug description:
  Sudo performance degrades when many network interfaces exist.   This is due to a slow getifaddrs() syscall performance on linux.   Upsteam has added the ability to disable the checking the network interfaces with a runtime option in version 1.8.10 with commit  http://www.sudo.ws/repos/sudo/rev/e9dc28c7db60.
  Upstream discussion: http://www.sudo.ws/pipermail/sudo-workers/2014-January/000826.html

  This is on Ubuntu 12.04 w/ Sudo 1.8.3p1-1ubuntu3.4.  The fix does need to land on trusty before it can be SRUed.
   
  [Impact] 
  Test case results:
  w/ sudo: At the end of the test per the real time per sudo command is as high as .16 and takes almost 13 minutes.
  w/ root: At the end of the test the real time per command is .02/.03 and takes about 7 minutes total.

  
  [Test Case]
  #!/bin/bash
  SUDO=sudo
  for i in `seq 1 $1`
  do
  j=`printf %.4d $i`
  $SUDO ip netns add bar${j}
  $SUDO ip netns exec bar${j} ip link set lo up
  $SUDO ip netns exec bar${j} sysctl -w net.ipv4.ip_forward=1 > /dev/null
  $SUDO ip link add qroutside${j} type veth peer name qrinside${j} netns bar${j}
  /usr/bin/time -f "%e" $SUDO ip link add qgoutside${j} type veth peer name qginside${j} netns bar${j}
  done
  echo Created $j

  1. Run with argument 2000.
  2. Reboot
  3. Change line to SUDO= and then run as root still with argument 2000.
   
  [Regression Potential]
  This is adding one runtime variable, that was previously only a compile time variable.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/1272414/+subscriptions