Skip to content

Wine stability improvements#1769

Open
marzent wants to merge 1 commit into
goatcorp:masterfrom
marzent:wine-improvements
Open

Wine stability improvements#1769
marzent wants to merge 1 commit into
goatcorp:masterfrom
marzent:wine-improvements

Conversation

@marzent

@marzent marzent commented Apr 13, 2024

Copy link
Copy Markdown
Contributor

This uses MinHook for the Addon Hooks, as there seems to be a race with Reloaded somewhere that leads to execution of random code after a while.

Also makes DALAMUD_LEGACY_CORRUPTED_STATE_EXCEPTION configurable, which is highly undesirable to have enabled with Wine, as this can mask underlying issues and lead to random crashes as well.

@marzent marzent requested a review from a team as a code owner April 13, 2024 21:10
@KazWolfe

Copy link
Copy Markdown
Member

n.b. holding this PR as we're allegedly seeing some issues with MinHook with certain plugins (including Simple Tweaks). See #linux-and-dev channel in the Dalamud Discord.

We're also looking at how best to handle DALAMUD_LEGACY_CORRUPTED_STATE_EXCEPTION since ideally we'd disable this on Windows as well, but this may break certain plugin behaviors.

@marzent

marzent commented Apr 20, 2024

Copy link
Copy Markdown
Contributor Author

Indeed DALAMUD_LEGACY_CORRUPTED_STATE_EXCEPTION should ideally not exist and plugins that rely on that, are basically doing a CrashRandomyl(), especially with memory writes (well also with reads if it hits a guard page); can remove it and just disable corrupted state exceptions if that is better...

The Reloaded issue does indeed need some more looking into, in any case something is not behaving as it should. If this change does also create issues on Windows that might also be worth investigating, since that is a bit easier to debug.

@goaaats

goaaats commented Apr 20, 2024

Copy link
Copy Markdown
Member

We definitely can't "just" turn it off, we'll have to have some kind of migration plan. Either way it's a hard sell to devs, we'll talk about it internally, it's good to have the option for now though.

@KazWolfe KazWolfe self-assigned this Jun 3, 2024
@KazWolfe KazWolfe added core Dalamud core linux This Issue applies only to Linux environments. labels Jun 3, 2024
@marzent marzent force-pushed the wine-improvements branch from 9687bcf to 958d1df Compare June 10, 2024 06:07
@marzent

marzent commented Jun 10, 2024

Copy link
Copy Markdown
Contributor Author

I dropped the hook changes part for now...
If legacy state exceptions are supposed to just be unconditionally gone without fallback for API X, this can also be done.

@keysmashes

Copy link
Copy Markdown

I dropped the hook changes part for now...

is the thinking that the problems those changes addressed are now fixed in a different way, or will be fixed with Dawntrail, or something else?

@marzent

marzent commented Jun 10, 2024

Copy link
Copy Markdown
Contributor Author

I believe it to be an issue somewhere inside reloaded for stacked hooks; am currently trying to come up with a better solution.

@KazWolfe

KazWolfe commented Jan 3, 2026

Copy link
Copy Markdown
Member

@marzent Is this still applicable?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Dalamud core linux This Issue applies only to Linux environments.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants