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

Unable to download MOST kits...TLS Error in logs. #1677

Closed
zenonymus opened this issue Nov 19, 2022 · 7 comments
Closed

Unable to download MOST kits...TLS Error in logs. #1677

zenonymus opened this issue Nov 19, 2022 · 7 comments
Labels
bug drumkit Affects the way drumkits are stored as well as the hosted one Windows

Comments

@zenonymus
Copy link

zenonymus commented Nov 19, 2022

Hydrogen version * 1.1.1-'c845af2f':
Operating system + version : Windows 10 22H2 build 19045.2251
Audio driver + version : Sound Blaster Recon3Di 6.0.101.1042


Unable to download MOST kits. Found multiple error entries in the log resembling "Unable to initialize TLS" which pointed to an outdated or incompatible SSL implementation. Installed both OpenSSL v1.1.1s and v3.0.7 for Windows and problem resolved.

Log overwrote after fixing this and am I unable to provide the log. Users may need to update their SSL implementation to download some of these kits. I do not know why the windows implementation did not work with Hydrogen.

@theGreatWhiteShark
Copy link
Contributor

Hey @zenonymus

This feels like a problem we already fixed. Could you check whether you are able to download the kits in the most recent development version?

@trebmuh trebmuh added bug Windows drumkit Affects the way drumkits are stored as well as the hosted one labels Nov 25, 2022
@cubicool
Copy link

cubicool commented Dec 9, 2022

Happening for me as well; a few work, but MOST fail. I AM using the version you linked (looks like Dec 5th?)

@zenonymus
Copy link
Author

Sorry for the delayed response....work.

100% Fresh install 3 days ago of the same Windows 10 Pro version on an alternate machine with a fresh install of hydrogen using the Dec 5th 21 1.1.1. [username] is supplied in place of my actual username for security and privacy reasons. I deliberately updated the OpenSSL implementations while hydrogen was running because I did the opposite originally.

The link to the 'development' version was the same version listed in my original post. This occurred about 30 min ago. I obtained OpenSSL packages from https://slproweb.com/products/Win32OpenSSL.html

  1. Updated OpenSSL 3.0.,7 while application running. No effect. (do not suspect this version so tried it first)
  2. Closed and restarted hydrogen. no effect.
  3. Updated OpenSSL 1.1.1s while application running. No effect.
  4. Closed and restarted hydrogen. Online import of drumkits is fully functional and no (E) in subsequent log to show.

This points to TLS (OpenSSL) being involved for at least my version of Windows 10 and as a new installation.

Maybe something to do with an Oct 2022 patch that caused TLS issues? https://borncity.com/win/2022/10/22/fix-des-ssl-tls-verbindungsproblems-stand-der-sonderupdates-und-betroffene-anwendungen-21-10-2022/

You'd think if this were a Windows problem, any updates fixing TLS issues on their end would have been applied at install time 3 days ago. There is a pending optional non-security update from Nov 15th 2022 that does not address TLS matters.

Log follows...

