Public bug reported:

QEMU user-mode emulation fails to load s390x BusyBox on a ppc64el host:         
                                                                                
                                                                      
                                                                                
                                                                                
                                                                      
  /bin/busybox: error while loading shared libraries:                           
                                                                                
                                                                      
  libresolv.so.2: failed to map segment from shared object    

s390x uses 4 KiB guest pages; Ubuntu ppc64el hosts normally use                 
                                                                                
                                                                      
64 KiB pages.

The guest ELF layout satisfies its 4 KiB alignment requirements. The            
                                                                                
                                                                      
suspected defect is in QEMU's translation of valid guest mappings to            
                                                                                
                                                                      
larger host pages, rather than in the guest library layout.  

On Resolute,

The regression first appeared after updating s390x glibc from                   
                                                                                
                                                                      
2.43-2ubuntu2 to 2.43-2ubuntu2.3, without changing QEMU, BusyBox, or            
                                                                                
                                                                      
the host kernel.

[Test Plan]

1. On a ppc64el host, record getconf PAGESIZE, uname -a, and                    
                                                                                
                                                                      
   qemu-s390x --version. Confirm a 65,536-byte host page size.    

2. Install qemu-user

$ apt install -y qemu-user

3. Install busybox package for s390x

$ dpkg --add-architecture s390x
$ apt-get install --no-install-recommends -q -y busybox:s390x

4. Run s390x busybox binary with qemu-user
       
/usr/bin/qemu-s390x /bin/busybox ash -c '/usr/bin/qemu-s390x /bin/busybox ls 
-dCFl debian/*[t]*'

Should give error:

/bin/busybox: error while loading shared libraries: libresolv.so.2:
failed to map segment from shared object

** Affects: qemu (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: qemu (Ubuntu Resolute)
     Importance: Undecided
         Status: New

** Affects: qemu (Ubuntu Stonking)
     Importance: Undecided
         Status: New


** Tags: update-excuse

** Also affects: qemu (Ubuntu Resolute)
   Importance: Undecided
       Status: New

** Also affects: qemu (Ubuntu Stonking)
   Importance: Undecided
       Status: New

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

Title:
  qemu-user: s390x library loading fails on 64 KiB-page ppc64el hosts
  when a mapping fragment overlaps a file-backed page beyond EOF

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


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to