Skip and quarantine non-essential plugins on missing offsets - #81
Open
Fonzie584 wants to merge 1 commit into
Open
Skip and quarantine non-essential plugins on missing offsets#81Fonzie584 wants to merge 1 commit into
Fonzie584 wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lets you mark which plugins are allowed to crash the server on a missing offset. Default off, nothing changes:
Everything not in the list: fails during Plugin_Init -> unloaded again and the server boots without it. Fails at runtime -> the crash stays but it writes an
OffsetCrash.jsonnext to the .dll first, and the next boot skips that plugin until the dll changes (sha256) or the symbol comes back in a cache update. A manual plugins.load still overrides the skip, the missing offset doesn't go away though.The webhook posts one report per boot plus a card when something crashes.
The init skip only throws when the stack is clean, AsaApi frames and the loading plugin's own frames only, anything else takes the marker path.
Fixed two leaks on the way a throwing Plugin_Init left the dll loaded forever and a failing LoadLibraryExW leaked the AddDllDirectory cookie.
Tested every path on a live server. Might still be best to have a few server owners run this before it goes into a release, I'll leave that call to you, I'm not going to compile and distribute builds myself. Anyone who knows how to compile can of course test it themselves.