-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Polyphone crashs when exiting #112
Comments
This might actually be the same thing as musescore/MuseScore@484cd7e in MuseScore. tl;dr: just |
Yup, also noticed the segfault on exit. |
When polyphone crashes upon exit with
it also takes my libffado based jackd instance with it and I have to power cycle the audio interface to get a functioning jackd again: |
David Runge dixit:
#3 0x000062b43d86b616 __assert_fail (libc.so.6 + 0x35616)
#4 0x000062b43f70fcc2 n/a (libportaudio.so.2 + 0x15cc2)
#5 0x000062b43f70111c n/a (libportaudio.so.2 + 0x711c)
#6 0x000062b43f7021d3 Pa_Terminate (libportaudio.so.2 + 0x81d3)
Which distro is that?
This looks somewhat like http://bugs.debian.org/944509 to me.
bye,
//mirabilos
--
Gestern Nacht ist mein IRC-Netzwerk explodiert. Ich hatte nicht damit
gerechnet, darum bin ich blutverschmiert… wer konnte ahnen, daß SIE so
reagier’n… gestern Nacht ist mein IRC-Netzwerk explodiert~~~
(as of 2021-06-15 The MirOS Project temporarily reconvenes on OFTC)
|
I'm packaging for Arch Linux. We're currently on portaudio 19.7.0 |
David Runge dixit:
I'm packaging for Arch Linux. We're currently on portaudio 19.7.0
Mh. Can you check whether the patch from that bugreport is included?
We’re at 19.6.0 but it’s unclear which release, if any, has it. It’s
been posted on their mailing list but not necessarily made it into a
release.
bye,
//mirabilos
--
Gestern Nacht ist mein IRC-Netzwerk explodiert. Ich hatte nicht damit
gerechnet, darum bin ich blutverschmiert… wer konnte ahnen, daß SIE so
reagier’n… gestern Nacht ist mein IRC-Netzwerk explodiert~~~
(as of 2021-06-15 The MirOS Project temporarily reconvenes on OFTC)
diff --git a/src/hostapi/alsa/pa_linux_alsa.c b/src/hostapi/alsa/pa_linux_alsa.c
index 584cde8..643198c 100644
--- a/src/hostapi/alsa/pa_linux_alsa.c
+++ b/src/hostapi/alsa/pa_linux_alsa.c
@@ -3628,12 +3628,18 @@ error:
/** Fill in pollfd objects.
*/
-static PaError PaAlsaStreamComponent_BeginPolling( PaAlsaStreamComponent* self, struct pollfd* pfds )
+static PaError PaAlsaStreamComponent_BeginPolling( PaAlsaStreamComponent* self, struct pollfd* pfds, int *xrunOccurred )
{
PaError result = paNoError;
int ret = alsa_snd_pcm_poll_descriptors( self->pcm, pfds, self->nfds );
- (void)ret; /* Prevent unused variable warning if asserts are turned off */
- assert( ret == self->nfds );
+ if( -EPIPE == ret )
+ {
+ *xrunOccurred = 1;
+ }
+ else
+ {
+ assert( ret == self->nfds );
+ }
self->ready = 0;
@@ -3794,17 +3800,22 @@ static PaError PaAlsaStream_WaitForFrames( PaAlsaStream *self, unsigned long *fr
if( pollCapture )
{
capturePfds = self->pfds;
- PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->capture, capturePfds ) );
+ PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->capture, capturePfds, &xrun ) );
totalFds += self->capture.nfds;
}
if( pollPlayback )
{
/* self->pfds is in effect an array of fds; if necessary, index past the capture fds */
playbackPfds = self->pfds + (pollCapture ? self->capture.nfds : 0);
- PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->playback, playbackPfds ) );
+ PA_ENSURE( PaAlsaStreamComponent_BeginPolling( &self->playback, playbackPfds, &xrun ) );
totalFds += self->playback.nfds;
}
+ if ( xrun )
+ {
+ break;
+ }
+
#ifdef PTHREAD_CANCELED
if( self->callbackMode )
{
|
It looks like that particular function has been touched in PortAudio/portaudio@9ddb047#diff-3e7e9f0cc2582a6369526f96cc51af25755aaac51b02202b20f337530d802cba. |
David Runge dixit:
It looks like that particular function has been touched in
PortAudio/portaudio@9ddb047#diff-3e7e9f0cc2582a6369526f96cc51af25755aaac51b02202b20f337530d802cba.
OK, but that just renamed things. Erk. Lemme try to figure
out how to still apply the patch.
bye,
//mirabilos
--
Gestern Nacht ist mein IRC-Netzwerk explodiert. Ich hatte nicht damit
gerechnet, darum bin ich blutverschmiert… wer konnte ahnen, daß SIE so
reagier’n… gestern Nacht ist mein IRC-Netzwerk explodiert~~~
(as of 2021-06-15 The MirOS Project temporarily reconvenes on OFTC)
|
Dixi quod…
Lemme try to figure out how to still apply the patch.
This is apparently not necessary, they did the xrun checking
though in a different way.
Your best bet is to try and track this down with gdb, building
all involved libraries and Polyphone with -Og -ggdb…
Sorry,
//mirabilos
--
<ch> you introduced a merge commit │<mika> % g rebase -i HEAD^^
<mika> sorry, no idea and rebasing just fscked │<mika> Segmentation
<ch> should have cloned into a clean repo │ fault (core dumped)
<ch> if I rebase that now, it's really ugh │<mika:#grml> wuahhhhhh
|
This is normal. The first time you use poly phone and exit it, it says it crashes. After that you shouldn’t get any more errors |
Have a
bt full
:x.txt
Seems to be a double-free or something.
The text was updated successfully, but these errors were encountered: