azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.41k stars 2.57k forks source link

worldserver.exe crash upon log in #19712

Closed ASBaj closed 3 weeks ago

ASBaj commented 3 weeks ago

Current Behaviour

Upon logging in, worldserver.exe crashes. Error:

Exception thrown at 0x00007FFE30F808BC (libcrypto-3-x64.dll) in worldserver.exe: 0xC0000005: Access violation writing location 0x00007FFE316F3880.

Expected Blizzlike Behaviour

Login should succeed.

Source

No response

Steps to reproduce the problem

  1. Upgrade AzerothCore to the latest commit.
  2. Download OpenSSL 3.3.1 from the link provided by the wiki.
  3. Use CMake to re-generate the build files, updating all references from OpenSSL 1.1.1 to OpenSSL 3.3.1
  4. Build the project; it'll succeed.
  5. Run authserver and worldserver; upon signing in with a WoW client, worldserver crashes.

Extra Notes

authserver and worldserver both still say they require libssl-1_1-x64.dll and libcrypto-1_1-x64.dll, despite the wiki not mentioning this, and despite removing all references to OpenSSL 1.1.1 from CMake. I wonder if this is the issue? Being an access violation, I assume something is being loaded in incorrectly somewhere. If so, I'm not sure how to remove the dependency on these files, given that CMake does not reference them at all.

AC rev. hash/commit

30a790117be921ed0eff513322af1793995b2b4d

Operating system

Windows Server 2022

Custom changes or Modules

No response

Kitzunu commented 3 weeks ago

Remove 1.1 from your system. Sometimes it can cause issues. And restart your pc

And make sure you have all 3 dlls from 3.x you require, they are listed on the wiki

ASBaj commented 3 weeks ago

Remove 1.1 from your system. Sometimes it can cause issues. And restart your pc

And make sure you have all 3 dlls from 3.x you require, they are listed on the wiki

Tried this, didn't work. I have everything in place as is stated in the wiki.

Using dependency walker, I can see that authserver/worldserver retain a dependency to openssl 1.1.1. Is that expected?

The only thing I can think of is that MySQL 8.0.31, which I'm using, also uses openssl 1.1.1. I'd appreciate it if someone else tried to replicate the issue.

ASBaj commented 3 weeks ago

And based on MySQL's release notes page (https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-37.html) 8.0.37 seems to use OpenSSl 3.0.13.

Kitzunu commented 3 weeks ago

Is that expected?

No, since we don't support 1.x

I will not try your specific versions, but I use OpenSSL 3.3.1 MySQL 8.4

ASBaj commented 3 weeks ago

I will not try your specific versions

Here's the issue with that - the installation guide specifically says "MySQL ≥ 5.7.0 (Recommended version: ≥ 8.0)" is a requirement. I fulfil this requirement. If versions of MySQL 8.0 do indeed use OpenSSL 1.1.1, and that is causing an issue, then the wiki would need to be reflected to update this, would it not? In which case, shouldn't you see if you can replicate the issue with this version, and then find the minimal acceptable version to update the wiki?

Ceikry commented 3 weeks ago

Seeing as you're the one with the issue, shouldn't you do that work and update the wiki?

Kitzunu commented 3 weeks ago

Seems like the wiki is outdated, thought I changed it. I guess not

Kitzunu commented 3 weeks ago

Anyway we do support MySQL 8.0. Several users have it

ASBaj commented 3 weeks ago

Seeing as you're the one with the issue, shouldn't you do that work and update the wiki?

Is the wiki open for public editing? If so, I wasn't aware of that. I assumed no, given that there a project maintainers that review pull requests. This being the case, I assumed that changes to the wiki would probably have to go through a vetting process as well.

Kitzunu commented 3 weeks ago

Actually sorry, I am tired so mixing things up. It is up to date. There is a PR open to deprecate MySQL 5.7 and 8.1, but 8.0 and 8.4 will remain as they are LTS. So the Wiki is updated, for now.

OpenSSL 3.x is only supported. Several users use MySQL 8.0 without issues so I cant help you there sorry.

Is the wiki open for public editing

Yup! https://github.com/azerothcore/wiki/

ASBaj commented 3 weeks ago

Actually sorry, I am tired so mixing things up. It is up to date. There is a PR open to deprecate MySQL 5.7 and 8.1, but 8.0 and 8.4 will remain as they are LTS. So the Wiki is updated, for now.

OpenSSL 3.x is only supported. Several users use MySQL 8.0 without issues so I cant help you there sorry.

Is the wiki open for public editing

Yup! https://github.com/azerothcore/wiki/

OK, good to know. When I get a chance, I'll do more testing and see if updating my version of MySQL 8.0 to the latest resolves the issue. The wiki could then be updated to reflect there is a minimum version of 8.0 that is necessary, assuming that's the issue.

ASBaj commented 3 weeks ago

I linked my AzerothCore against MySQL 8.0.39. Worked; can log in again. As the MySQL 8.0.37 documentation that states that OpenSSL 3.x.x is now the default version, I would say the wiki should be updated to reflect that minimum version required is MySQL 8.0.37, at least for Windows. Is this something that I should create a pull request for?