2017-02-25 23:38 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004647MPDDefaultpublic2017-02-17 22:23
ReporterRasi 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusnewResolutionopen 
Product Version0.20 
Target VersionFixed in Version 
Summary0004647: Audio stutters every couple of minutes
DescriptionSince 0.20 release I noticed regular stuttering pauses with mpd, which never happened with 0.19. I use remote Pulseaudio outputs, not sure if this might be related.

Anyway, I tried to bisect this issue and hope it's come out correctly, since this is kind of hard to bisect because stutterings don't happen in a predictable pattern.

Additional InformationResult of the bisect:

carnager@tauron ~/mpd > git bisect good
03151310cf8d9cc7452db92f531b346670065cfd is the first bad commit
commit 03151310cf8d9cc7452db92f531b346670065cfd
Author: Max Kellermann <max@musicpd.org>
Date: Wed Dec 14 13:09:48 2016 +0100

    player/Control: add method LockApplyBorderPause()

:040000 040000 4cd5dd12574b06ac41b1121f34028d8158ce8d35 095ccadfe8f8abd71fff816f718b5d17b74a7a1b M src


If this seems like a very unlikely source for this issue, let me know and I will try longer bisecting sessions. I tried to let it run for roughly 3-6 minutes for each tested commit.
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0010339

Rasi (reporter)

ok, actually that very last bisect step was a bad one too, as I had to realize after a while.

will do a longer bisect session soon, bug is still valid, the bisect is not.

~0010351

Rasi (reporter)

ok, letf it running for roughly 3 songs each time now. and this is the result:

carnager@tauron ~/mpd > git bisect good
7e1b53480ef9a3f0a495c7af434d2df9b2a19ca6 is the first bad commit
commit 7e1b53480ef9a3f0a495c7af434d2df9b2a19ca6
Author: Max Kellermann <max@musicpd.org>
Date: Wed Dec 14 08:41:22 2016 +0100

    output/MultipleOutputs: parallelize EnableDisable()

:040000 040000 1e9767500954ab6c0caca18e12f5d197289671af 1a953a055b8479b3e55b31a1ee8c0650b3239041 M src

~0010358

cirrus (administrator)

This commit affects code that runs only when playback is started or when outputs are enabled/disabled. During regular playback, this code does not run at all. I doubt the correctness of your bisect.

~0010360

Rasi (reporter)

Ok, I let it play for roughly 30 minutes now and I am quite positive now. This also fits your first clue about the source for this bug:

carnager@tauron ~/mpd > git bisect good
a9d72938182aae285fd32aa00236038959902fa1 is the first bad commit
commit a9d72938182aae285fd32aa00236038959902fa1
Author: Max Kellermann <max@musicpd.org>
Date: Tue Dec 13 22:39:20 2016 +0100

    output/Thread: wake up the player thread periodically while playing
    
    Without this, the pipe would run empty very often, which may result in
    an xrun if the roundtrip to the PlayerThread and back takes too long.
    By waking up the PlayerThread before the pipe runs empty, we make MPD
    much more latency tolerant, which is a major optimization.

~0010370

cirrus (administrator)

Oh, this commit was supposed to reduce stuttering. I currently cannot imagine how it can be a regression, but even if it's about the opposite, now we're looking at a commit at the correct part of MPD. So still unlikely, but not impossible.
+Notes

-Issue History
Date Modified Username Field Change
2017-02-15 01:03 Rasi New Issue
2017-02-15 02:20 Rasi Note Added: 0010339
2017-02-15 18:50 Rasi Note Added: 0010351
2017-02-16 13:22 cirrus Note Added: 0010358
2017-02-16 21:25 Rasi Note Added: 0010360
2017-02-17 22:23 cirrus Note Added: 0010370
+Issue History