-
-
Notifications
You must be signed in to change notification settings - Fork 455
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
Detach portable version from CRT installed in system #2323
Comments
This is actually pretty interesting! We can't statically link chatterino because of Qt's license (or at least that's my understanding) and it hasn't occurred to me that me might be able to simply include a copy of the runtime files. Thank you for this suggestion, I will look into that tomorrow! |
That's a good point about the licensing, I have no idea if MIT and GPL could be combined. But I mostly meant static linking with the CRT (that is, using /MT option of cl.exe instead of /MD). That can be a bit tedious, because it would require rebuilding Qt from sources with the same static CRT linking. But the Qt still can be compiled as DLLs, so the license should not become an issue in this scenario, it's same LGPL dynamic library linkage. The only difference would be, they won't have the CRT dependencies in the import tables. But just including the CRT libraries into the package should be easier. |
I suppose compiling all the libraries myself with /MT would be the best option |
Please make this a priority, Currently crashing for the exact reason listed here: ucrtbase.dll. From everything I have read, re-installing windows seems like the ONLY option I have to fix this issue. If any of you have workarounds, please tag me in it! |
@NeelAPatel For me each time it was fixed after a reboot, no reinstallation of anything was required. If that does not work for you, I'd suggest you reinstall Chatterino itself (and reboot the PC). Or if you are using portable version, reinstall the CRT libraries. |
@CaptainFlint Yes my first action was to reboot my pc as well. Also tried:
|
@NeelAPatel Looks like we have different issues. In my case the exception code was 0x40000015. But I'm working in Win7; not sure if that could affect it. |
Sorry to report that all my random attempts at different versions have failed.
|
That makes me think, there's something seriously wrong with your system. Maybe not even in the CRT libraries (the "faulting module" pointing at ucrtbase.dll means that the exception ends up there, but it does not mean that DLL is the actual source of the issue). Unfortunately, I have no idea what could be wrong here, but since such a wide range of versions show the same issue, I doubt it can be solved by static CRT linkage. Unless anybody else has better ideas, you could try to do various experiments, narrow down the area where the origin of the probelm could be. Set up a virtual machine with clean Windows, check if Chatterino works there. Install there the same components that you have on your main computer: Windows updates, CRT versions, the most intrusive applications (which inject their DLLs into other processes). Maybe it's one of them. Also, it's worth checking the integrity of your system files with sfc, you never know. And you could try to build Chatterino from source; it's a bit complicated, but perfectly doable; it may help (if the issue lies in some library binary incompatibility). It's a long and tedious list, but I don't know what else to suggest. |
well I guess apologies are to be made here. I believe my problem is definitely a windows issue as I reinstalled my windows and it still didn't work. I should've said earlier that I'm running Windows insider version 21301, so that is probably the source of my problems. (Irony is that it HAS worked on this build before) Thank you for trying to help though! |
Made an FBH post yesterday, hopefully it might help: https://aka.ms/AAb4n7p |
I had the same issue on stable Windows 10.0.19042 Build 19042 yesterday. But a restart fixed it for me as well.
On that day the following programs had updates before the issue occurred:
This is the Event Viewer content as well as all the referenced error logs: Chatterino 2 crash.zip This is a subsection of the Report.wer:
Exception Code |
This should be possible by removing
|
What should be added?
Chatterino (at least in its portable mode) should include VC++ runtime in its local directory, or be statically linked with it, so that the CRT libraries installed in Windows were not used.
Why should it be added?
Several times I've had an issue, that when some program is installed or updated, and a new version of CRT is installed along, Chatterino begins to crash on start (report mentions an exception in ucrtbase.dll). If I restart Windows, Chatterino starts working again, without problems. But obviously, Chatterino is normally used while watching a stream, and losing several minutes for a computer restart is not an easy option (not to mention, that restart means closing and reopening all the programs, documents, browser tabs; losing all the active work, like undo-redo history in editors; etc., etc.). I tried to copy the CRT libraries directly into the Chatterino folder, but they were completely ignored, and were loaded from system32 instead. If a program is called portable, it is expected not to rely so heavily on the system libraries.
Chatterino is the only program where I've noticed this weird behaviour with crashes on updating CRT. I have lots of other programs, and none of them crashes like that. I took a look at how other programs are packaged, and noticed that many of them have a copy of CRT inside their installation directory. Some examples are: Mozilla Firefox, foobar2000, TortoiseGit, paint.net (the native components), Miranda NG... I hope Chatterino could be modified in a similar way to avoid this extremely annoying issue.
The text was updated successfully, but these errors were encountered: