Segmentation fault with mssql-server on Rocky Linux 9.1

I have just upgraded my Rocky Linux 8.7 to 9.1
After the upgrade, mssql-server does not longer work (the service starts normally, but after a minute or so the service stops and restarts)

I have tried uninstalling and installing again, without success

Output:

[root@localhost var]# /opt/mssql/bin/mssql-conf setup
Choose an edition of SQL Server:
  1) Evaluation (free, no production use rights, 180-day limit)
  2) Developer (free, no production use rights)
  3) Express (free)
  4) Web (PAID)
  5) Standard (PAID)
  6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
  8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 3
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...

This program has encountered a fatal error and cannot continue running at Thu Jan 26 00:56:59 2023
The following diagnostic information is available:

         Reason: 0x00000001
         Signal: SIGSEGV - Segmentation fault (11)
          Stack:
                 IP               Function
                 ---------------- --------------------------------------
                 000055ccdc70d62c <unknown>
                 000055ccdc70d072 <unknown>
                 000055ccdc727616 <unknown>
                 000055ccdc6ab75b <unknown>
                 00007f574f7b9d90 __restore_rt+0x0
                 0000000000000000 <unknown>
                 000055ccdc6c033e <unknown>
                 000055ccdc6a7a04 <unknown>
                 000055ccdc6a7829 <unknown>
        Process: 11449 - sqlservr
         Thread: 11570 (application thread 0x200)
    Instance Id: cc69b45c-43cc-4698-ba94-4087f880c9f3
       Crash Id: 0d77f061-ca5b-4e39-b197-0a31bce31439
    Build stamp: 552d94c177a9792ae44a9aaac32d760a081b9559704eef11a8058918a632fad6
   Distribution: Rocky Linux 9.1 (Blue Onyx)
     Processors: 4
   Total Memory: 16037240832 bytes
      Timestamp: Thu Jan 26 00:56:59 2023
Capturing a dump of 11449
Successfully captured dump: /var/opt/mssql/log/core.sqlservr.1_26_2023_0_56_59.11449
Executing: /opt/mssql/bin/handle-crash.sh with parameters
     handle-crash.sh
     /opt/mssql/bin/sqlservr
     11449
     /opt/mssql/bin
     /var/opt/mssql/log/

     cc69b45c-43cc-4698-ba94-4087f880c9f3
     0d77f061-ca5b-4e39-b197-0a31bce31439

     /var/opt/mssql/log/core.sqlservr.1_26_2023_0_56_59.11449

Rocky Linux 9.1 (Blue Onyx)
Capturing core dump and information to /var/opt/mssql/log...
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal', 'wheel' can see all messages.
      Pass -q to turn off this notice.
No journal files were opened due to insufficient permissions.
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal', 'wheel' can see all messages.
      Pass -q to turn off this notice.
No journal files were opened due to insufficient permissions.
Thu Jan 26 12:57:02 AM CET 2023 Capturing program information
Dump already generated: /var/opt/mssql/log/core.sqlservr.1_26_2023_0_56_59.11449, moving to /var/opt/mssql/log/core.sqlservr.11449.temp/core.sqlservr.11449.gdmp
Moving logs to /var/opt/mssql/log/core.sqlservr.11449.temp/log/paldumper-debug.log
Thu Jan 26 12:57:03 AM CET 2023 Capturing program binaries
/usr/bin/find: ‘/usr/share/polkit-1/rules.d’: Permission denied
/usr/bin/find: ‘/usr/share/nginx/html/owncloud’: Permission denied
/usr/bin/find: ‘/usr/share/empty.sshd’: Permission denied
/usr/bin/find: ‘/usr/libexec/initscripts/legacy-actions/auditd’: Permission denied
Thu Jan 26 12:57:03 AM CET 2023 Compressing the dump files
Core dump and information are being compressed in the background. When
complete, they can be found in the following location:
  /var/opt/mssql/log/core.sqlservr.01_26_2023_00_57_01.11449.tbz2
Initial setup of Microsoft SQL Server failed. Please consult the ERRORLOG
in /var/opt/mssql/log for more information.

Errorlog output:

2023-01-26 00:56:59.55 Server      Microsoft SQL Server 2019 (RTM-CU18) (KB5017593) - 15.0.4261.1 (X64)
        Sep 12 2022 15:07:06
        Copyright (C) 2019 Microsoft Corporation
        Express Edition (64-bit) on Linux (Rocky Linux 9.1 (Blue Onyx)) <X64>
2023-01-26 00:56:59.55 Server      UTC adjustment: 1:00
2023-01-26 00:56:59.55 Server      (c) Microsoft Corporation.
2023-01-26 00:56:59.55 Server      All rights reserved.
2023-01-26 00:56:59.55 Server      Server process ID is 392.
2023-01-26 00:56:59.55 Server      Logging SQL Server messages in file '/var/opt/mssql/log/errorlog'.
2023-01-26 00:56:59.55 Server      Registry startup parameters:
         -d /var/opt/mssql/data/master.mdf
         -l /var/opt/mssql/data/mastlog.ldf
         -e /var/opt/mssql/log/errorlog
2023-01-26 00:56:59.55 Server      Command Line Startup Parameters:
         --setup
         --reset-sa-password
2023-01-26 00:56:59.56 Server      SQL Server detected 1 sockets with 2 cores per socket and 4 logical processors per socket, 4 total logical processors; using 4 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2023-01-26 00:56:59.56 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2023-01-26 00:56:59.56 Server      Detected 12236 MB of RAM. This is an informational message; no user action is required.
2023-01-26 00:56:59.56 Server      Using conventional memory in the memory manager.
2023-01-26 00:56:59.56 Server      Page exclusion bitmap is enabled.
2023-01-26 00:56:59.57 Server      Buffer pool extension is not supported on Linux platform.
2023-01-26 00:56:59.57 Server      Buffer Pool: Allocating 1048576 bytes for 655360 hashPages.
2023-01-26 00:56:59.58 Server      Machine supports memory error recovery. SQL memory protection is enabled to recover from memory corruption.
2023-01-26 00:56:59.67 Server      Buffer pool extension is already disabled. No action is necessary.
2023-01-26 00:56:59.92 Server      Successfully initialized the TLS configuration. Allowed TLS protocol versions are ['1.0 1.1 1.2']. Allowed TLS ciphers are ['ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA'].
2023-01-26 00:56:59.94 Server      Query Store settings initialized with enabled = 1,
2023-01-26 00:56:59.95 Server      The maximum number of dedicated administrator connections for this instance is '1'
2023-01-26 00:56:59.95 Server      Node configuration: node 0: CPU mask: 0x000000000000000f:0 Active CPU mask: 0x000000000000000f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2023-01-26 00:56:59.96 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2023-01-26 00:56:59.97 Server      In-Memory OLTP initialized on lowend machine.

Kind regards

Upgrades are not supported. I would highly recommend doing a clean install of 9.1 on another machine and try to setup mssql again.

Thank you for your comment

Sadly, there are numourus “guides” out there who do not warn or anything, they dont even suggest the backup :cry:
Meaning (which is also my own fault ofcourse) that I am now stuck without a backup

Would there be any way to revert to 8.7?
If not, I suppose I’ll try 9.1 fresh install

Kind regards

Also, I’m wondering, big companies who use Rocky 8.7, will they only be able to use rocky 9+ with a fresh install? :thinking:

I remember upgrading Centos7 to Centos8 with no need for fresh install

You cannot downgrade.

Upgrades have not been supported, even for CentOS in the past. Companies that use Enterprise Linux (this means RHEL, CentOS, Rocky, and so on) in any large capacity will have automation and configuration management to prepare for new versions of a release. If a company is doing upgrades, they likely are running RHEL, where Red Hat has a form of support for upgraded systems. Even so, upgrades are not without fault or issues. This is why we recommend clean installations over upgrades.

1 Like

It could have been good to check Microsoft documentation first too: RHEL: Install SQL Server on Linux - SQL Server | Microsoft Learn

that said, not entirely sure what version of MSSQL you had installed in the first place, was it 2019? If so, perhaps there would be more success with SQL Server 2022. Either way, do it on a fresh machine so as not to destroy your failed upgrade - especially since you don’t have a backup.

Yes, guides don’t suggest backups, but it should be pretty normal that to do an upgrade or something blind without a backup is not a good idea. A backup should always be done before attempting anything that could potentially be destructive.

Otherwise you’ll have to leave it on Rocky 8 until Microsoft say they support EL9.

@Imstuck I’m having the same problem on Rocky 9. Did you ever find a solution to this, or did you “downgrade” to Rocky 8?

Hi Curt, I just re-installed my Rocky Linux 8 and learned my lesson :cry:

God speed my friend

Thanks. I gave up on trying to get SQL Server to work on Rocky 9. Instead, I was able to get it to work on my MacBook M1 in emulation mode following these steps: https://www.nocentino.com/posts/2023-01-02-running-sql-server-apple-silicon/. This is good enough for my purposes. It’s functional, but not highly performant. Good luck, my friend.

Just out of curiosity, which version of Sql server did your try? @iwalker suggested Sql server 2022, but It was not an option for me at the time

I tried 2022 and 2019. I couldn’t get either to work on Rocky 9.

sad to hear!
Kind of strange that after 5 months it is still not supported :cry:

Apparently Microsoft doesn’t care about supporting SQL Server on Rocky Linux, nor do they care about supporting it on Linux running on ARM. This attitude just drives more people away from SQL Server.

They support RHEL8, so it will work with Rocky 8. There is no difference with Ubuntu. Ubuntu 22.04 was released, but you cannot install MSSQL 2019 or 2022 on it. Only on Ubuntu 20.04.

I don’t see any problem with this when Rocky 8 is supported to 2029 like RHEL8 is. I’d be more worried about Ubuntu 20.04 which ends in 2025.

1 Like

Wild! I pray for the people on Ubuntu 20.04
Do you have any idea if Debian supports it ? (and only Ubuntu has problems with it)

No, because on Debian you would install from Ubuntu repositories because there is no MSSQL Server for Debian.

The other alternatives are to run mssql-server in docker/podman containers, then it doesn’t matter if it’s Rocky 9/RHEL9.

1 Like

Thanks for your information :slight_smile:
Do you have any thoughts if they are planning to support it on RHEL9?

I’m guessing it will arrive at some point :slight_smile:

Any thought on when this would happen? ^.^

You would have to ask Microsoft.