[MDEV-208] Server does not run on Windows XP due to a missing export "CallbackMayRunLong" in kernel32.dll Created: 2012-03-30  Updated: 2012-04-12  Resolved: 2012-04-12

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.21, 5.5.22
Fix Version/s: 5.5.24

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Vladislav Vaintroub
Resolution: Fixed Votes: 0
Labels: None
Environment:

Windows XP SP3 32bit



 Description   

Initially reported in the knowledge base:
http://kb.askmonty.org/en/mariadb-5522-release-notes/comments/279

I got the same problem trying to start server on XP, the error message is something like "The entry point into CallbackMayRunLong not found in kernel32.dll" (sorry for the rough quote, I only have it in Russian).

Tried MariaDB 5.5.21 and 5.5.22, got it on both.

No problem with MariaDB 5.3.5 or MySQL 5.5.22.

See also https://bugs.launchpad.net/maria/+bug/973113



 Comments   
Comment by Sergei Golubchik [ 2012-04-06 ]

Wlad, I've added your WEAK_SYMBOL() wrapper for CallbackMayRunLong. mysqld.exe started to load, but in uncovered another problem. thread scheduler is set to pool-of-threads on windows by default, and it immediately crashes on XP.

I've put a workaround in mysqld.cc, but please review it and feel free to fix it differently.

http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/3364

Comment by Vladislav Vaintroub [ 2012-04-12 ]

The workaround by Serg is actually a correct fix. Threadpool is not supposed to work on downlevel Windows versions (XP and Win2003) and thread-handling should be silently converted to thread-per-connection, as per documentation.

I'm quite sure that similar check for Vista+ used to be in place during development of threadpool feature (and I even tested XP back in the days using a VM), yet it somehow disappeared when feature was checked in

Generated at Thu Feb 08 06:27:03 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.