This bug is awaiting verification that the linux-azure/6.8.0-1012.14
kernel in -proposed solves the problem. Please test the kernel and
update this bug with the results. If the problem is solved, change the
tag 'verification-needed-noble-linux-azure' to 'verification-done-noble-
linux-azure'. If the problem still exists, change the tag 'verification-
needed-noble-linux-azure' to 'verification-failed-noble-linux-azure'.


If verification is not done by 5 working days from today, this fix will
be dropped from the source code, and this bug will be closed.


See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how
to enable and use -proposed. Thank you!


** Tags added: kernel-spammed-noble-linux-azure-v2 
verification-needed-noble-linux-azure

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-signed-azure in Ubuntu.
https://bugs.launchpad.net/bugs/2071445

Title:
  Ubuntu 24.04 for Azure unable to run 32bit binaries

Status in linux-azure package in Ubuntu:
  Triaged
Status in linux-signed-azure package in Ubuntu:
  Invalid
Status in linux-signed-azure-6.8 package in Ubuntu:
  Invalid
Status in linux-azure source package in Noble:
  Fix Committed

Bug description:
  [Impact]

  ## Issue details

  The configuration of the kernel in linux-image-6.8.0-1008-azure is 
incompatible with the way libc6:i386 is built.
  This leads to the error "The futex facility returned an unexpected error 
code." and application crash when trying to execute many 32bit applications in 
x86-64 machines.

  In very short the issue is the following:
  This kernel image is compiled with CONFIG_COMPAT_32BIT_TIME=n, unlike the 
vanilla Ubuntu 24.04 kernel images.
  But, the glibc / libc6:i386 distributed with Ubuntu24.04 is compiled needing 
the syscalls enabled with that option.
  i.e. **This kernel configuration is just incompatible with the provided 
glibc**

  In detail:
  glibc when built for 32bit, if not told which kernel is built for, will 
decide if the time_t value fits or not in a 32bit time_t, and do either the 32 
or 64bit syscall:
  
https://sourceware.org/git/?p=glibc.git;a=blob;f=nptl/futex-internal.c;h=0bb1dd51f66802521afd71b9246222ed0ea0d862;hb=refs/heads/release/2.39/master#l90
  calls with no deadline fit in the 32bit version, but as the kernel does not 
provide this syscall, glibc will just get  a ENOSYS, and glibc will error out 
aborting the program
  ```
  abort (abort.c:79)
  __libc_message_impl.cold (libc_fatal.c:132)
  __libc_fatal (libc_fatal.c:141)
  futex_fatal_error (futex-internal.h:87)
  __futex_abstimed_wait_common (futex-internal.c:119)
  ```
  after printing "The futex facility returned an unexpected error code.\n":
  
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/nptl/futex-internal.h;h=0e87e92d15ab92f5069463719a494e97d9800431;hb=refs/heads/release/2.39/master#l87

  ## Expected behavior:

  * No crashes for 32bit applications with this kernel
  * This kernel image built with CONFIG_COMPAT_32BIT_TIME=y

  ## Aditional info:

  For reference, this is the current vanilla Ubuntu 24.04 kernel for x86_64 and 
this config:
  ```
  $ uname -a
  Linux <redacted> 6.8.0-35-generic #35-Ubuntu SMP PREEMPT_DYNAMIC Mon May 20 
15:51:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
  $ grep CONFIG_COMPAT_32BIT_TIME /boot/config-$(uname -r)
  CONFIG_COMPAT_32BIT_TIME=y
  ```

  On the other hand this is the kernel config for this kernel image:
  ```
  Linux <> 6.8.0-1008-azure #8-Ubuntu SMP Fri May 17 10:44:55 UTC 2024 x86_64 
x86_64 x86_64 GNU/Linux
  # CONFIG_COMPAT_32BIT_TIME is not set
  ```

  Related github issue (the issue was found in github ubuntu 24.04 runners)
  https://github.com/actions/runner-images/issues/9977

  [Fix]

  Reenable COMPAT_32BIT_TIME

  [Test Case]

  See above.

  [Where Problems Could Occur]

  Disabling COMPAT_32BIT_TIME in Noble azure introduced a regression
  when running x86 binaries, so the fix is not expected to break
  anything (new).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-azure/+bug/2071445/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to