Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • pulseaudio pulseaudio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 893
    • Issues 893
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 47
    • Merge requests 47
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • PulseAudioPulseAudio
  • pulseaudiopulseaudio
  • Issues
  • #773
Closed
Open
Issue created Dec 08, 2019 by Marc Ranolfi@ranolfiContributor

Segmentation fault when loading module-card-restore with the 'restore_bluetooth_profile=true' parameter

When using the restore_bluetooth_profile=true parameter for module-card-restore, according to the note here, I'm receiving a segfault error:

Job for pulseaudio.service failed because a fatal signal was delivered causing the control process to dump core.
See "systemctl --user status pulseaudio.service" and "journalctl --user -xe" for details.

systemctl --user status pulseaudio shows:

Process 2400885 (pulseaudio) of user 1000 dumped core.
                                                    
Stack trace of thread 2400885:  
#0  0x00007f6b926f44aa __GI___strcmp_ssse3 (libc.so.6)  
#1  0x00007f6b9255f1e2 n/a (libpulsecore-13.0.so)  
#2  0x00007f6b9255f68f n/a (libpulsecore-13.0.so)  
#3  0x00007f6b92562523 pa_modargs_new (libpulsecore-13.0.so)  
#4  0x00007f6b8d0cbbd7 module_card_restore_LTX_pa__init (module-card-restore.so)  
#5  0x00007f6b925671a6 pa_module_load (libpulsecore-13.0.so)  
#6  0x00007f6b9257870f n/a (libpulsecore-13.0.so)  
#7  0x00007f6b92571efd pa_cli_command_execute_line_stateful (libpulsecore-13.0.so)  
#8  0x00007f6b925728a4 pa_cli_command_execute_file_stream (libpulsecore-13.0.so)  
#9  0x00007f6b92572a49 pa_cli_command_execute_file (libpulsecore-13.0.so)  
#10 0x00007f6b92572290 pa_cli_command_execute_line_stateful (libpulsecore-13.0.so)  
#11 0x00007f6b925728a4 pa_cli_command_execute_file_stream (libpulsecore-13.0.so)  
#12 0x000055d0cd3cdad3 main (pulseaudio)  
#13 0x00007f6b925df153 __libc_start_main (libc.so.6)  
#14 0x000055d0cd3ce9ee n/a (pulseaudio)

journalctl --user-unit pulseaudio -x -n 100 displays the stack traces for two additional threads (logged by 'systemd-coredump'), but they are less relevant.

Running (gdb) bt full on the core dump file with a debug enabled build of pulseaudio and glibc shows these function calls (relevant calls only):

#0  __strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:173
No locals.
#1  0x00007fc4d38d9f67 in add_key_value (ma=0x55a276e12190, key=0x55a276e12560 "restore_bluetooth_profile", value=0x55a276d91a00 "true", valid_keys=0x7fc4ce467bd0 <valid_modargs>, ignore_dupes=false)
    at ../pulseaudio/src/pulsecore/modargs.c:70
        v = 0x7fc4ce467bd8
        e = 0x0
        raw = 0x55a276e13980 ""
        __PRETTY_FUNCTION__ = "add_key_value"
        __func__ = "add_key_value"
#2  0x00007fc4d38da5ef in parse (ma=0x55a276e12190, args=0x55a276e12590 "restore_bluetooth_profile=true", valid_keys=0x7fc4ce467bd0 <valid_modargs>, ignore_dupes=false)
    at ../pulseaudio/src/pulsecore/modargs.c:251
        state = VALUE_SIMPLE
        p = 0x55a276e125ae ""
        key = 0x55a276e12590 "restore_bluetooth_profile=true"
        value = 0x55a276e125aa "true"
        key_len = 25
        value_len = 4
#3  0x00007fc4d38da6bf in pa_modargs_new (args=0x55a276e12590 "restore_bluetooth_profile=true", valid_keys=0x7fc4ce467bd0 <valid_modargs>) at ../pulseaudio/src/pulsecore/modargs.c:267
        ma = 0x55a276e12190
#4  0x00007fc4ce46476b in module_card_restore_LTX_pa__init (m=0x55a276da4bf0) at ../pulseaudio/src/modules/module-card-restore.c:624
        ma = 0x0
        u = 0x0
        fname = 0x7fff49223660 "\260\066\"I\377\177"
        restore_bluetooth_profile = false
        __PRETTY_FUNCTION__ = "module_card_restore_LTX_pa__init"
        __func__ = "module_card_restore_LTX_pa__init"
#5  0x00007fc4d38dcb1c in pa_module_load (module=0x7fff49223698, c=0x55a276d96b50, name=0x55a276d8f6b0 "module-card-restore", argument=0x55a276e105d0 "restore_bluetooth_profile=true")
    at ../pulseaudio/src/pulsecore/module.c:189
        m = 0x55a276da4bf0
        load_once = 0x7fc4ce4624fb <module_card_restore_LTX_pa__load_once>
        get_deprecated = 0x0
        mi = 0x1
        errcode = 21922
        __PRETTY_FUNCTION__ = "pa_module_load"
        __func__ = "pa_module_load"
#6  0x00007fc4d38c041d in pa_cli_command_load (c=0x55a276d96b50, t=0x55a276da4e30, buf=0x55a276d8f970, fail=0x55a276d8e025) at ../pulseaudio/src/pulsecore/cli-command.c:437
        name = 0x55a276d8f6b0 "module-card-restore"
        err = 32767
        m = 0x0
        __PRETTY_FUNCTION__ = "pa_cli_command_load"
        __func__ = "pa_cli_command_load"

I tried the following variations and the result is the same:

  • module-card-restore restore_bluetooth_profile=yes
  • module-card-restore restore_bluetooth_profile=1
  • module-card-restore restore_bluetooth_profile=false
  • module-card-restore restore_bluetooth_profile=0
  • module-card-restore restore_bluetooth_profile=no

Will submit a merge request.

Edited Dec 09, 2019 by Marc Ranolfi
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking