Checkbox Should Not Use gconfsink for Sound

Bug #978895 reported by Ulrich Albert on 2012-04-11
30
This bug affects 3 people
Affects Status Importance Assigned to Milestone
checkbox (Ubuntu)
Medium
Daniel Manrique
Precise
Undecided
Unassigned

Bug Description

[Impact]

The following problem happens on systems that don't have gconf gstreamer elements (or they don't work because the desktop environment doesn't use gconf):

"I ran the audio test of checkbox on my dell inspiron 1525 (no headsets or speakers connected). When testing the internal speakers of my laptop no sound could be heard at maximum volume. Usually I can hear system sounds, music, ... etc."

This is fixed in development by replacing the gnome-centric (and deprecated, since gnome has moved on to using gsettings) gconfaudio{sink,source} by the more generic autoaudio{sink,source}. These are better at detecing the underlying elements and enable checkbox audio tests to be run on non-gnome desktops.

[Test case]
- Either remove gstreamer0.10-gconf package to mimic a Kubuntu system, or install Kubuntu (a virtual machine works fine).
- Ensure gstreamer gconf elements are not present; this command should fail with "no element gconfaudiosink":
gst-launch-0.10 "audiotestsrc ! audioconvert ! audioresample ! gconfaudiosink"
- Run checkbox
- Select only the audio tests.

Expected result:
- Tests produce audio

Actual result:
- Tests don't produce audio
- Some traceback may be visible in the .cache/checkbox/checkbox.log file.

[Regression potential]
autoaudio elements use an autodetect library that's part of gstreamer0.10-plugins-good, so as long as this is installed, it should work for any user. Conceivably, a very heavily modified and tweaked installation may "fool" the autoaudio element into selecting the wrong audio source, but this is highly unlikely. In extensive tests done in the certification lab, these changes have proven to be very reliable.

ProblemType: BugDistroRelease: Ubuntu 12.04
Package: alsa-base 1.0.25+dfsg-0ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-22.35-generic 3.2.14
Uname: Linux 3.2.0-22-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 2.0-0ubuntu5
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: ulrich 2078 F.... pulseaudio
CheckboxCommand: audio_settings store > $CHECKBOX_SHARE/pulseaudio_settings; audio_settings set --device=pci --volume=50; gst_pipeline_test -t 2 'audiotestsrc wave=sine freq=512 ! audioconvert ! audioresample ! gconfaudiosink'; audio_settings restore --file=$CHECKBOX_SHARE/pulseaudio_settings
CheckboxTest: audio/playback_auto
Date: Wed Apr 11 14:57:47 2012
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Beta amd64 (20120301)
PackageArchitecture: all
ProcEnviron:
 SHELL=/bin/bash
 PATH=(custom, no user)
 LANG=de_DE.UTF-8SourcePackage: alsa-driver
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/27/2009
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A17
dmi.board.name: 0U990C
dmi.board.vendor: Dell Inc.
dmi.chassis.type: 8
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA17:bd10/27/2009:svnDellInc.:pnInspiron1525:pvr:rvnDellInc.:rn0U990C:rvr:cvnDellInc.:ct8:cvr:
dmi.product.name: Inspiron 1525
dmi.sys.vendor: Dell Inc.

Related branches

Ulrich Albert (ulrich-albert) wrote :

checkbox should not use gconfsink (probably should use autoaudiosink instead).

affects: alsa-driver (Ubuntu) → checkbox (Ubuntu)
Changed in checkbox (Ubuntu):
status: New → Confirmed
summary: - audio test of checkbox generated no sound
+ Checkbox Should Not Use gconfsink for Sound
Daniel Manrique (roadmr) wrote :

Dave,

We can certainly push a quick fix for this, are you certain that using autoaudiosink will fix this? You say we shouldn't use gconfsink, could you elaborate on why using autoaudiosink is recommended instead?

Thanks for your help triaging and diagnosing this bug!

Possible patch

Sorry Daniel, didn't see your comment. Kubuntu doesn't even hace gconf stuff installed by default, so either gstreamer0.10-gconf should be a required (not recommended) dependency or using autoaudiosink avoids installing gconf packages on Kubuntu (may be the same case for Lubuntu).

I'm not a gstreamer expert, but I'm not sure what advantage gconfsink provides over autoaudiosink.

Daniel Manrique (roadmr) wrote :

Hi Dave,

Thanks for the patch and the explanation.

We tested that the autoaudiosink works well on Ubuntu Precise and if you say it also works on KDE with no additional dependencies that's even better.

As for the patch, I see you're only updating scripts/audio_test. Some tests in jobs/audio.txt.in also use the gconfaudiosink so they need to be updated as well. You could add those changes to your patch if desired, or we can do it on our end, they're rather simple so it's fine either way.

Anyway the hard work of triaging and suggesting a solution is already done (by you), we really appreciate it. Thanks!

Changed in checkbox (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → Medium

The attachment "gstpatch" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch

Hmm, I guess the real issue is that I changed Synaptic to not grab Recommended packages by default. I guess this a duplicate of https://bugs.launchpad.net/ubuntu/+source/checkbox/+bug/886137
Even with the change to autoaudiosink, sound still fails because python-gst0.10 is Recommended. I'm not sure why it's set to Recommended (maybe because it's only essential for audio tests?).

I know that python-dateutil should definitely be a "Depend" because it prevents checkbox from even starting: https://bugs.launchpad.net/ubuntu/+source/checkbox/+bug/979011

Anyway, the new patch is attached in case checkbox devs decide to use it.

Daniel Manrique (roadmr) on 2012-08-20
Changed in checkbox (Ubuntu):
status: Triaged → In Progress
assignee: nobody → Daniel Manrique (roadmr)
Daniel Manrique (roadmr) on 2012-08-31
Changed in checkbox (Ubuntu):
status: In Progress → Fix Released
Daniel Manrique (roadmr) on 2012-10-01
description: updated

Hello Ulrich, or anyone else affected,

Accepted checkbox into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/checkbox/0.13.8 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in checkbox (Ubuntu Precise):
status: New → Fix Committed
tags: added: verification-needed
Daniel Manrique (roadmr) wrote :

Trying this in a VM with Precise (12.04.1). First I removed gstreamer0.10-gconf. This also removed a couple other packages:

The following packages will be REMOVED:
  gnome-media gstreamer0.10-gconf ubuntu-desktop

The pretest gives the expected result:
$ gst-launch-0.10 "audiotestsrc ! audioconvert ! audioresample ! gconfaudiosink"
WARNING: erroneous pipeline: no element "gconfaudiosink"

With checkbox 0.13.7:

# dpkg --list checkbox*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii checkbox 0.13.7 System testing application
un checkbox-gtk <none> (no description available)
ii checkbox-qt 0.13.7 QT4 interface for checkbox

I launched checkbox-qt, deselected all tests, selected only the audio category with 4 tests, and selected "start testing".

audio/alsa_record_playback_external: I was able to hear my own recording (I think this test is not affected).
audio/alsa_record_playback_usb: I was able to hear my own recording (I think this test is not affected). I "cheated" because I didn't connect a USB device, but for the purposes of this validation it's OK.
audio/alsa_record_playback_internal: I was able to hear my own recording (I think this test is not affected).
audio/playback_auto : This didn't output any audio and popped up an apport warning about gst_pipeline_test having failed. Traceback as follows:
 Traceback (most recent call last):
   File "/usr/share/checkbox/scripts/gst_pipeline_test", line 38, in <module>
     sys.exit(main(sys.argv[1:]))
   File "/usr/share/checkbox/scripts/gst_pipeline_test", line 27, in main
     element = gst.parse_launch(pipeline)
 GError: no element "gconfaudiosink"

OK, then I upgraded to checkbox 0.13.8 from proposed:

# dpkg --list checkbox*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii checkbox 0.13.8 System testing application
un checkbox-gtk <none> (no description available)
ii checkbox-qt 0.13.8 QT4 interface for checkbox

I relaunched checkbox and selected only audio/playback_auto. This time the test produced some audio (a nasty beep) and I didn't get any apport reports.

I'll set this to verification-done.

tags: added: verification-done
removed: verification-needed
Steve Langasek (vorlon) wrote :

Hello Ulrich, or anyone else affected,

Accepted checkbox into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/checkbox/0.13.9 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: removed: verification-done
tags: added: verification-needed
Daniel Manrique (roadmr) wrote :

Hi, I'm testing checkbox 0.13.9. I'm following the same procedure, so:

$ sudo apt-get remove gstreamer0.10-gconf
The following packages will be REMOVED:
  gnome-media gstreamer0.10-gconf ubuntu-desktop

The pretest gives the expected result:
$ gst-launch-0.10 "audiotestsrc ! audioconvert ! audioresample ! gconfaudiosink"
WARNING: erroneous pipeline: no element "gconfaudiosink"

With checkbox 0.13.7:

# dpkg --list checkbox*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii checkbox 0.13.7 System testing application
un checkbox-cli <none> (no description available)
un checkbox-gtk <none> (no description available)
ii checkbox-qt 0.13.7 QT4 interface for checkbox

I launched checkbox-qt, deselected all tests, selected only 2 tests from the audio category, and selected "start testing".

audio/alsa_record_playback_internal: I was able to hear my own recording (I think this test is not affected).
audio/playback_auto : This didn't output any audio and popped up an apport warning about gst_pipeline_test having failed. Traceback as follows:
 Traceback (most recent call last):
   File "/usr/share/checkbox/scripts/gst_pipeline_test", line 38, in <module>
     sys.exit(main(sys.argv[1:]))
   File "/usr/share/checkbox/scripts/gst_pipeline_test", line 27, in main
     element = gst.parse_launch(pipeline)
 GError: no element "gconfaudiosink"

This I found in /var/crash/_usr_share_checkbox_scripts_gst_pipeline_test.1000.crash, not in the checkbox log (odd, right?).

OK, then I upgraded to checkbox 0.13.9 from proposed:

# dpkg --list checkbox*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii checkbox 0.13.9 System testing application
un checkbox-cli <none> (no description available)
un checkbox-gtk <none> (no description available)
ii checkbox-qt 0.13.9 QT4 interface for checkbox

I relaunched checkbox and selected only audio/playback_auto. This time the test produced some audio (a nasty beep) and I didn't get any apport reports.

I'll set this to verification-done.

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package checkbox - 0.13.9

---------------
checkbox (0.13.9) precise-proposed; urgency=low

  * Updated fix for bug #1026614 which was missing some code.
  * Removed bad fix for bug 990133.

checkbox (0.13.8) precise-proposed; urgency=low

  * New upstream release (LP: #1061198)

  [Marc Tardif]
  * checkbox/dispatcher.py: Updated license to GPLv3 to be consistent with
    rest of Checkbox files (LP: #1049881)

  [Sylvain Pineau]
  * qt/frontend/qtfront.ui: Fixed the test purpose widget size to allow two
    lines of description (LP: #1032255)
  * scripts/camera_test, jobs/camera.txt.in: Added a 10s timeout to the camera
    still test (LP: #990133)

  [Daniel Manrique]
  * jobs/audio.txt.in: replaced gconfaudiosink by autoaudiosink (LP: #978895)
  * Instruct Chromium browser to accept file:// URLs so it can correctly
    open the checkbox submission.xml report (LP: #1026614)
  * scripts/network_check: InvalidURL exception is caught and handled more
    cleanly (LP: #751701)
  * Set the correct user (root) for fwts-wakealarm test (LP: #1004102)
  * Set correct user (root) for usb/storage-preinserted, so it works correctly
    on servers (LP: #1004131)

  [Nathan Williams]
  * scripts/network_check: Fixed exception handling in the absence of zenity
    (LP: #988260)
 -- Daniel Manrique <email address hidden> Tue, 20 Nov 2012 16:31:02 -0500

Changed in checkbox (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers