RT 4.4.2 on a new server upgrade woes

Good day to everyone.

I have a situation where I have a legacy physical system that has RT 3.6.1/Debian 5.0.1 residing on it, and need to migrate it to a new VM targeting RT 4.4.1/Debian 9.9.

I have successfully installed MariaDB and restored the database, and installed apache2. I also included the requisite support packages (rt4-apache2, rt4-clients, rt4-db-mysql) as well as request-tracker4. Following the installation, I restored a backup of the database on the new server, granted the service user permissions to access it, and then ran the upgrade script:

/usr/sbin/rt-setup-database --action upgrade --skip-create --upgrade-from 3.6.1 --upgrade-to 4.4.1

When I attempt to access the web UI, I receive a 500 Internal error, and the apache error log states:

[Thu May 23 11:34:27.435432 2019] [perl:error] [pid 1688:tid 140609713043200] [client 204.36.23.206:63809] Error while loading /usr/share/request-tracker4/libexec/rt-server: DBD::mysql::db prepare failed: handle 2 is owned by thread 55dec7dadbb0 not current thread 55dec8e97460 (handles can’t be shared between threads and your driver may need a CLONE method added) at /usr/local/share/perl/5.24.1/DBIx/SearchBuilder/Handle.pm line 549.\n

Any ideas? I have also attempted to piece-meal the upgrade (3.6.1 -to 3.7.87, run the schema upgrade, and then go the rest of the way to 4.4.1), but no luck and the same error.

I appreciate the help.

Did you ever get a resolution to this error? I’m running into the exact same error with an identical upgrade path. Happened across your post and of course, the one thread I found that fits my problem doesn’t have any replies. Thanks in advance!

I’ve not had this issue myself, but throwing out an idea: have you tried setting the ThreadsPerChild setting in Apache to (temporarily) 1, so there aren’t multiple threads to share the DB handle across?

Also, check if you have SELinux enforcing. Weird stuff like this often seems to be a result of SELinux getting involved. Check the audit.log to see if there’s anything appearing in there.