Skip to content
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

Entrypoint Injection can time out due to slow or faulty I/O #1686

Closed
KazWolfe opened this issue Feb 27, 2024 · 1 comment · Fixed by #1687
Closed

Entrypoint Injection can time out due to slow or faulty I/O #1686

KazWolfe opened this issue Feb 27, 2024 · 1 comment · Fixed by #1687
Labels
bug Something isn't working oh no Proof that making sand think was a mistake.

Comments

@KazWolfe
Copy link
Member

KazWolfe commented Feb 27, 2024

We've had two users report this particular issue in Discord now, so creating an Issue for logging purposes.

When using entrypoint injection (in-UI referred to as "new injection") with an invalid or slow D:\ drive (e.g. a 5400 RPM disk or faulty SD card reader), the game will hang indefinitely attempting to load PDBs. This appears to be inconsistent in and of itself, but is otherwise apparently related to some I/O concerns.

Memory dumps show that the game hangs in NtCreateFile called via dbghelp.dll either within a CLR kick-off thread or the game's own thread as part of setting up the in-game error handler:

image

In both cases, the referenced PDB path being loaded was being pulled from the D:\ drive at a CI-based path:

image

This may be the result of a double-initialization of symbols, but is unclear at this time. For all affected users, this only happens when loading Dalamud with entrypoint injection; legacy mode does not experience this problem and the game sans Dalamud also loads normally.

@KazWolfe KazWolfe changed the title Entrypoint Injection can Time Out due to I/O Shenanigans Entrypoint Injection can time out due to slow or faulty I/O Feb 27, 2024
@KazWolfe KazWolfe added bug Something isn't working oh no Proof that making sand think was a mistake. labels Feb 27, 2024
@KazWolfe
Copy link
Member Author

For any users being redirected to this particular issue, you can work around this bug by:

  • Moving the drive assigned to D:\ to any other drive letter.
  • Disconnecting the drive assigned to D:\.
  • Using legacy injection.

Please note that D:\ may be assigned to a fake or volumeless drive (e.g. D:\ may be reserved for a plugged in but unused SD card reader) which may not show up in the File Explorer. If this is the case, tools like diskmgmt.msc or devmgmt.msc may help indicate what is using that drive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working oh no Proof that making sand think was a mistake.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant