On Wed, 3 Dec 2025 11:26:15 +0000
Daniel P. Berrangé <[email protected]> wrote:

> On Wed, Dec 03, 2025 at 11:24:07AM +0100, Dan Horák wrote:
> > On Tue, 2 Dec 2025 09:48:50 -0500
> > Stephen Gallagher <[email protected]> wrote:
> > 
> > > On Tue, Dec 2, 2025 at 9:25 AM Dan Horák <[email protected]> wrote:
> > 
> > AFAIK the cross-arch emulation uses user-mode qemu that does translate
> > syscalls between the "guest" and the "host" systems, which means
> > endianess changes, translating parameters, etc. needs to happen. My
> > theory is that something changed in F-43+ and qemu needs to adapt to
> > that. Unless it's something like unknown $TERM or such.
> > 
> > What is needed except having qemu-user-static-s390x installed to
> > successfully run the podman command? It just hangs on any of my
> > non-s390x systems (x86_64, aarch64, ppc64le).
> 
> FYI, you can reproduce it with qemu-s390x alone without podman involved,
> which makes things a bit easier to debug.
> 
> First start a podman container
> 
>    podman run --arch s390x --rm -it fedora:43-s390x
> 
> In another shell export the rootfs
> 
>    podman export [container name] >  f43.tar
> 
> and then extract it and run under qemu
> 
>    mkdir f43
>    cd f43
>    tar xf ../f43.tar
>    qemu-s390x -L `pwd` ./usr/bin/bash
> 
> 
> This lets you pass the '-strace' arg to qemu-s390x.

thanks, Daniel
 
> Normally bash in F42 runs with a prompt and we see
> 
>   61385 ioctl(0,TCGETS,0x00007f34260697e8) = 0 ({c_iflag = ICRNL|IXON,c_oflag 
> = OPOST|ONLCR,c_cflag = B38400,CS8,CREAD,c_lflag = 
> ISIG|ICANON|ECHO|ECHOE|ECHOK|ECHOCTL|ECHOKE|IEXTEN,c_cc = "^C^\^?
> ^U^D",c_line = '^@'})
>   61385 ioctl(2,TCGETS,0x00007f34260697e8) = 0 ({c_iflag = ICRNL|IXON,c_oflag 
> = OPOST|ONLCR,c_cflag = B38400,CS8,CREAD,c_lflag = 
> ISIG|ICANON|ECHO|ECHOE|ECHOK|ECHOCTL|ECHOKE|IEXTEN,c_cc = "^C^\^?
> ^U^D",c_line = '^@'})
> 
> When I redirect stderr to a file/pipe the latter ioctl
> obviously fails:
> 
>   60841 ioctl(0,TCGETS,0x00007f19561fe7e8) = 0 ({c_iflag = ICRNL|IXON,c_oflag 
> = OPOST|ONLCR,c_cflag = B38400,CS8,CREAD,c_lflag = 
> ISIG|ICANON|ECHO|ECHOE|ECHOK|ECHOCTL|ECHOKE|IEXTEN,c_cc = "^C^\^?
>   60841 ioctl(2,TCGETS,0x00007f19561fe7e8) = -1 errno=25 (Inappropriate ioctl 
> for device)
> 
> 
> Now looking at F43 bash I no longer see QEMU reporting TCGETS
> ioctl, instead I see
> 
>   61809 ioctl(0,0x802c542a,0xd73fe8f4) = -1 errno=25 (Inappropriate ioctl for 
> device)
> 
> that suggests to me that bash is probably using a different (new?)
> ioctl that QEMU does not have emulation for currently.

which points to the termios changes in glibc 2.42, which explains why
F-42 is OK and F-43+ is not, I believe.

https://sourceware.org/bugzilla/show_bug.cgi?id=33340 is tracking
possible regressions


                Dan
-- 
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to