[Bug 2004039] Re: libunwind 1.6.2-0 assumes 4k page sizes and crashes on systems with bigger page sizes

Tobias Heider 2004039 at bugs.launchpad.net
Mon Feb 13 09:55:11 UTC 2023


I have installed libunwind=1.6.2-0ubuntu1.1 on my 16K page arm machine
and verified that the xorg crash is indeed fixed with this version. To
make sure it also does not negatively affect other hardware
configurations I also tested on my amd64 desktop and found that
everything still works without regressions after the update.

To test the functionality of the library I installed libunwind-dev=1.6.2-0ubuntu1.1 and ran the libunwind examples from https://github.com/daniel-thompson/libunwind-examples
The results look good:

$USER:~/libunwind-examples$ ./unwind-local 
0x55d35d0d644c: (cmp+0xe)
0x7f927ac3d33c: (bsearch+0x5c)
0x55d35d0d61fc: (main+0x5c)
0x7f927ac23510: (__libc_init_first+0x90)
0x7f927ac235c9: (__libc_start_main+0x89)
0x55d35d0d6245: (_start+0x25)


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

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to libunwind in Ubuntu.
https://bugs.launchpad.net/bugs/2004039

Title:
  libunwind 1.6.2-0 assumes 4k page sizes and crashes on systems with
  bigger page sizes

Status in libunwind package in Ubuntu:
  Fix Released
Status in libunwind source package in Kinetic:
  Fix Committed

Bug description:
  [ Impact ]

   * On kernels with page size > 4K Xorg (and presumably other applications
     relying on libunwind) crashes on startup. This affects anyone
     running the official arm64 generic-64k kernel or custom non 4k kernels
     (as used by e.g. apple silicon).

     The exact error I am seeing in the logs is:

  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x188) [0xaaab456ca998]
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE) unw_get_proc_info failed: no unwind info found [-10]
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE)
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE) Segmentation fault at address 0x0
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE)
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: Fatal server error:
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE) Caught signal 11 (Segmentation fault). Server aborting
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE)
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE)
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: Please consult the The X.Org Foundation support
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]:          at http://wiki.x.org
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]:  for help.
  Jan 30 11:16:20 ubuntu /usr/libexec/gdm-x-session[3199]: (EE)

    I have not found a workaround other than using wayland (which has other
    limitations). To reproduce use a kernel configured with a page size of
    16K (CONFIG_ARM64_16K_PAGES=y or CONFIG_ARM64_64K_PAGES=y or) and try
    to start "Ubuntu on Xorg" in gdm.

  [ Test Plan ]

   * Make sure Xorg doesn't crash on 4K, 16K and 64K kernels.

  [ Where problems could occur ]

   * We will have to make sure the fixed version still works with 4k
     kernels. The patch is already widely in use so the risk seems low if
     we test properly.

  [ Other Info ]

   * The lunar version ships the bug fix synced from debian

   * Debian bug: https://bugs.debian.org/cgi-
  bin/bugreport.cgi?bug=1026217

   * Upstream fix:
  https://github.com/libunwind/libunwind/commit/e85b65cec757ef589f28957d0c6c21c498a03bdf

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




More information about the Ubuntu-openstack-bugs mailing list