← Back to team overview

touch-packages team mailing list archive

[Bug 1472650] Re: [arm64] gccgo runtime crashes with CONFIG_ARM64_PGTABLE_LEVELS=4

 

= vivid verification =

# My kernel has the problematic config
ubuntu@cvm1:~$ grep CONFIG_ARM64_PGTABLE_LEVELS /boot/config-$(uname -r)
CONFIG_ARM64_PGTABLE_LEVELS=4

# Build a clean vivid chroot
ubuntu@cvm1:~$ mkdir lp1472650
ubuntu@cvm1:~$ sudo debootstrap --components 'main,universe' --include docker.io vivid lp1472650 http://ports.ubuntu.com/ubuntu-ports > /dev/null 2>&1

# docker needs proc to be mounted
ubuntu@cvm1:~$ sudo mount proc lp1472650/proc -t proc
ubuntu@cvm1:~$ sudo chroot lp1472650 docker help
p=0xffff88459000
fatal error: runtime_lfstackpush: invalid pointer
[--trim--]

# It's buggy. Let's install the gccgo update
ubuntu@cvm1:~$ echo 'deb http://ports.ubuntu.com/ubuntu-ports vivid-proposed main universe' | sudo tee -a lp1472650/etc/apt/sources.list > /dev/null
ubuntu@cvm1:~$ sudo chroot lp1472650 apt-get update > /dev/null 2>&1
ubuntu@cvm1:~$ sudo chroot lp1472650 apt-get install libgo7
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  gcc-5-base libgcc1
The following packages will be upgraded:
  gcc-5-base libgcc1 libgo7
