[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: 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 |