meza icon indicating copy to clipboard operation
meza copied to clipboard

MS SQLSRV drivers have "ignore_errors"

Open jamesmontalvo3 opened this issue 3 years ago • 0 comments

This only impacts installs with install_ms_sql_driver: true, which is done to enable the Microsoft SQL Server drivers for PHP. MS SQL is not used for MediaWiki itself. This driver is used on some installations to interact with third-party databases.

5b8a3e4865c53a225de621841b3a0997e027b264 changed from doing

- name: Install sqlsrv and pdo_sqlsrv PECL packages
  pear:
    name: "{{ item }}"
    state: present
  with_items:
    - pecl/sqlsrv
    - pecl/pdo_sqlsrv

to using the pecl install <package> command directly. This was because the Ansible PEAR module was throwing errors even when the correct version of the package was already installed. Furthermore, when it got this error it appeared to think that the package wasn't installed, and it seems that it attempted to build it from source again. Building from source worked, but was unnecessary, and the command failed either due to a conflict with rebuilding the package or due to the original error.

Changing to pecl install <package> showed that the pecl command had a non-zero return code (an error) when the package was already installed. This is probably the cause of the initial error in the Ansible module (it runs install, gets an error, then attempts to build from source).

This behavior must have changed recently, since this command has worked for years.

PECL is annoying. Who uses it anymore. An alternative may be to use the Remi repo (where we could also get PHP versions) and install with sudo yum install php-sqlsrv php-pdo_sqlsrv.

The big issue with the new change is that it uses ignore_errors to get around the problem. This is not ideal.

jamesmontalvo3 avatar Nov 15 '21 22:11 jamesmontalvo3