Start logger(E) PortAudioDriver::connect Can't use device '', using default stream�[0m
(E) PortAudioDriver::connect Can't use device '', using default stream�[0m
#<snip for repeated useless error messagex10>
(I) SoundLibraryImportDialog::SoundLibraryImportDialog INIT�[0m
(I) SoundLibraryImportDialog::clearImageCache Deleting cached image files from C:/Users/[username]/.hydrogen/data/cache/repositories/�[0m
(I) SoundLibraryImportDialog::clearImageCache Deleting cached image files from C:/Users/[username]/.hydrogen/data/cache/repositories/�[0m
(I) SoundLibraryImportDialog::soundLibraryItemChanged No image for this kit specified in drumkit.xml on remote server�[0m
(I) Download::Download Downloading 'https://sourceforge.net/projects/hydrogen/files/Sound Libraries/Main sound libraries/The Black Pearl 1.0.h2drumkit' in 'C:/Users/[username]/AppData/Local/Temp/The Black Pearl 1.0.h2drumkit'�[0m
(E) Download::finished Importing item failed: TLS initialization failed�[0m
(I) Drumkit::load Load drumkit C:/Program Files/Hydrogen/data/drumkits/GMRockKit�[0m
(I) XMLDoc::read XML document C:/Program Files/Hydrogen/data/drumkits/GMRockKit/drumkit.xml is valid (C:/Program Files/Hydrogen/data/xsd/drumkit.xsd)�[0m
(I) Drumkit::load Load drumkit C:/Program Files/Hydrogen/data/drumkits/TR808EmulationKit�[0m
(I) XMLDoc::read XML document C:/Program Files/Hydrogen/data/drumkits/TR808EmulationKit/drumkit.xml is valid (C:/Program Files/Hydrogen/data/xsd/drumkit.xsd)�[0m
(I) SoundLibraryImportDialog::clearImageCache Deleting cached image files from C:/Users/[username]/.hydrogen/data/cache/repositories/�[0m
(I) SoundLibraryImportDialog::soundLibraryItemChanged No image for this kit specified in drumkit.xml on remote server�[0m
(I) Download::Download Downloading 'https://sourceforge.net/projects/hydrogen/files/Sound Libraries/Main sound libraries/The Black Pearl 1.0.h2drumkit' in 'C:/Users/[username]/AppData/Local/Temp/The Black Pearl 1.0.h2drumkit'�[0m
(E) Download::finished Importing item failed: TLS initialization failed�[0m
(I) Drumkit::load Load drumkit C:/Program Files/Hydrogen/data/drumkits/GMRockKit�[0m
(I) XMLDoc::read XML document C:/Program Files/Hydrogen/data/drumkits/GMRockKit/drumkit.xml is valid (C:/Program Files/Hydrogen/data/xsd/drumkit.xsd)�[0m
(I) Drumkit::load Load drumkit C:/Program Files/Hydrogen/data/drumkits/TR808EmulationKit�[0m
(I) XMLDoc::read XML document C:/Program Files/Hydrogen/data/drumkits/TR808EmulationKit/drumkit.xml is valid (C:/Program Files/Hydrogen/data/xsd/drumkit.xsd)�[0m
(I) SoundLibraryImportDialog::clearImageCache Deleting cached image files from C:/Users/user/.hydrogen/data/cache/repositories/�[0m
(I) SoundLibraryImportDialog::soundLibraryItemChanged No image for this kit specified in drumkit.xml on remote server�[0m
(I) Download::Download Downloading 'https://sourceforge.net/projects/hydrogen/files/Sound Libraries/Main sound libraries/The Black Pearl 1.0.h2drumkit' in 'C:/Users/[username]/AppData/Local/Temp/The Black Pearl 1.0.h2drumkit'�[0m
(E) Download::finished Importing item failed: TLS initialization failed�[0m
(I) Drumkit::load Load drumkit C:/Program Files/Hydrogen/data/drumkits/GMRockKit�[0m
(I) XMLDoc::read XML document C:/Program Files/Hydrogen/data/drumkits/GMRockKit/drumkit.xml is valid (C:/Program Files/Hydrogen/data/xsd/drumkit.xsd)�[0m
(I) Drumkit::load Load drumkit C:/Program Files/Hydrogen/data/drumkits/TR808EmulationKit�[0m
(I) XMLDoc::read XML document C:/Program Files/Hydrogen/data/drumkits/TR808EmulationKit/drumkit.xml is valid (C:/Program Files/Hydrogen/data/xsd/drumkit.xsd)�[0m
(I) SoundLibraryImportDialog::clearImageCache Deleting cached image files from C:/Users/[username]/.hydrogen/data/cache/repositories/�[0m
(I) SoundLibraryImportDialog::~SoundLibraryImportDialog DESTROY�[0m

@theGreatWhiteShark
Copy link
Contributor

Hmm... Qt - the framework Hydrogen is build with - does not ship its own TLS library for Windows but expect it to be present somewhere in PATH. In addition, the provided version of the library must exactly match the one Qt was build with.

I recently pinned OpenSSL to a version working fine with Qt and added a unit test checking whether both are still compatible. But maybe the Qt version within the build environment was updated and the latter test didn't work properly. Newer versions of Qt 5.15.* do indeed require a different OpenSSL library. I will check.

@theGreatWhiteShark
Copy link
Contributor

I'm struggling to reproduce this issue. Neither with the Hydrogen version linked above nor a freshly built one I get a TLS error. I also made sure to uninstall any additional OpenSSL libraries on my Windows system (which I use as an almost complete noob) and only the libcrypt-1_1 and libssl-1_1 within the Hydrogen folder itself and the ones provided by the Windows system are located in $env:path.

There is still the off chance that my Windows does by accident has the matching version installed globally and your's doesn't.

Just to be sure: could you try this cutting edge version and check whether the problem still occurs?

@zenonymus
Copy link
Author

So...

  1. Uninstalled hydrogen 1.1.1 and installed hydrogen 1.2.0 as asked and it worked fine for online kit import.
  2. Uninstalled my OpenSSL (it cleared the entire C:\Program Files\OpenSSL directory) using the included unins000.exe in the program directory.
  3. Hydrogen 1.2.0 ran as expected and downloaded kits.
  4. Uninstalled Hydrogen 1.2.0 and reinstalled Hydrogren 1.1.1
  5. Hydrogen 1.1.1 ran as expected and downloaded kits.

I did not reinstall OpenSSL. So maybe something gets updated in the windows system dir?

Both machines are recent re-installs (#1 was installed in early Nov and #2 was installed late November) using Windows 10 via bootable USB installation and digital license. Perhaps something is not present in the bootable USB distribution of Windows 10? Maybe something just for a few people here and there that installed windows and hydrogen between Oct and December?

The December 5th 2022 Windows 20H2 patch notes as follows:

https://learn.microsoft.com/en-us/windows/release-health/resolved-issues-windows-10-20h2#ssl-tls-handshake-might-fail

It addresses an issue that might affect some types of Secure Sockets Layer (SSL) and Transport Layer Security (TLS) connections. These connections might have handshake failures. For developers, the affected connections are likely to receive one or more records followed by a partial record with a size of less than 5 bytes within a single input buffer. If the connection fails, your app will receive the error, “SEC_E_ILLEGAL_MESSAGE”.

I do not know if this remotely touches on this at all, as it's for 20H2 and both machines are 22H2, and it is a complete mystery to me how MS and updating "features" actually works. I cannot now recreate the issue in my environment other than that I have recreated the issue on the second machine using the same basic method of installing Windows 10 from a USB device and activating it with a digital license, installing base drivers and then installing hydrogen. I just happened to have that second machine ready to go by the time I noticed the first reply to my report and was able to reproduce the errors as shown in the log above and then apply the fix via installing OpenSSL as above. Everything works as it should now. Hopefully, maybe the fix is already in the mix via MS and you won't have to do anything. But no idea.

@theGreatWhiteShark
Copy link
Contributor

Both machines are recent re-installs (#1 was installed in early Nov and #2 was installed late November) using Windows 10 via bootable USB installation and digital license. Perhaps something is not present in the bootable USB distribution of Windows 10? Maybe something just for a few people here and there that installed windows and hydrogen between Oct and December?

Ideally Hydrogen should be self-consistent and the OpenSSL version we ship along with it should work fine. Maybe this is something time will tell. After all, in the current build pipeline OpenSSL version is fixed and Qt5 isn't.

But don't worry. Some issues are quite hard to reproduce or only occur in very special cases. Thanks for work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug drumkit Affects the way drumkits are stored as well as the hosted one Windows
Projects
None yet
Development

No branches or pull requests

4 participants