3 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Need to get 6243 kB of archives.
After this operation, 2048 B of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/universe libgo7 arm64 5.1~rc1-0ubuntu1.1 [6198 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main gcc-5-base arm64 5.1~rc1-0ubuntu1.1 [14.4 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main libgcc1 arm64 1:5.1~rc1-0ubuntu1.1 [31.0 kB]
Fetched 4733 kB in 28s (166 kB/s)                                                             
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../libgo7_5.1~rc1-0ubuntu1.1_arm64.deb ...
Unpacking libgo7:arm64 (5.1~rc1-0ubuntu1.1) over (5.1~rc1-0ubuntu1) ...
Preparing to unpack .../gcc-5-base_5.1~rc1-0ubuntu1.1_arm64.deb ...
Unpacking gcc-5-base:arm64 (5.1~rc1-0ubuntu1.1) over (5.1~rc1-0ubuntu1) ...
Setting up gcc-5-base:arm64 (5.1~rc1-0ubuntu1.1) ...
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../libgcc1_1%3a5.1~rc1-0ubuntu1.1_arm64.deb ...
Unpacking libgcc1:arm64 (1:5.1~rc1-0ubuntu1.1) over (1:5.1~rc1-0ubuntu1) ...
Setting up libgcc1:arm64 (1:5.1~rc1-0ubuntu1.1) ...
Setting up libgo7:arm64 (5.1~rc1-0ubuntu1.1) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
ubuntu@cvm1:~$ sudo chroot lp1472650 docker help
Usage: docker [OPTIONS] COMMAND [arg...]

A self-sufficient runtime for linux containers.

[--trim--]

# It works now.
# I also noticed that there's a docker update in vivid-proposed.
# Let's make sure that works too:
ubuntu@cvm1:~$ sudo chroot lp1472650 apt-get dist-upgrade -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  apt apt-utils docker.io libapt-inst1.5 libapt-pkg4.12 login ntpdate passwd
8 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 9139 kB/9437 kB of archives.
After this operation, 1219 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main libapt-pkg4.12 arm64 1.0.9.7ubuntu4.2 [618 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main apt arm64 1.0.9.7ubuntu4.2 [976 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main libapt-inst1.5 arm64 1.0.9.7ubuntu4.2 [57.5 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main ntpdate arm64 1:4.2.6.p5+dfsg-3ubuntu6.1 [50.1 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main passwd arm64 1:4.1.5.1-1.1ubuntu4.1 [728 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main apt-utils arm64 1.0.9.7ubuntu4.2 [172 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/universe docker.io arm64 1.6.2~dfsg1-1ubuntu3~15.04.1 [6536 kB]
Fetched 9139 kB in 51s (176 kB/s)                                                             
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../login_1%3a4.1.5.1-1.1ubuntu4.1_arm64.deb ...
Unpacking login (1:4.1.5.1-1.1ubuntu4.1) over (1:4.1.5.1-1.1ubuntu4) ...
Setting up login (1:4.1.5.1-1.1ubuntu4.1) ...
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../libapt-pkg4.12_1.0.9.7ubuntu4.2_arm64.deb ...
Unpacking libapt-pkg4.12:arm64 (1.0.9.7ubuntu4.2) over (1.0.9.7ubuntu4) ...
Setting up libapt-pkg4.12:arm64 (1.0.9.7ubuntu4.2) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../apt_1.0.9.7ubuntu4.2_arm64.deb ...
Unpacking apt (1.0.9.7ubuntu4.2) over (1.0.9.7ubuntu4) ...
Setting up apt (1.0.9.7ubuntu4.2) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../libapt-inst1.5_1.0.9.7ubuntu4.2_arm64.deb ...
Unpacking libapt-inst1.5:arm64 (1.0.9.7ubuntu4.2) over (1.0.9.7ubuntu4) ...
Preparing to unpack .../ntpdate_1%3a4.2.6.p5+dfsg-3ubuntu6.1_arm64.deb ...
Unpacking ntpdate (1:4.2.6.p5+dfsg-3ubuntu6.1) over (1:4.2.6.p5+dfsg-3ubuntu6) ...
Preparing to unpack .../passwd_1%3a4.1.5.1-1.1ubuntu4.1_arm64.deb ...
Unpacking passwd (1:4.1.5.1-1.1ubuntu4.1) over (1:4.1.5.1-1.1ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Setting up passwd (1:4.1.5.1-1.1ubuntu4.1) ...
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../apt-utils_1.0.9.7ubuntu4.2_arm64.deb ...
Unpacking apt-utils (1.0.9.7ubuntu4.2) over (1.0.9.7ubuntu4) ...
Preparing to unpack .../docker.io_1.6.2~dfsg1-1ubuntu3~15.04.1_arm64.deb ...
 * Stopping Docker: docker                                                                     No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
dpkg: warning: subprocess old pre-removal script returned error exit status 1
dpkg: trying script from the new package instead ...
dpkg: ... it looks like that went OK
Unpacking docker.io (1.6.2~dfsg1-1ubuntu3~15.04.1) over (1.5.0~dfsg1-1ubuntu2) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (219-7ubuntu3) ...
Setting up libapt-inst1.5:arm64 (1.0.9.7ubuntu4.2) ...
Setting up ntpdate (1:4.2.6.p5+dfsg-3ubuntu6.1) ...
Setting up apt-utils (1.0.9.7ubuntu4.2) ...
Setting up docker.io (1.6.2~dfsg1-1ubuntu3~15.04.1) ...
Installing new version of config file /etc/bash_completion.d/docker ...
Installing new version of config file /etc/init.d/docker ...
Installing new version of config file /etc/init/docker.conf ...
 * Starting Docker: docker                                                              [ OK ] 
Processing triggers for libc-bin (2.21-0ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (219-7ubuntu3) ...
ubuntu@cvm1:~$ sudo chroot lp1472650 docker help
Usage: docker [OPTIONS] COMMAND [arg...]

A self-sufficient runtime for linux containers.

[--trim--]

# Finally, let's make sure things still work on kernels w/o 4 level page tables
dannf@mustang:~$ grep CONFIG_ARM64_PGTABLE_LEVELS /boot/config-$(uname -r)
dannf@mustang:~$ mkdir lp1472650
dannf@mustang:~$ sudo debootstrap --components 'main,universe' --include docker.io vivid lp1472650 http://ports.ubuntu.com/ubuntu-ports > /dev/null 2>&1
dannf@mustang:~$ sudo chroot lp1472650 apt-get update > /dev/null 2>&1
dannf@mustang:~$ sudo chroot lp1472650 apt-get install libgo7
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  gcc-5-base libgcc1
The following packages will be upgraded:
  gcc-5-base libgcc1 libgo7
3 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
Need to get 6243 kB of archives.
After this operation, 2048 B of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/universe libgo7 arm64 5.1~rc1-0ubuntu1.1 [6198 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main gcc-5-base arm64 5.1~rc1-0ubuntu1.1 [14.4 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports/ vivid-proposed/main libgcc1 arm64 1:5.1~rc1-0ubuntu1.1 [31.0 kB]
Fetched 6243 kB in 4s (1254 kB/s)  
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../libgo7_5.1~rc1-0ubuntu1.1_arm64.deb ...
Unpacking libgo7:arm64 (5.1~rc1-0ubuntu1.1) over (5.1~rc1-0ubuntu1) ...
Preparing to unpack .../gcc-5-base_5.1~rc1-0ubuntu1.1_arm64.deb ...
Unpacking gcc-5-base:arm64 (5.1~rc1-0ubuntu1.1) over (5.1~rc1-0ubuntu1) ...
Setting up gcc-5-base:arm64 (5.1~rc1-0ubuntu1.1) ...
(Reading database ... 11950 files and directories currently installed.)
Preparing to unpack .../libgcc1_1%3a5.1~rc1-0ubuntu1.1_arm64.deb ...
Unpacking libgcc1:arm64 (1:5.1~rc1-0ubuntu1.1) over (1:5.1~rc1-0ubuntu1) ...
Setting up libgcc1:arm64 (1:5.1~rc1-0ubuntu1.1) ...
Setting up libgo7:arm64 (5.1~rc1-0ubuntu1.1) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
dannf@mustang:~$ sudo mount proc lp1472650/proc -t proc
dannf@mustang:~$ sudo chroot lp1472650 docker help | head
Usage: docker [OPTIONS] COMMAND [arg...]

A self-sufficient runtime for linux containers.

Options:
  --api-enable-cors=false                     Enable CORS headers in the remote API
  -b, --bridge=""                             Attach containers to a pre-existing network bridge
                                                use 'none' to disable container networking
  --bip=""                                    Use this CIDR notation address for the network bridge's IP, not compatible with -b
  -D, --debug=false                           Enable debug mode

# Verified!

** Tags removed: verification-needed
** Tags added: verification-done

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

Title:
  [arm64] gccgo runtime crashes with CONFIG_ARM64_PGTABLE_LEVELS=4

Status in gcc:
  Unknown
Status in gcc-5 package in Ubuntu:
  Fix Released
Status in gccgo-4.9 package in Ubuntu:
  Invalid
Status in gccgo-5 package in Ubuntu:
  Invalid
Status in gccgo-4.9 source package in Trusty:
  In Progress
Status in gccgo-4.9 source package in Vivid:
  Invalid
Status in gccgo-5 source package in Vivid:
  Fix Committed
Status in gccgo-4.9 source package in Wily:
  Invalid

Bug description:
  [Impact]
  Various go-based packages crash on startup on arm64 when booted with a kernel where CONFIG_ARM64_PGTABLE_LEVELS=4. LXD, docker and juju are examples.

  Ubuntu does not ship with this config, so it is currently not
  impacted. However, we would like to enable this config to add new
  hardware support in 15.10. The 15.10 kernel will eventually be
  provided in trusty as an lts backport, at which point this will begin
  to break users.

  [Test Case]
  Boot an arm64 system with CONFIG_ARM64_PGTABLE_LEVELS=4 enabled in the kernel. Install docker.io and run "docker help". If it fails, you'll see "fatal error: runtime_lfstackpush" followed by a stack trace. If it succeeds, you'll get normal help output.

  [Regression Risk]
  The risk of regression is lessened by testing this release on existing Ubuntu kernels w/ 3 level page tables.

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1472650/+subscriptions