------- Comment From gpicc...@br.ibm.com 2016-09-15 17:13 EDT------- > On Tue, Sep 13, 2016 at 06:20:49PM -0000, bugproxy wrote: [...] > Based on the feedback from gpicc...@br.ibm.com, it does not appear that the > buggy udev rule is blocking progress on this bug. > [...] > > I should also ammend my previous comment by saying, if Canonical has some > > suggestions of how to gather more information in order to help debug this, > > they should let us know and we can make test runs for them. > > My previous suggestion to gpiccoli on IRC was to modify the initrd to dump > the state of the udev database at a point after the hang. I haven't seen > such output attached here; does that mean it's not possible to produce such > results because the kernel hard locks? Currently the only debugging > information I've seen is that the /lib/debian-installer/start-udev script > never returns, but that does not mean the kernel has locked up - it only > shows that udev believes it has not finished processing. I would still like > to see a dump of the udev database at the point of the hang, not just a udev > debug log showing processing up to that point. > > Is this problem only reproducible with the X710 ethernet adapter? Is this a > removable ethernet adapter, and have you tested what happens if it's > removed? If it's not removable, have you tested what happens if you > blacklist the i40e driver? The ethernet driver may be a complete red > herring, and the problem may be with something that normally happens after > ethernet driver initialization rather than with the ethernet driver itself. > > I would also have asked whether this could be an issue with the console > output being redirected to some different device, but since Guilherme > indicated that the problem appeared to be racy, with boot to the installer > sometimes succeeding, that seems unlikely to be the problem. > > If you can reproduce this problem with the cloud image from > <http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg- > ppc64el-disk1.img>, > that would present additional debugging opportunities since that uses a > standard Ubuntu initramfs instead of the installer initramfs and will > support various 'break=' options to interrupt the boot and introspect the > system state.
Vorlon, thanks very much for your assistance. In fact, your ideas were useful and we tried many of them. And finally we seem to have figured what's going on hehehe Firstly, our bad trials: i) "udev info -e" was impossible to accomplish in a bad boot, because even if I try to run it as one of the first things in init, the system seems still hangs. ii) Adding modprobe blacklist to any driver makes things work. In fact, I added the command-line "vorlon" and it worked too hehehe iii) I wasn't able to test this Cloud image - never installed this before, is it a complete functional image? I wondered if it needs to be write directly on the disk, perhaps... Anyway, after all the analysis we finally observed something important: by putting any command-line we ended up overwriting the default cmdline, and that was the reason of _any_ command-line worked. Now, the default cmdline was: "console=hvc0 console=tty1", so I guess the installer was booting normally, but with the output redirected to tty1! It was that simple mistake that makes things show as hanged. We were reading that default command-line from Petitboot, the ppc64 bootloader. By the way, you already suggested that might be a console output redirection vorlon, so unfortunately I was unable to figure it until today. Thanks very much for the help! Now, let me ask: is it expected that Ubuntu redirects output preferably to tty1, or to the last "console" presented in cmdline? Cheers, Guilherme -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1615021 Title: Unable to network boot Ubuntu 16.04 installer normally on Briggs Status in busybox package in Ubuntu: Fix Released Status in debian-installer package in Ubuntu: Triaged Status in systemd package in Ubuntu: Fix Released Status in busybox source package in Xenial: Won't Fix Status in debian-installer source package in Xenial: Triaged Status in systemd source package in Xenial: Fix Released Status in busybox source package in Yakkety: Fix Released Status in debian-installer source package in Yakkety: Triaged Status in systemd source package in Yakkety: Fix Released Bug description: == Comment: #7 - Guilherme Guaglianoni Piccoli <gpicc...@br.ibm.com> - 2016-08-19 10:08:07 == The normal procedure to perform a Netboot installation of Ubuntu 16.04 is to download the latest vmlinux and initrd.gz files available, and kexec them with no parameters (at least in ppc64el). We're experiencing a strange issue in which the installer freezes before menus are showed. The system hangs in the point specified below, right after the i40e driver initialization: [ 11.052832] i40e 0002:01:00.0 enP2p1s0f0: renamed from eth0 [ 11.073976] i40e 0002:01:00.1 enP2p1s0f1: renamed from eth1 [ 11.117799] i40e 0002:01:00.2 enP2p1s0f2: renamed from eth2 [ 11.225745] i40e 0002:01:00.3 enP2p1s0f3: renamed from eth3 ***HANG*** The most difficult part in this issue is that it seems to be a timing issue/race condition, and many debug trials end up by avoiding the issue reproduction (heisenbug). We were successful though in getting logs by booting the kernel with the command-line "BOOT_DEBUG=2" and by changing the initrd in order to enable systemd debug; only the files "init" and "start-udev" were changed in initrd, both attached here. We've attached here a saved screen session that shows the entire boot process until it gets flooded with lots of messages like: "starting '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules'(err) 'failed to execute '/bin/readlink' '/bin/readlink /etc/ udev/rules.d/80-net-setup-link.rules': No such file or directory' seq 3244 queued, 'add' 'pci_bus' starting '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' passed 408 byte device to netlink monitor 0x1003cfe8020seq 3236 running'/bin/readlink /etc/udev/rules.d/80-net-setup-l ink.rules'(err) 'failed to execute '/bin/readlink' '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules': No such file or directory' '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules'(err) 'failed to execute '/bin/readlink' '/bin/readlink /etc/ udev/rules.d/80-net-setup-link.rules': No such file or directory' Process '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' failed with exit code 2. PROGRAM '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' /lib/udev/rules.d/73-usb-net-by-mac.rules:6 passed device to netlink monitor 0x1003d01f730 " Then it keeps hanged in this stage. We re-tested it by changing the file 73-usb-net-by-mac.rules in initrd, replacing " /etc/udev/rules.d/80-net-setup-link.rules" to "/lib/udev/rules.d/80 -net-setup-link.rules", since the former does not exist whereas the latter does. Same issue were observed! Notice that if we boot the installer with command-line "net.ifnames=0" or "net.ifnames=1", the problem does not reproduces anymore. We want to ask Canonical's help in investigating this issue. Thanks, Guilherme SRU INFORMATION for systemd =========================== Test case: * Check what happens for uevents on devices which are not USB network interfaces: udevadm test /sys/devices/virtual/mem/null udevadm test /sys/class/net/lo With the current version these will run PROGRAM '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' /lib/udev/rules.d/73-usb-net-by-mac.rules:6 which is pointless. With the proposed version these should be gone. * Ensure that the rule still works as intended by connecting an USB network device that has a permanent MAC address (e. g. Android tethering uses a temporary MAC): You should get a MAC-based name like "enx12345678" for it. Now disconnect it again, disable ifnames with sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules and reconnect the device. You should now get a kernel name like "usb0" for it. * Regression potential: Errors in the rule could break persistent naming - or its disabling - of USB network interfaces. Running the above test carefully is important to ensure this keeps working. This has little to no actual effect on anything else on the system (aside from a performance impact and spamming logs), so overall the regression potential is low. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/1615021/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp