open-power-host-os / qemu

OpenPOWER Host OS qemu repository
Other
2 stars 3 forks source link

qemu crashes with qemu_chr_fe_init() at chardev/char-fe.c:222 #13

Closed nasastry closed 6 years ago

nasastry commented 7 years ago

Steps to re-produce:

  1. Get the device-crash-test script from qemu git under scripts folder.
  2. Run the script with default qemu binary. ./device-crash-test /usr/bin/qemu-system-ppc64
  3. Check the output ...
    INFO: running test case: machine=prep binary=/usr/bin/qemu-system-ppc64 device=pc87312 accel=tcg
    WARNING: qemu received signal -6: /usr/bin/qemu-system-ppc64 -chardev socket,id=mon,path=/var/tmp/qemu-49183-monitor.sock -mon chardev=mon,mode=control -display none -vga none -S -machine prep,accel=tcg -device pc87312
    CRITICAL: failed: machine=prep binary=/usr/bin/qemu-system-ppc64 device=pc87312 accel=tcg
    CRITICAL: cmdline: /usr/bin/qemu-system-ppc64 -S -machine prep,accel=tcg -device pc87312
    CRITICAL: log: Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
    CRITICAL: log: qemu-system-ppc64: -device pc87312: Device 'parallel0' is in use
    CRITICAL: exit code: -6
Mirrored with LTC bug #159872
nasastry commented 7 years ago

other way to re-produce the same is

INFO: running test case: machine=40p binary=/usr/bin/qemu-system-ppc64 device=pc87312 accel=tcg
WARNING: qemu received signal -6: /usr/bin/qemu-system-ppc64 -chardev socket,id=mon,path=/var/tmp/qemu-49183-monitor.sock -mon chardev=mon,mode=control -display none -vga none -S -machine 40p,accel=tcg -device pc87312
CRITICAL: failed: machine=40p binary=/usr/bin/qemu-system-ppc64 device=pc87312 accel=tcg
CRITICAL: cmdline: /usr/bin/qemu-system-ppc64 -S -machine 40p,accel=tcg -device pc87312
CRITICAL: log: pulseaudio: pa_context_connect() failed
CRITICAL: log: pulseaudio: Reason: Connection refused
CRITICAL: log: pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
CRITICAL: log: ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
CRITICAL: log: ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
CRITICAL: log: ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
CRITICAL: log: ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
CRITICAL: log: ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
CRITICAL: log: ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
CRITICAL: log: ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
CRITICAL: log: ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM default
CRITICAL: log: Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
CRITICAL: log: qemu-system-ppc64: -device pc87312: Device 'parallel0' is in use
CRITICAL: exit code: -6
cdeadmin commented 7 years ago

------- Comment From danielhb@br.ibm.com 2017-10-16 14:30:32 EDT------- I wasn't able to reproduce this error. Although there are failures in this script (and I am unsure if all tests are supposed to pass - there are tests for old machines like pseries-2.1), none of them is a -6 error at chardev/char-fe.c:222 with "-device pc87312: Device 'parallel0' is in use".

One thing I've noticed is that apparently you picked up the test script from git and ran it using the binary from /usr/bin. I am not sure if this will work - there are changes made upstream in the script file that might not be compatible with the qemu-system-ppc64 version you have in the host. I advise to either get the script version that is equivalent to the qemu version you have in /usr/bin or build qemu upstream and run it with the upstream script.

Daniel

cdeadmin commented 7 years ago

------- Comment (attachment only) From nasastry@in.ibm.com 2017-10-16 23:24:31 EDT-------

cdeadmin commented 6 years ago

------- Comment From danielhb@br.ibm.com 2017-11-23 06:00:21 EDT------- This bug was sort of fixed by this upstream commit:

commit 35deebb2327227d8c5f4816476befb06f6329de6 Author: Thomas Huth <thuth@redhat.com> Date: Wed Sep 13 11:07:17 2017 +0200

hw/isa/pc87312: Mark the device with user_creatable = false

QEMU currently aborts if you try to use the device at the command
line:

$ ppc64-softmmu/qemu-system-ppc64 -S -machine prep -device pc87312
Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
qemu-system-ppc64: -device pc87312: Device 'parallel0' is in use
Aborted (core dumped)

It uses parallel_hds in its realize function, so I can not be
instantiated by the user again.

This means two things:

1 - device_crash_test doesn't test the pc87312 device any longer because it is not a device that should be instantiated directly by the user;

2 - the core dumped error was fixed and now, trying to to instantiate the pc87312 device by hand, gives:

$ ./qemu-system-ppc64 -S -machine pseries,accel=tcg -device pc87312 qemu-system-ppc64: -device pc87312: Parameter 'driver' expects pluggable device type

Also, there are patches in the ML that proposes to deprecated the PReP machine, so we shouldn't lose too much sleep about bugs related to it.

As far as this bug is concerned, the qemu crash when instantiating the pc87312 device is now fixed by the above commit that will be included in QEMU 2.11. I am not sure how to proceed in this case though. Do we backport it to Host OS? Will Host OS upgrade to QEMU 2.11 when it launches?

cdeadmin commented 6 years ago

------- Comment From nasastry@in.ibm.com 2018-02-15 03:52:49 EDT------- Tested this on qemu-system-ppc-2.11.0-1.rel.gite7153e0.el7.centos.ppc64le and not seeing the qemu crash. This bugzilla can be closed.

[root@zzfp365-lp1 scripts]# /usr/bin/qemu-system-ppc64 -S -machine 40p,accel=tcg -device pc87312 pulseaudio: pa_context_connect() failed pulseaudio: Reason: Connection refused pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2501:(snd_pcm_open_noupdate) Unknown PCM default qemu-system-ppc64: -device pc87312: Parameter 'driver' expects pluggable device type [root@zzfp365-lp1 scripts]# rpm -qf /usr/bin/qemu-system-ppc64 qemu-system-ppc-2.11.0-1.rel.gite7153e0.el7.centos.ppc64le