[MDEV-30956] Unable to install MariaDB MSI package on Windows Server 2012 Created: 2023-03-29  Updated: 2023-04-11  Resolved: 2023-04-11

Status: Closed
Project: MariaDB Server
Component/s: Packaging, Server
Affects Version/s: 10.11.2, 10.5.19, 10.6.12, 10.7.8, 10.8.7, 10.9.5, 10.10.3
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Anton Serbulov Assignee: Unassigned
Resolution: Not a Bug Votes: 0
Labels: Windows, packaging
Environment:

Windows Server 2012


Attachments: PNG File mariadb-launch-conditions.png    

 Description   

Starting MariaDB 10.5 the installation of MSI package on Windows Server 2012 failed with error:

This application is only supported on Windows 10, Windows Server 2016, or higher.



 Comments   
Comment by Oleg Smirnov [ 2023-03-30 ]

The description says about 10.5 but the version in the screenshot is 10.11, is it alright? Does it mean we have that message for every version starting from 10.5?
Another question is are we expected to support Windows Server 2012? As I can see from https://mariadb.com/kb/en/deprecation-policy/ probably we are until October 2023, is it correct?

Comment by Anton Serbulov [ 2023-03-30 ]

I have this message for every version since 10.5.
Windows Server 2012 is expected to be supported until October 2023.

Comment by Ralf Gebhardt [ 2023-03-31 ]

From the 10.5.0 changelog:
Revision #cff7cf15d7 2019-06-27 20:05:01 +0200
Windows MSI : small cleanups, disable Windows 7/8

It would be good to understand if the reason is related to
Revision #74a744b51f 2019-06-27 19:33:25 +0200
Windows : Do not package redistributable C runtime , nor merge modules into Windows installers
Revision #b60aee58c7 2019-06-27 19:25:33 +0200
MDEV-17279 Windows : link C runtime dynamically Improve previous patch so we do not depend on (tiny) compiler-version dependent libraries, i.e vcruntime140.dll, and msvcp140.dll

Details from the last of these commits:

The remaining dependency is Universal CRT, is part of Win10+ OS,
and should already be installed by Windows update on most downlevel
systems.

The first listed commit in my comment is the following change in the installer:

<Condition Message='This application is only supported on Windows 10, Windows Server 2016, or higher.'>
<![CDATA[Installed OR (VersionNT >= 603)]]>

Comment by Ralf Gebhardt [ 2023-03-31 ]

skvoboo, are you running Windows Server 2012 or Windows Server 2012 R2?

Comment by Anton Serbulov [ 2023-03-31 ]

I'm running Windows Server 2012
The issue is actual for Windows Server 2012 only because VersionNT for this OS is equal 602

Comment by Anton Serbulov [ 2023-03-31 ]

Please take a look at the MsiNTProductType property.

Windows 8 x64

VersionNT64 = 602 AND MsiNTProductType = 1

Windows Server 2012 x64

VersionNT64 = 602 AND MsiNTProductType <> 1

I think this will help you solve the problem.

Comment by Ralf Gebhardt [ 2023-03-31 ]

skvoboo, do you have access to a Windows Server 2012 R2 installation? It is based on OS version 6.3, see https://learn.microsoft.com/en-us/windows/win32/sysinfo/operating-system-version. VersionNT should be 603 in that case.

Comment by Anton Serbulov [ 2023-03-31 ]

The issue is not actual for Windows Server 2012 R2
This issue about installation on Windows Server 2012

Comment by Vladislav Vaintroub [ 2023-04-05 ]

MariaDB does not support Windows 2012 until October 2023. It was supported until Oct 2018 .

And I am surprised that Ralph did not bring this up before.

MariaDB supports Windows version in their active lifecycle, which means "mainstream", not "extended"

10.5 was released after that. To my knowledge, 10.5 or any later version was not tested by MariaDB people on that specific OS. Not by CI, neither by QA, neither by developers. It might work on this OS, or it might not. Nobody checked.

So whatever the condition says, is strictly speaking, not incorrect.

The Engineering policy has had this "Until the product reaches the Mainstream Support End Date.", specifically for Windows, for many-many years now ( current version https://mariadb.com/wp-content/uploads/2023/03/mariadb-engineering-policies-v4-14-1_policy_1166.pdf has it too, of course).

Mainstream supported for 2012 and 2012 R2 ended on
Oct 9 2018 ( https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2012 )

We should have blocked 2012 R2 too, but the condition for that is trickier, so it did not work
(but MariaDB devs or QA would not know, because it was not tested on R2 either)

Comment by Ralf Gebhardt [ 2023-04-11 ]

skvoboo, thanks for checking Windows Server 2012 R2 which verified that VersionNT64 is 603 for it and therefor not correctly validated by the installer.

As correctly mentioned by wlad, we have to limit the support of Windows platforms to the versions with Mainstream Support due to the available QA resources.

An option could be to change the installer to allow an installation on not supported Windows versions, by a checkbox to enable this. But such solutions usually do more harm than they help

Generated at Thu Feb 08 10:20:10 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.