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
Crash during quit in windowDidExitFullScreen #4020
Comments
So, the shutdown is triggering The obvious fix is to add another shutdown check (I just submitted a PR for this). But a better fix might be to throw exceptions like this: private func showUI() throws {
if player.isShuttingDown || player.isShutdown {
throw IINAError.isShuttingDown
}
if player.disableUI { return }
animationState = .willShow
fadeableViews.forEach { (v) in
// ... People hate to deal with exceptions, but even if the callers just decide to stop and return when they get an exception, it would be a win. |
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen and windowDidExitFullScreen to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
same here
|
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen, windowDidExitFullScreen and windowDidEndLiveResize to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
can someone explain above in simple English to me as I am nota coder? is there a fix being worked on for the issue [FULL SCREEN PLAYBACK QUIT is then followed by instant Pop up Apple Crash Report? I AM USING LEGACY FULLSCREEN TO AVOID THIS, BUT IT HAS SO MANY ISSUES. |
The short answer is YES, a fix is being worked on. The long answer… A developer first makes changes to code to fix a problem in their own area. Once they are sure the fix works they create on GitHub what is called a "pull request" (PR). That is a request to the project to "pull" those changes into the source code of the project. The purpose of this is to allow other developers to review the proposed code changes and either approve, reject or ask for changes to the proposed fix. Once other developers have approved the changes they will be "merged". That is the process where the changes are actually added to the copy of the code that the next version of IINA will be built from. The last step is making a release which involves potentially updating code IINA obtains from other projects and then building the official version of the application. For this problem a proposed fix is waiting for other developers to review in PR #4068. That PR is waiting along with a number of other fixes to be reviewed and merged for the next release. Think of this like a bunch of authors all working on the next version of a textbook. They have written proposed changes on their own. At some point they must get together and merge those changes into the official draft copy of the book. They need to review each others changes for typos. They need to resolve conflicts where two authors have proposed different changes to the same part of the book. |
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen and windowDidExitFullScreen to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen, windowDidExitFullScreen and windowDidEndLiveResize to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen and windowDidExitFullScreen to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen, windowDidExitFullScreen and windowDidEndLiveResize to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen and windowDidExitFullScreen to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
This commit will: - Add a new isClosing property to MainWindowController - Change windowWillClose to set isClosing to true - Change windowWillExitFullScreen, windowDidExitFullScreen and windowDidEndLiveResize to not access mpv if window is closing - Change fsState didSet to not access mpv if window is closing - Change windowWillOpen to set isClosing to false These changes prevent IINA from calling mpv while mpv is asynchronously unloading the file or shutting down.
The Work is proceeding on the next release. We still have some proposed fixes to review and merge. |
Thanks for the quick response. Any ETA on the next release? |
No ETA. I can say a little bit about where we are with the release. As this is open source a lot of the work is publicly visible. You can see a lot of accumulated proposed changes here. Those changes are being reviewed, updated as needed and merged into the At some point we will need to freeze changes involving text that needs to be localized and ask people to help with translations. Another part of this release is generating updated dependencies. That is in the works. As this moves along we are doing testing. Once the sources are settled and we have updated dependencies then we need to get serious about testing. There is more to it, but I an a junior newbie and don't have the big picture on what all goes into a release. The take away should be that we are at the point of where we are actively working to generate a new release, but that involves a lot of work. |
My €0.02: Release early, release often |
We are approaching 8 months since this was first raised. Even with the explanation you gave in April, why is it so hard to push such a critical update? |
For those that can't wait, grab the nightly build and use that instead. This is what i'm using and can verify the fix is in it. And when the release is out switchover to that. |
Nice to hear. I also found that setting to the (inferior) older full screen setting seems to fix the crashing. Hope for a total fix soon.
…On Jun 15, 2023 01:33 +0900, honey-bandage ***@***.***>, wrote:
Temporary workaround for people in habit of pressing ⌘Q ;)
Just change ⌘Q to "Close" (Menu Title) for IINA only (Not for All applications!)
from keyboard shortcut in Mac OS settings.
This will "Close" IINA instead of "Quit" but no more annoying prompt.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
IINA 1.3.2 contains the fix for this issue. |
System and IINA version:
Expected behavior:
IINA does not crash when quitting.
Actual behavior:
During termination MainWindowController.windowDidExitFullScreen was called. MainWindowController called PlayerCore which called MPVController.getDouble. That method called mpv_get_property triggering a crash as IINA had already sent a quit command to mpv.
This is with the develop branch that contains changes to try and correct shutdown problems.
Xcode Console:
Steps to reproduce:
Quit while playing a video in full screen. Use a script to do this over and over until the problem reproduces.
How often does this happen?
Somewhat rare.
The text was updated successfully, but these errors were encountered: