Confirmed the iRODS server wouldn't stand up due to it having references to old ODBC information.
Updated the database stanza in /etc/irods/server_config.json to use MariaDB instead of MySQL ANSI.
Launched the iRODS server.
Confirmed the driver was being picked up by looking at the contents of .odbc.ini
.odbc.ini in the service account's home directory is overwritten with information from server_config.json every time the iRODS server is started
.odbc.ini will always use the driver name defined by server_config.json
Ran echo data | istream write foo and it succeeded.
ils and istream read foo printed the correct information to the terminal
Ran iput version.json goo and that succeeded, but resulted in CAT_SUCCESS_BUT_WITH_NO_INFO being printed to the terminal.
iget goo - does not report an error
Ran irm foo and that succeeded, but resulted in the same message that iput generated.
Running irmtrash and irm -f did not cause the message to appear
So something is different. While the operations appear to work, some operations cause CAT_SUCCESS_BUT_WITH_NO_INFO to be returned. It could be that the .odbc.ini in the service account's home directory needs some MariaDB specific options.
Further testing would indicate that this is an issue with the mariadb ODBC driver itself, as using the mysql ODBC driver with a mariadb server works just fine.
[ ] 4-3-stable
Investigate
The following was taken from https://github.com/irods/irods/pull/7284#issuecomment-1720215248. Please investigate.
I've confirmed (through manual testing) that the MariaDB ODBC connector works for Almalinux 8, sort of.
The case I'm describing is:
I confirmed this by doing the following:
dnf repoquery --requires irods-database-plugin-mysql
to confirm the mariadb-connector-odbc package is listed as a dependency.find /usr/lib64 -name libmaodbc.so
to confirm the shared library for the ODBC connector was installed./etc/odbcinst.ini
in case I screwed something up./etc/odbcinst.ini
with the following:/etc/irods/server_config.json
to useMariaDB
instead ofMySQL ANSI
..odbc.ini
.odbc.ini
in the service account's home directory is overwritten with information fromserver_config.json
every time the iRODS server is started.odbc.ini
will always use the driver name defined byserver_config.json
echo data | istream write foo
and it succeeded.ils
andistream read foo
printed the correct information to the terminaliput version.json goo
and that succeeded, but resulted inCAT_SUCCESS_BUT_WITH_NO_INFO
being printed to the terminal.iget goo -
does not report an errorirm foo
and that succeeded, but resulted in the same message thatiput
generated.irmtrash
andirm -f
did not cause the message to appearSo something is different. While the operations appear to work, some operations cause
CAT_SUCCESS_BUT_WITH_NO_INFO
to be returned. It could be that the.odbc.ini
in the service account's home directory needs some MariaDB specific options.