-
Notifications
You must be signed in to change notification settings - Fork 377
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
Jack2 on Windows 10 crashes when stopped #648
Comments
There was a problem in earlier versions of QJackCtl that it always reported
that jack had "crashed" after jack had stopped running (jack didn't
actually crash). That problem should have been fixed though, but maybe not.
Does it happen if you use the dummy driver?
…On Sat, Oct 17, 2020 at 10:05 AM ReinholdH ***@***.***> wrote:
With Jack2 1.9.16 x64 (jack2-win64-v1.9.16.exe)
When stopping Jack2 a crash message appreas in the message box. See
message attached.
Crash_message_when_Jack_is_stopped.txt
<https://github.com/jackaudio/jack2/files/5395175/Crash_message_when_Jack_is_stopped.txt>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#648>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIX3JYP3USPHETVJSJTCBLSLFF6JANCNFSM4SUGKA7A>
.
|
It happens with the default setting. |
Can you try the dummy driver? It's to check if it's the portaudio
driver that crashes. I don't have a windows computer in front of me
now so I can't check myself.
…On Sat, Oct 17, 2020 at 11:00 AM ReinholdH ***@***.***> wrote:
It happens with the default setting.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
(I meant portaudio interface, not portaudio driver. portaudio itself
has probably not crashed, but the interface can be more sketchy,
depending on your soundcard driver and so forth.)
On Sat, Oct 17, 2020 at 11:04 AM Kjetil Matheussen
<[email protected]> wrote:
…
Can you try the dummy driver? It's to check if it's the portaudio
driver that crashes. I don't have a windows computer in front of me
now so I can't check myself.
On Sat, Oct 17, 2020 at 11:00 AM ReinholdH ***@***.***> wrote:
>
> It happens with the default setting.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub, or unsubscribe.
|
Thx, but not familiar how to setup a dummy interface on Windows that is visible in QjackCtl. Any help is appreciated. |
Hi Reinhold,
You select the "dummy" driver under "Setup". But I've tried now, and
qjackctl reports that it crashes even when using the dummy driver too. I'm
pretty certain this is a bug in qjackctl, one you can safely ignore, and
not a bug in jack. I fixed this bug a long time ago, but it seems to have
reappeared.
…On Mon, Oct 19, 2020 at 7:09 PM ReinholdH ***@***.***> wrote:
Thx, but not familiar how to setup a dummy interface on Windows that is
visible in QjackCtl. Any help is appreciated.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#648 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIX3J4KLPJZNNNBC46YVSDSLRXDDANCNFSM4SUGKA7A>
.
|
Can you try this older version of qjackctl and see if it reports that jack
is crashing? (I'm not able to make it run under wine, but it should work
under windows)
http://users.notam02.no/~kjetism/qjackctl.exe
On Tue, Oct 20, 2020 at 9:21 AM Kjetil Matheussen <[email protected]>
wrote:
… Hi Reinhold,
You select the "dummy" driver under "Setup". But I've tried now, and
qjackctl reports that it crashes even when using the dummy driver too. I'm
pretty certain this is a bug in qjackctl, one you can safely ignore, and
not a bug in jack. I fixed this bug a long time ago, but it seems to have
reappeared.
On Mon, Oct 19, 2020 at 7:09 PM ReinholdH ***@***.***>
wrote:
> Thx, but not familiar how to setup a dummy interface on Windows that is
> visible in QjackCtl. Any help is appreciated.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#648 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAIX3J4KLPJZNNNBC46YVSDSLRXDDANCNFSM4SUGKA7A>
> .
>
|
Also, can you check the version of qjackctl you are running? Perhaps
you are running an older version of qjackctl for some reason, and that
we always see the crash message under wine for some reason (causing me
to see the same error message).
@rncbc perhaps we should never display the "Jack crashed" message in
qjackctl after jack has exited anyway? I think it's usually only
caused by QProcess misreporting that something went wrong.
On Tue, Oct 20, 2020 at 9:30 AM Kjetil Matheussen
<[email protected]> wrote:
…
Can you try this older version of qjackctl and see if it reports that jack is crashing? (I'm not able to make it run under wine, but it should work under windows)
http://users.notam02.no/~kjetism/qjackctl.exe
On Tue, Oct 20, 2020 at 9:21 AM Kjetil Matheussen ***@***.***> wrote:
>
> Hi Reinhold,
>
> You select the "dummy" driver under "Setup". But I've tried now, and qjackctl reports that it crashes even when using the dummy driver too. I'm pretty certain this is a bug in qjackctl, one you can safely ignore, and not a bug in jack. I fixed this bug a long time ago, but it seems to have reappeared.
>
>
> On Mon, Oct 19, 2020 at 7:09 PM ReinholdH ***@***.***> wrote:
>>
>> Thx, but not familiar how to setup a dummy interface on Windows that is visible in QjackCtl. Any help is appreciated.
>>
>> —
>> You are receiving this because you commented.
>> Reply to this email directly, view it on GitHub, or unsubscribe.
|
Thx. I tried your older version of qjackctl and it does not crash when stopped. The old one is fine. When stopping Jack the message is displayed |
Thank you, I'll investigate what happened. Perhaps that patch was never
merged upstream. Also, just want to point out again that nothing crashes
here, it's just the message that is wrong, most likely.
…On Tue, Oct 20, 2020 at 11:07 AM ReinholdH ***@***.***> wrote:
Thx. I tried your older version of qjackctl and it does not crash when
stopped. The old one is fine.
I use the official qjackctl which is included in jack2-win64-v1.9.16.exe.
The qjackctl version is 0.6.3 using JACK 1.9.16.
When stopping Jack the message is displayed
JACK was stopped
Jack has crashed
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#648 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIX3J7H3ATXCNX5MRLGX5LSLVHNJANCNFSM4SUGKA7A>
.
|
@rnbc The offending commit seems to be this one:
66e63639d71b6ba56e03e734e003cb85c56a78a5
More specifically it undid this patch:
+ #if defined(WIN32)
+ if (!m_bJackStopped)
+#endif
appendMessagesColor(tr("JACK has crashed."), "#cc3366");
On Tue, Oct 20, 2020 at 11:12 AM Kjetil Matheussen <[email protected]>
wrote:
… Thank you, I'll investigate what happened. Perhaps that patch was never
merged upstream. Also, just want to point out again that nothing crashes
here, it's just the message that is wrong, most likely.
On Tue, Oct 20, 2020 at 11:07 AM ReinholdH ***@***.***>
wrote:
> Thx. I tried your older version of qjackctl and it does not crash when
> stopped. The old one is fine.
> I use the official qjackctl which is included in jack2-win64-v1.9.16.exe.
> The qjackctl version is 0.6.3 using JACK 1.9.16.
>
> When stopping Jack the message is displayed
> JACK was stopped
> Jack has crashed
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#648 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAIX3J7H3ATXCNX5MRLGX5LSLVHNJANCNFSM4SUGKA7A>
> .
>
|
Well, I guess it's possible that jack crashes, but the user shouldn't
have to know about this. It doesn't matter that it crashes at exit. It
just looks unprofessional. In my opinion, the error message should be
removed first, and then we might investigate why qprocess reports that
it crashed.
On Tue, Oct 20, 2020 at 11:23 AM Kjetil Matheussen
<[email protected]> wrote:
…
@rnbc The offending commit seems to be this one:
66e63639d71b6ba56e03e734e003cb85c56a78a5
More specifically it undid this patch:
+ #if defined(WIN32)
+ if (!m_bJackStopped)
+#endif
appendMessagesColor(tr("JACK has crashed."), "#cc3366");
On Tue, Oct 20, 2020 at 11:12 AM Kjetil Matheussen ***@***.***> wrote:
>
> Thank you, I'll investigate what happened. Perhaps that patch was never merged upstream. Also, just want to point out again that nothing crashes here, it's just the message that is wrong, most likely.
>
>
> On Tue, Oct 20, 2020 at 11:07 AM ReinholdH ***@***.***> wrote:
>>
>> Thx. I tried your older version of qjackctl and it does not crash when stopped. The old one is fine.
>> I use the official qjackctl which is included in jack2-win64-v1.9.16.exe. The qjackctl version is 0.6.3 using JACK 1.9.16.
>>
>> When stopping Jack the message is displayed
>> JACK was stopped
>> Jack has crashed
>>
>> —
>> You are receiving this because you commented.
>> Reply to this email directly, view it on GitHub, or unsubscribe.
|
No, this is a qjackctl thing only. qjackctl kill()s jackd on windows,
and that's probably why qprocess reports that it crashes:
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32)
// Try harder...
m_pJack->kill();
#else
// Try softly...
m_pJack->terminate();
#endif
So this is probably a good enough solution:
+ #if defined(WIN32)
+ if (!m_bJackStopped)
+#endif
appendMessagesColor(tr("JACK has crashed."), "#cc3366");
On Tue, Oct 20, 2020 at 11:45 AM Kjetil Matheussen
<[email protected]> wrote:
…
Well, I guess it's possible that jack crashes, but the user shouldn't
have to know about this. It doesn't matter that it crashes at exit. It
just looks unprofessional. In my opinion, the error message should be
removed first, and then we might investigate why qprocess reports that
it crashed.
On Tue, Oct 20, 2020 at 11:23 AM Kjetil Matheussen
***@***.***> wrote:
>
> @rnbc The offending commit seems to be this one:
> 66e63639d71b6ba56e03e734e003cb85c56a78a5
>
> More specifically it undid this patch:
>
> + #if defined(WIN32)
> + if (!m_bJackStopped)
> +#endif
> appendMessagesColor(tr("JACK has crashed."), "#cc3366");
>
>
>
>
> On Tue, Oct 20, 2020 at 11:12 AM Kjetil Matheussen ***@***.***> wrote:
>>
>> Thank you, I'll investigate what happened. Perhaps that patch was never merged upstream. Also, just want to point out again that nothing crashes here, it's just the message that is wrong, most likely.
>>
>>
>> On Tue, Oct 20, 2020 at 11:07 AM ReinholdH ***@***.***> wrote:
>>>
>>> Thx. I tried your older version of qjackctl and it does not crash when stopped. The old one is fine.
>>> I use the official qjackctl which is included in jack2-win64-v1.9.16.exe. The qjackctl version is 0.6.3 using JACK 1.9.16.
>>>
>>> When stopping Jack the message is displayed
>>> JACK was stopped
>>> Jack has crashed
>>>
>>> —
>>> You are receiving this because you commented.
>>> Reply to this email directly, view it on GitHub, or unsubscribe.
|
And replace WIN32 with _WIN32:
+#if defined(_WIN32)
+ if (!m_bJackStopped)
+#endif
appendMessagesColor(tr("JACK has crashed."), "#cc3366");
On Tue, Oct 20, 2020 at 11:51 AM Kjetil Matheussen
<[email protected]> wrote:
…
No, this is a qjackctl thing only. qjackctl kill()s jackd on windows,
and that's probably why qprocess reports that it crashes:
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32)
// Try harder...
m_pJack->kill();
#else
// Try softly...
m_pJack->terminate();
#endif
So this is probably a good enough solution:
+ #if defined(WIN32)
+ if (!m_bJackStopped)
+#endif
appendMessagesColor(tr("JACK has crashed."), "#cc3366");
On Tue, Oct 20, 2020 at 11:45 AM Kjetil Matheussen
***@***.***> wrote:
>
> Well, I guess it's possible that jack crashes, but the user shouldn't
> have to know about this. It doesn't matter that it crashes at exit. It
> just looks unprofessional. In my opinion, the error message should be
> removed first, and then we might investigate why qprocess reports that
> it crashed.
>
> On Tue, Oct 20, 2020 at 11:23 AM Kjetil Matheussen
> ***@***.***> wrote:
> >
> > @rnbc The offending commit seems to be this one:
> > 66e63639d71b6ba56e03e734e003cb85c56a78a5
> >
> > More specifically it undid this patch:
> >
> > + #if defined(WIN32)
> > + if (!m_bJackStopped)
> > +#endif
> > appendMessagesColor(tr("JACK has crashed."), "#cc3366");
> >
> >
> >
> >
> > On Tue, Oct 20, 2020 at 11:12 AM Kjetil Matheussen ***@***.***> wrote:
> >>
> >> Thank you, I'll investigate what happened. Perhaps that patch was never merged upstream. Also, just want to point out again that nothing crashes here, it's just the message that is wrong, most likely.
> >>
> >>
> >> On Tue, Oct 20, 2020 at 11:07 AM ReinholdH ***@***.***> wrote:
> >>>
> >>> Thx. I tried your older version of qjackctl and it does not crash when stopped. The old one is fine.
> >>> I use the official qjackctl which is included in jack2-win64-v1.9.16.exe. The qjackctl version is 0.6.3 using JACK 1.9.16.
> >>>
> >>> When stopping Jack the message is displayed
> >>> JACK was stopped
> >>> Jack has crashed
> >>>
> >>> —
> >>> You are receiving this because you commented.
> >>> Reply to this email directly, view it on GitHub, or unsubscribe.
|
I removed that specific win32 bit because the logic that qjackctl had for a variable that is set as true when user clicks to stop jack is no longer there. Cant we just make qjackctl call a proper terminate on the process first, before attempting to kill it? |
I guess kill() is called because jackd doesn't listen to WM_CLOSE messages.
From the QProcesss:terminal documentation:
"On Windows, terminate() posts a WM_CLOSE message to all top-level windows
of the process and then to the main thread of the process itself. On Unix
and macOS the SIGTERM signal is sent.
Console applications on Windows that do not run an event loop, or whose
event loop does not handle the WM_CLOSE message, can only be terminated by
calling kill <https://doc.qt.io/qt-5/qprocess.html#kill>().
"
…On Tue, Oct 20, 2020 at 12:03 PM Filipe Coelho ***@***.***> wrote:
I removed that specific win32 bit because the logic that qjackctl had for
a variable that is set as true when user clicks to stop jack is no longer
there.
The other, new variables related to something else (jack client shutdown),
which is not the same and would lead to confusion.
Cant we just make qjackctl call a proper terminate on the process first,
before attempting to kill it?
Making jackd.exe not having a chance to clean itself up is pretty bad IMO,
this is why we have issues with "jack_db" as it is never removed (a step
done at jackd exit)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#648 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIX3J6MYQKWUULV3HXPYEDSLVOAZANCNFSM4SUGKA7A>
.
|
Last time I checked, jackd listens to the ctrl_c CLI thing, which is similar to WM_CLOSE. |
Could be. I haven't tried. I guess @sletz is the one writing this code
in qjackctl. Maybe he remembers why that code is there?
…On Tue, Oct 20, 2020 at 12:13 PM Filipe Coelho ***@***.***> wrote:
The relevant code: https://github.com/jackaudio/jack2/blob/develop/common/JackControlAPI.cpp#L537
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
I guess this code is there because it is compiled in libjackserver DLL which is then used by the jackdmp binary. |
The commit that added
https://github.com/jackaudio/jack2/blob/develop/common/JackControlAPI.cpp#L537
(e44ab5b) was made in 2012. The kall to
kill() in qjackctl was probably implemented much earlier than 2012, so I
guess it's very likely that the call to kill() on windows can be removed
now (
https://github.com/rncbc/qjackctl/blob/master/src/qjackctlMainForm.cpp#L1641
).
…On Tue, Oct 20, 2020 at 12:13 PM Filipe Coelho ***@***.***> wrote:
The relevant code:
https://github.com/jackaudio/jack2/blob/develop/common/JackControlAPI.cpp#L537
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#648 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIX3J2NU47JFFKAN64MI5LSLVPDTANCNFSM4SUGKA7A>
.
|
Sorry, a6a2d8f, was just a refactoring. I
can't find the original commit, but it's from 2008 or older.
On Tue, Oct 20, 2020 at 12:36 PM Kjetil Matheussen <[email protected]>
wrote:
… The commit that added
https://github.com/jackaudio/jack2/blob/develop/common/JackControlAPI.cpp#L537
(e44ab5b) was made in 2012. The kall to
kill() in qjackctl was probably implemented much earlier than 2012, so I
guess it's very likely that the call to kill() on windows can be removed
now (
https://github.com/rncbc/qjackctl/blob/master/src/qjackctlMainForm.cpp#L1641
).
On Tue, Oct 20, 2020 at 12:13 PM Filipe Coelho ***@***.***>
wrote:
> The relevant code:
> https://github.com/jackaudio/jack2/blob/develop/common/JackControlAPI.cpp#L537
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#648 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAIX3J2NU47JFFKAN64MI5LSLVPDTANCNFSM4SUGKA7A>
> .
>
|
just raise a PR to https://github.com/rncbc/qjackctl when you conclude your investigations :) |
anyway, rncbc/qjackctl@0aadfd4 is probably a comeback to fair warning: not tested whatsoever in the field: counting on you Windows freaks to do just that cheers |
Would be best to try to stop jack nicely first. But that is still a nice commit to have in case the clean exit fails and qjackctl ends up calling "kill" anyway. |
as far as I can remember, and probably @sletz maybe also recall from more than a decade ago, invoking bummer |
No precise remembering on any specific QT thing, I'm afraid. |
@sletz, np. anyway it is all right there documented in the Qt docs: |
That is odd, according to official docs there are other ways to handle this. In any case, we just need to find something that works. |
i wouldn't go anyway far just for silencing a dang and annoying line on the qjackctl messages... but that's your call anyway :) |
It is not just about silencing a "stop", it is killing jackd instead of letting it nicely close. |
have you tested it? does the "JACK has crashed" message ever resulted in a non restartable jackd? besides, according to the Qt docs, |
Yes, killing jackd can lead to not being able to start it again (until a reboot) Anyway, it is just a good practice to stop processes cleanly. |
With Jack2 1.9.16 x64 (jack2-win64-v1.9.16.exe)
When stopping Jack2 a crash message appreas in the message box. See message attached.
Crash_message_when_Jack_is_stopped.txt
The text was updated successfully, but these errors were encountered: