FS#71175 - [alsa-utils] Segfault on alsactl restore

Attached to Project: Arch Linux
Opened by Rudi F. (Valkum) - Tuesday, 08 June 2021, 10:13 GMT
Last edited by David Runge (dvzrv) - Wednesday, 09 June 2021, 08:34 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To David Runge (dvzrv)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
alsactl restore is segfaulting with version 1.2.5-2
This leads to failing zfs-import services as alsactl seems to be invoked through udev rules?

Additional info:
There is an upstream issue https://github.com/alsa-project/alsa-utils/issues/93 which is fixed in two commits
https://github.com/alsa-project/alsa-utils/commit/f138117a457944ca73776bd752693d64ec207e55
https://github.com/alsa-project/alsa-utils/commit/6018c2014ac24877b2aa58c2c57f2fd901e6c7b1


```
❯ gdb alsactl
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from alsactl...
(No debugging symbols found in alsactl)
(gdb) run restore
Starting program: /usr/bin/alsactl restore
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
/usr/bin/alsactl: state_lock:129: file /var/lib/alsa/asound.state lock error: Permission denied
/usr/bin/alsactl: load_state:1635: Cannot open /var/lib/alsa/asound.state for reading: Permission denied
alsa-lib main.c:1402:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
Found hardware: "USB-Audio" "USB Mixer" "USB17ef:a396" "" ""
Hardware is initialized using a generic method
alsa-lib ucm_subs.c:252:(rval_lookup_main) Lookups are supported in v4+ syntax
alsa-lib parser.c:242:(error_node) UCM is not supported for this HDA model (HD-Audio Generic at 0xfd3c8000 irq 97)
alsa-lib main.c:1402:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -6
Found hardware: "HDA-Intel" "ATI R6xx HDMI" "HDA:1002aa01,00aa0100,00100700" "0x17aa" "0x507e"
Hardware is initialized using a generic method
alsa-lib ucm_subs.c:252:(rval_lookup_main) Lookups are supported in v4+ syntax
alsa-lib parser.c:242:(error_node) UCM is not supported for this HDA model (HD-Audio Generic at 0xfd3c0000 irq 98)
alsa-lib main.c:1402:(snd_use_case_mgr_open) error: failed to import hw:2 use case configuration -6
Found hardware: "HDA-Intel" "Realtek ALC257" "HDA:10ec0257,17aa507e,00100001" "0x17aa" "0x507e"
Hardware is initialized using a generic method

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ef8557 in snd_config_delete () from /usr/lib/libasound.so.2
(gdb) bt
#0 0x00007ffff7ef8557 in snd_config_delete () from /usr/lib/libasound.so.2
#1 0x0000555555560038 in ?? ()
#2 0x000055555555a706 in ?? ()
#3 0x00007ffff7d01b25 in __libc_start_main () from /usr/lib/libc.so.6
#4 0x000055555555aa5e in ?? ()
(gdb)
```


Steps to reproduce:
Run alsactl restore
This task depends upon

Closed by  David Runge (dvzrv)
Wednesday, 09 June 2021, 08:34 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed with alsa-utils 1.2.5-3
Comment by Rudi F. (Valkum) - Tuesday, 08 June 2021, 11:30 GMT
As freswa said to me in private that zfs is unsupported: This only showcased for me because of the failing zfs-import service. I am not sure what other problems this is causing.
The actual service that is failling is: systemd-udev-settle.service

journalctl output:
```
Jun 08 10:32:34 l14 audit[2292]: ANOM_ABEND auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2292 comm="alsactl" exe="/usr/bin/alsactl" sig=11 res=1
Jun 08 10:32:34 l14 kernel: alsactl[2292]: segfault at c ip 00007f85bfd65557 sp 00007ffc3434b230 error 4 in libasound.so.2.0.0[7f85bfd62000+83000]
Jun 08 10:32:34 l14 kernel: Code: 0f 1f 00 5b b8 ef ff ff ff 5d 41 5c 41 5d 41 5e c3 b8 ea ff ff ff eb df 66 66 2e 0f 1f 84 00 00 00 00 00 41 54 55 48 89 fd 53 <8b> 47 0c 85 c0 7f 72 8b 47 08 83 f8 03 74 7a 3d 00 04 00 00 75 33
Jun 08 10:32:34 l14 kernel: audit: type=1701 audit(1623141154.683:32): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2292 comm="alsactl" exe="/usr/bin/alsactl" sig=11 res=1
Jun 08 10:32:34 l14 audit[2428]: ANOM_ABEND auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2428 comm="alsactl" exe="/usr/bin/alsactl" sig=11 res=1
Jun 08 10:32:34 l14 kernel: alsactl[2428]: segfault at c ip 00007fc28963b557 sp 00007ffc45cc5260 error 4 in libasound.so.2.0.0[7fc289638000+83000]
Jun 08 10:32:34 l14 kernel: Code: 0f 1f 00 5b b8 ef ff ff ff 5d 41 5c 41 5d 41 5e c3 b8 ea ff ff ff eb df 66 66 2e 0f 1f 84 00 00 00 00 00 41 54 55 48 89 fd 53 <8b> 47 0c 85 c0 7f 72 8b 47 08 83 f8 03 74 7a 3d 00 04 00 00 75 33
Jun 08 10:32:34 l14 kernel: audit: type=1701 audit(1623141154.926:33): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2428 comm="alsactl" exe="/usr/bin/alsactl" sig=11 res=1
Jun 08 10:33:25 l14 systemd-udevd[1895]: controlC1: Spawned process '/usr/bin/alsactl restore 1' [2289] is taking longer than 59s to complete
Jun 08 10:33:25 l14 systemd-udevd[1910]: controlC0: Spawned process '/usr/bin/alsactl restore 0' [2292] is taking longer than 59s to complete
Jun 08 10:33:25 l14 systemd-udevd[1866]: controlC1: Worker [1895] processing SEQNUM=3733 is taking a long time
Jun 08 10:33:25 l14 systemd-udevd[1866]: controlC0: Worker [1910] processing SEQNUM=3712 is taking a long time
Jun 08 10:33:26 l14 systemd-udevd[1878]: controlC2: Spawned process '/usr/bin/alsactl restore 2' [2428] is taking longer than 59s to complete
Jun 08 10:33:26 l14 systemd-udevd[1866]: controlC2: Worker [1878] processing SEQNUM=3756 is taking a long time
Jun 08 10:34:24 l14 systemd[1]: systemd-udev-settle.service: Main process exited, code=exited, status=1/FAILURE
Jun 08 10:34:24 l14 systemd[1]: systemd-udev-settle.service: Failed with result 'exit-code'.
Jun 08 10:34:24 l14 systemd[1]: Failed to start Wait for udev To Complete Device Initialization.
Jun 08 10:34:24 l14 systemd[1]: Dependency failed for Import ZFS pools by device scanning.
Jun 08 10:34:24 l14 systemd[1]: zfs-import-scan.service: Job zfs-import-scan.service/start failed with result 'dependency'.
Jun 08 10:34:24 l14 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-udev-settle comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
Jun 08 10:34:24 l14 systemd[1]: systemd-udev-settle.service: Consumed 3.338s CPU time.```
Comment by David Runge (dvzrv) - Tuesday, 08 June 2021, 18:03 GMT
@Valkum: Thanks for the report.

Please test whether alsa-utils 1.2.5-3 fixes your issue.
Comment by Rudi F. (Valkum) - Wednesday, 09 June 2021, 08:22 GMT
Segfault is gone, thank you very much.

Loading...