Installation

Job for webwork2.service failed doing upgrade to 2.18

Job for webwork2.service failed doing upgrade to 2.18

by Larry Riddle -
Number of replies: 15

I followed all the steps in the recent release notes for 2.18 without any issues until the very last step to restart Apache when I got the following message. I have included the results of running the two suggested commands for details. Any suggestions on what to do to resolve this?

(Edited Note: I just realized we are running Ubuntu 20.04, not 22.04, so that may be a factor)

wwadmin@tailgate:/opt/webwork/webwork2/conf$ sudo systemctl start webwork2
Job for webwork2.service failed because the control process exited with error code.
See "systemctl status webwork2.service" and "journalctl -xe" for details.

wwadmin@tailgate:/opt/webwork/webwork2/conf$ systemctl status webwork2.service
● webwork2.service - webwork2
     Loaded: loaded (/etc/systemd/system/webwork2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2023-07-25 15:16:01 EDT; 1min 7s ago
    Process: 1393813 ExecStart=/usr/bin/hypnotoad /opt/webwork/webwork2/bin/webwork2 (code=exited, status=255/EXCEPTION)

Jul 25 15:16:01 tailgate hypnotoad[1393813]: BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator/Login.pm>
Jul 25 15:16:01 tailgate hypnotoad[1393813]: Compilation failed in require at /opt/webwork/webwork2/lib/WeBWorK.pm line 50.
Jul 25 15:16:01 tailgate hypnotoad[1393813]: BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/WeBWorK.pm line 50.
Jul 25 15:16:01 tailgate hypnotoad[1393813]: Compilation failed in require at /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm line 27.
Jul 25 15:16:01 tailgate hypnotoad[1393813]: BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm line 27.
Jul 25 15:16:01 tailgate hypnotoad[1393813]: Compilation failed in require at (eval 90) line 1.
Jul 25 15:16:01 tailgate hypnotoad[1393813]: Compilation failed in require at (eval 88) line 1.
Jul 25 15:16:01 tailgate systemd[1]: webwork2.service: Control process exited, code=exited, status=255/EXCEPTION
Jul 25 15:16:01 tailgate systemd[1]: webwork2.service: Failed with result 'exit-code'.
Jul 25 15:16:01 tailgate systemd[1]: Failed to start webwork2.


wwadmin@tailgate:/opt/webwork/webwork2/conf$ journalctl -xe
Jul 25 15:18:57 tailgate multipathd[666]: sda: add missing path
Jul 25 15:18:57 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:18:57 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:18:57 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:02 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:02 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:02 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:02 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:07 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:07 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:07 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:07 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:12 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:12 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:12 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:12 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:17 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:17 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:17 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:17 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:22 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:22 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:22 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:22 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:27 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:27 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:27 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:27 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:32 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:32 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:32 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:32 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory
Jul 25 15:19:37 tailgate multipathd[666]: sda: add missing path
Jul 25 15:19:37 tailgate multipathd[666]: sda: failed to get udev uid: Invalid argument
Jul 25 15:19:37 tailgate multipathd[666]: sda: failed to get sysfs uid: Invalid argument
Jul 25 15:19:37 tailgate multipathd[666]: sda: failed to get sgio uid: No such file or directory

In reply to Larry Riddle

Re: Job for webwork2.service failed doing upgrade to 2.18

by Larry Riddle -
As noted above, I realized we are running Ubuntu 20.04, not 22.04, after going through the upgrade steps. I re-did the steps that said for versions of Ubuntu before 22.04 to install some of the perl packages using cpan. I got the same error message as before, however, when running "sudo systemctl start webwork2".
In reply to Larry Riddle

Re: Job for webwork2.service failed doing upgrade to 2.18

by Danny Glin -

The most common reasons I have seen for WeBWorK not starting are either a missing perl package or a missing config file.

Try manually starting hypnotoad using the command

hypnotoad -f /opt/webwork/webwork2/bin/webwork2

This may give you a more descriptive error message.

In reply to Danny Glin

Re: Job for webwork2.service failed doing upgrade to 2.18

by Larry Riddle -

check_modules.pl shows no issues with missing perl packages. As far as I can tell, there are no missing config file.

Here is the content of the conf directory

-rw-rw-r-- 1 wwadmin wwadmin 10452 Jul 26 13:30 webwork2.mojolicious.yml
-rw-rw-r-- 1 wwadmin wwadmin 19693 Jul 25 21:49 site.conf
-rw-rw-r-- 1 wwadmin wwadmin   403 Jul 25 15:15 webwork2.service
-rw-rw-r-- 1 wwadmin wwadmin  2420 Jul 25 15:14 webwork2.apache2.4.conf
-rw-rw-r-- 1 wwadmin wwadmin 44580 Jul 25 15:05 localOverrides.compare
-rw-rw-r-- 1 wwadmin wwadmin 19693 Jul 25 15:03 site.conf.tmp
-rw-rw-r-- 1 wwadmin wwadmin 18344 Jul 25 14:41 site.conf.backup
-rw-rw-r-- 1 wwadmin wwadmin 32767 Jul 25 14:39 site.compare
-rw-rw-r-- 1 wwadmin wwadmin 10935 Jul 25 13:50 authen_LTI_1_1.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin  9615 Jul 25 13:50 authen_LTI_1_3.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin  9542 Jul 25 13:50 authen_LTI.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin 14110 Jul 25 13:50 database.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin 95457 Jul 25 13:50 defaults.config
-rw-rw-r-- 1 wwadmin wwadmin 28437 Jul 25 13:50 localOverrides.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin  4989 Jul 25 13:50 LTIConfigValues.config
-rw-rw-r-- 1 wwadmin wwadmin 10411 Jul 25 13:50 README.md
-rw-rw-r-- 1 wwadmin wwadmin 19624 Jul 25 13:50 site.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin  2420 Jul 25 13:50 webwork2.apache2.4.dist.conf
-rw-rw-r-- 1 wwadmin wwadmin   403 Jul 25 13:50 webwork2.dist.service
-rw-rw-r-- 1 wwadmin wwadmin   278 Jul 25 13:50 webwork2-job-queue.dist.service
-rw-rw-r-- 1 wwadmin wwadmin 10429 Jul 25 13:50 webwork2.mojolicious.dist.yml
-rw-rw-r-- 1 wwadmin wwadmin   940 Jul 25 13:50 webwork2.nginx.dist.conf
drwxrwxr-x 2 wwadmin wwadmin  4096 Jul 25 13:50 snippets
-rw-rw-r-- 1 wwadmin wwadmin 17528 Aug 17  2022 authen_LTI.conf
-rw-rw-r-- 1 wwadmin wwadmin 17527 Aug 17  2022 authen_LTI.conf_tmp
-rw-rw-r-- 1 wwadmin wwadmin 16445 Aug 17  2022 authen_LTI.conf.bak2022
-rw-rw-r-- 1 wwadmin wwadmin 10202 Aug 15  2022 webwork.apache2.4-config.bak3
-rw-rw-r-- 1 wwadmin wwadmin  2684 Aug 15  2022 authen_CAS.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin  2272 Aug 15  2022 authen_ldap.conf.dist
-rw-rw-r-- 1 wwadmin wwadmin 11787 Aug 15  2022 authen_LTI.conf.bak2021
-rw-rw-r-- 1 wwadmin wwadmin 18880 Aug 15  2022 localOverrides.conf
-rw-rw-r-- 1 wwadmin wwadmin 18563 Aug 15  2022 localOverrides.conf.bak
-rw-rw-r-- 1 wwadmin wwadmin 18160 Aug 15  2022 localOverrides.conf.bak1
-rw-rw-r-- 1 wwadmin wwadmin 18562 Aug 15  2022 localOverrides.conf.bak2021
-rw-rw-r-- 1 wwadmin wwadmin 17395 Aug 15  2022 localOverrides.conf.save
-rw-rw-r-- 1 wwadmin wwadmin 11930 Aug 15  2022 site.conf~
-rw-rw-r-- 1 wwadmin wwadmin 13581 Aug 15  2022 site.conf.bak
-rw-rw-r-- 1 wwadmin wwadmin  8532 Aug 15  2022 webwork.apache2.4-config.bak
-rw-rw-r-- 1 wwadmin wwadmin 10202 Aug 15  2022 webwork.apache2.4-config.bak2

Manually starting hypnotoad fails with the following messages.

Failed to evaluate module Parser: Undefined subroutine utf8::SWASHNEW called at /opt/webwork/pg/lib/Parser.pm line 109.
Compilation failed in require at (eval 474) line 1.
Failed to evaluate module Value: Undefined subroutine utf8::SWASHNEW called at /opt/webwork/pg/lib/Parser.pm line 109.
Compilation failed in require at (eval 474) line 1.
Failed to evaluate module Parser::Legacy: Can't call method "copy" on an undefined value at /opt/webwork/pg/lib/Parser/Legacy/LimitedNumeric.pm line 85.
Compilation failed in require at /opt/webwork/pg/lib/Parser/Legacy.pm line 6.
BEGIN failed--compilation aborted at /opt/webwork/pg/lib/Parser/Legacy.pm line 6.
Compilation failed in require at (eval 475) line 1.
Can't load application from file "/opt/webwork/webwork2/bin/webwork2": Can't locate object method "current" via package "Parser::Context" at /opt/webwork/pg/macros/PG.pl line 14.
BEGIN failed--compilation aborted at /opt/webwork/pg/lib/WeBWorK/PG/Translator.pm line 150.
Compilation failed in require at /opt/webwork/pg/lib/WeBWorK/PG.pm line 24.
BEGIN failed--compilation aborted at /opt/webwork/pg/lib/WeBWorK/PG.pm line 24.
Compilation failed in require at /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm line 52.
BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm line 52.
Compilation failed in require at /usr/local/share/perl/5.30.0/Mojo/Base.pm line 134.
BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator/Login.pm line 17.
Compilation failed in require at /opt/webwork/webwork2/lib/WeBWorK.pm line 50.
BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/WeBWorK.pm line 50.
Compilation failed in require at /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm line 27.
BEGIN failed--compilation aborted at /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm line 27.
Compilation failed in require at (eval 90) line 1.
Compilation failed in require at (eval 88) line 1.


In reply to Larry Riddle

Re: Job for webwork2.service failed doing upgrade to 2.18

by Danny Glin -

What version of perl are you running?  After googling the utf8::SWASHNEW error it sounds like there were some issues with perl 5.30 that aren't present in 5.31.6 our newer, but I don't entirely understand the details.

In reply to Danny Glin

Re: Job for webwork2.service failed doing upgrade to 2.18

by Larry Riddle -
"perl 5, version 30, subversion 0 (v5.30.0) built for x86_64-linux-gnu-thread-multi"

I'm going to have our IT network person upgrade the VM server to ubuntu 22.04 (or newer) and restore the server back to WW version 2.17 so I can restart the upgrade process over from the beginning. I can also ask him to make sure we have the latest perl version. Thanks for your help.
In reply to Larry Riddle

Re: Job for webwork2.service failed doing upgrade to 2.18

by Danny Glin -

WeBWorK 2.18 has been relatively well tested on Ubuntu 22.  In almost all cases the versions of packages included with the OS work well (including perl), other than the exceptions noted in the installation instructions.

In reply to Danny Glin

Re: Job for webwork2.service failed doing upgrade to 2.18

by Sean Fitzpatrick -

We've been really reluctant to upgrade our production server from Ubuntu 20.04 to 22.04.

Every time we've upgraded a machine in our Linux network (including my WW development server) something has gone wrong. For my development server, networking ended up such a mess that we just deleted the VM and started over. (I don't want to risk breaking our production VM to the point that it needs replacing.)

Not a WeBWorK problem, of course, but caution is advisable! If you can back up your WeBWorK installation before upgrading the OS, you should.

In reply to Sean Fitzpatrick

Re: Job for webwork2.service failed doing upgrade to 2.18

by Danny Glin -
My experience has also been that in-place OS upgrades don't always go well.  The nice thing about VMs is that they give you the ability to take a snapshot and/or make a copy so that you can revert if things don't go well.
In reply to Danny Glin

Re: Job for webwork2.service failed doing upgrade to 2.18

by Sean Fitzpatrick -
If it turns out that I'm not able to successfully upgrade Ubuntu from 20.04 to 22.04, is there a way to do a fresh OS install and port an existing WeBWorK database to the new install?
I'd like to upgrade, but on our production server I wouldn't want to lose all the existing course (the ones I've already set up for this fall, plus any course from last year that faculty still want access to).
In reply to Sean Fitzpatrick

Re: Job for webwork2.service failed doing upgrade to 2.18

by Arnold Pizer -

Look at

https://webwork.maa.org/wiki/Converting_the_webwork_database_from_the_latin1_to_the_utf8mb4_character_set#Methodology

for information on transferring courses.  Obviously, the main purpose of the documentation is different but it covers various methods.   If you don't have too many courses, the archive/unarchive method may be just as fast and safer.

In reply to Sean Fitzpatrick

Re: Job for webwork2.service failed doing upgrade to 2.18

by Danny Glin -
You can do a mysqldump of the entire webwork database, and make an archive of the /opt/webwork/courses directory. If you copy both of these things to a new server (i.e. restore the DB dump and untar the courses archive), then you should have a clone of your whole WW setup. If you use a newer version of the WW code, then you'll have to upgrade the courses before things will work.
In reply to Danny Glin

Re: Job for webwork2.service failed doing upgrade to 2.18

by Sean Fitzpatrick -

Great, thanks.

I've got a second server (for PreTeXt stuff) that's already on 22.04 and WW 2.18.

I think it's going to be much easier to clone that VM and transfer over the data than it is to upgrade the current VM.

In reply to Sean Fitzpatrick

Re: Job for webwork2.service failed doing upgrade to 2.18

by Larry Riddle -
I'm still trying to upgrade our development WeBWorK VM from 2.17 to 2.18. I finally got our network IT guy (yes, we have just one!) to upgrade the VM to Ubuntu 22.04 LTS and Perl 5.34.0. Running check_modules.pl shows all necessary programs/modules are present. I was able to now successfully run the job for webwork2.service. But when I try to visit WeBWorK on the web, I'm now getting the following error messages which I really don't understand. This was an upgrade from 2.17 which was successfully using MariaDB, so I not sure why "install_driver(MariaDB) failed" unless the Ubuntu/Perl upgrades messed that up. I'm also not sure how to "install the DBD::MariaDB module". Any help with deciphering what is going wrong and how to fix it would be greatly appreciated.

Error messages

install_driver(MariaDB) failed: Can't locate DBD/MariaDB.pm in @INC (you may need to install the DBD::MariaDB module) (@INC contains: /opt/webwork/pg/lib /opt/webwork/webwork2/lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at (eval 903) line 3. Context: 1: % use WeBWorK::Utils::CourseManagement qw(listCourses); 2: % 3: % my $coursesDir = $ce->{webworkDirs}{courses}; 4: % my @courseIDs = listCourses($ce); 5: % 6:

<%= maketext('Welcome to WeBWorK!') %>

7: % 8: % if ((grep { $_ eq 'admin' } @courseIDs) && !-f "$coursesDir/admin/hide_directory") { Traceback (most recent call first): File "(eval 903)", line 3, in "DBI::_firesafe" File "/usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm", line 791, in "DBI" File "/usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm", line 660, in "DBI" File "/opt/webwork/webwork2/lib/WeBWorK/Utils/CourseManagement.pm", line 92, in "WeBWorK::Utils::CourseManagement" File "template ContentGenerator/Home.html.ep", line 4, in "Mojo::Template::Sandbox::17059843715ca081ee23d50c7c661e29" File "/usr/share/perl5/Mojo/Template.pm", line 160, in "Mojo::Template" File "/usr/share/perl5/Mojo/Template.pm", line 160, in "Mojo::Template" File "/usr/share/perl5/Mojolicious/Plugin/EPLRenderer.pm", line 18, in "Mojolicious::Plugin::EPLRenderer" File "/usr/share/perl5/Mojolicious/Plugin/EPRenderer.pm", line 39, in "Mojolicious::Plugin::EPRenderer" File "/usr/share/perl5/Mojolicious/Renderer.pm", line 225, in "Mojolicious::Renderer" File "/usr/share/perl5/Mojolicious/Renderer.pm", line 106, in "Mojolicious::Renderer" File "/usr/share/perl5/Mojolicious/Controller.pm", line 147, in "Mojolicious::Controller" File "/opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm", line 472, in "WeBWorK::ContentGenerator" File "/opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm", line 146, in "WeBWorK::ContentGenerator" File "/opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm", line 107, in "WeBWorK::ContentGenerator" File "/usr/share/perl5/Mojolicious.pm", line 190, in "Mojolicious" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm", line 162, in "Mojolicious::WeBWorK" File "/opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm", line 142, in "Mojolicious::WeBWorK" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 18, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious/Routes.pm", line 88, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 161, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 44, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 46, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious/Routes.pm", line 52, in "Mojolicious::Routes" File "/usr/share/perl5/Mojolicious.pm", line 125, in "Mojolicious" File "/usr/share/perl5/Mojolicious.pm", line 134, in "Mojolicious" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious.pm", line 200, in "Mojolicious" File "/usr/share/perl5/Mojolicious.pm", line 200, in "Mojolicious" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious/Plugins.pm", line 18, in "Mojolicious::Plugins" File "/usr/share/perl5/Mojolicious.pm", line 139, in "Mojolicious" File "/usr/share/perl5/Mojo/Server.pm", line 70, in "Mojo::Server" File "/usr/share/perl5/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter" File "/usr/share/perl5/Mojo/Server/Daemon.pm", line 103, in "Mojo::Server::Daemon" File "/usr/share/perl5/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter" File "/usr/share/perl5/Mojo/Transaction/HTTP.pm", line 60, in "Mojo::Transaction::HTTP" File "/usr/share/perl5/Mojo/Server/Daemon.pm", line 222, in "Mojo::Server::Daemon" File "/usr/share/perl5/Mojo/Server/Daemon.pm", line 202, in "Mojo::Server::Daemon" File "/usr/share/perl5/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter" File "/usr/share/perl5/Mojo/IOLoop/Stream.pm", line 109, in "Mojo::IOLoop::Stream" File "/usr/share/perl5/Mojo/IOLoop/Stream.pm", line 57, in "Mojo::IOLoop::Stream" File "/usr/share/perl5/Mojo/Reactor/Poll.pm", line 141, in "Mojo::Reactor::Poll" File "/usr/share/perl5/Mojo/Reactor/Poll.pm", line 141, in "Mojo::Reactor::Poll" File "/usr/share/perl5/Mojo/Reactor/EV.pm", line 54, in "Mojo::Reactor::EV" File "/usr/share/perl5/Mojo/Reactor/EV.pm", line 32, in "Mojo::Reactor::EV" File "/usr/share/perl5/Mojo/Reactor/EV.pm", line 32, in "Mojo::Reactor::EV" File "/usr/share/perl5/Mojo/IOLoop.pm", line 134, in "Mojo::IOLoop" File "/usr/share/perl5/Mojo/Server/Prefork.pm", line 152, in "Mojo::Server::Prefork" File "/usr/share/perl5/Mojo/Server/Prefork.pm", line 93, in "Mojo::Server::Prefork" File "/usr/share/perl5/Mojo/Server/Prefork.pm", line 78, in "Mojo::Server::Prefork" File "/usr/share/perl5/Mojo/Server/Hypnotoad.pm", line 74, in "Mojo::Server::Hypnotoad" File "/usr/local/bin/hypnotoad", line 14, in "main" Perhaps the DBD::MariaDB perl module hasn't been fully installed, or perhaps the capitalisation of 'MariaDB' isn't right. Available drivers: DBM, ExampleP, File, Gofer, Mem, Proxy, SQLite, Sponge, mysql. at /opt/webwork/webwork2/lib/WeBWorK/Utils/CourseManagement.pm line 92.

Context

87: my $dbh = DBI->connect(
88: $ce->{database_dsn},
89: $ce->{database_username},
90: $ce->{database_password},
91: {
92: PrintError => 0,
93: RaiseError => 1,
94: },
95: );
96:
97: my $dbname = ${ce}->{database_name};

Call stack

in Mojo::Template::__ANON__ called at line 289 of /usr/lib/x86_64-linux-gnu/perl-base/Carp.pm
in Carp::croak called at line 815 of /usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm
in DBI::install_driver called at line 660 of /usr/lib/x86_64-linux-gnu/perl5/5.34/DBI.pm
in DBI::connect called at line 92 of /opt/webwork/webwork2/lib/WeBWorK/Utils/CourseManagement.pm
in WeBWorK::Utils::CourseManagement::listCourses called at line 4 of template ContentGenerator/Home.html.ep
in Mojo::Template::Sandbox::17059843715ca081ee23d50c7c661e29::__ANON__ called at line 160 of /usr/share/perl5/Mojo/Template.pm
in (eval) called at line 160 of /usr/share/perl5/Mojo/Template.pm
in Mojo::Template::process called at line 18 of /usr/share/perl5/Mojolicious/Plugin/EPLRenderer.pm
in Mojolicious::Plugin::EPLRenderer::_render called at line 39 of /usr/share/perl5/Mojolicious/Plugin/EPRenderer.pm
in Mojolicious::Plugin::EPRenderer::__ANON__ called at line 225 of /usr/share/perl5/Mojolicious/Renderer.pm
in Mojolicious::Renderer::_render_template called at line 106 of /usr/share/perl5/Mojolicious/Renderer.pm
in Mojolicious::Renderer::render called at line 147 of /usr/share/perl5/Mojolicious/Controller.pm
in Mojolicious::Controller::render called at line 472 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm
in WeBWorK::ContentGenerator::content called at line 146 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm
in (eval) called at line 107 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm
in WeBWorK::ContentGenerator::go called at line 190 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::_action called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 162 of /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm
in (eval) called at line 142 of /opt/webwork/webwork2/lib/Mojolicious/WeBWorK.pm
in Mojolicious::WeBWorK::__ANON__ called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 18 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::emit_chain called at line 88 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::_action called at line 161 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::_controller called at line 44 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::continue called at line 46 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::continue called at line 52 of /usr/share/perl5/Mojolicious/Routes.pm
in Mojolicious::Routes::dispatch called at line 125 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::dispatch called at line 134 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::__ANON__ called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 200 of /usr/share/perl5/Mojolicious.pm
in (eval) called at line 200 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::_exception called at line 15 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::__ANON__ called at line 18 of /usr/share/perl5/Mojolicious/Plugins.pm
in Mojolicious::Plugins::emit_chain called at line 139 of /usr/share/perl5/Mojolicious.pm
in Mojolicious::handler called at line 70 of /usr/share/perl5/Mojo/Server.pm
in Mojo::Server::__ANON__ called at line 15 of /usr/share/perl5/Mojo/EventEmitter.pm
in Mojo::EventEmitter::emit called at line 103 of /usr/share/perl5/Mojo/Server/Daemon.pm
in Mojo::Server::Daemon::__ANON__ called at line 15 of /usr/share/perl5/Mojo/EventEmitter.pm
in Mojo::EventEmitter::emit called at line 60 of /usr/share/perl5/Mojo/Transaction/HTTP.pm
in Mojo::Transaction::HTTP::server_read called at line 222 of /usr/share/perl5/Mojo/Server/Daemon.pm
in Mojo::Server::Daemon::_read called at line 202 of /usr/share/perl5/Mojo/Server/Daemon.pm
in Mojo::Server::Daemon::__ANON__ called at line 15 of /usr/share/perl5/Mojo/EventEmitter.pm
in Mojo::EventEmitter::emit called at line 109 of /usr/share/perl5/Mojo/IOLoop/Stream.pm
in Mojo::IOLoop::Stream::_read called at line 57 of /usr/share/perl5/Mojo/IOLoop/Stream.pm
in Mojo::IOLoop::Stream::__ANON__ called at line 141 of /usr/share/perl5/Mojo/Reactor/Poll.pm
in (eval) called at line 141 of /usr/share/perl5/Mojo/Reactor/Poll.pm
in Mojo::Reactor::Poll::_try called at line 54 of /usr/share/perl5/Mojo/Reactor/EV.pm
in Mojo::Reactor::EV::__ANON__ called at line 32 of /usr/share/perl5/Mojo/Reactor/EV.pm
in (eval) called at line 32 of /usr/share/perl5/Mojo/Reactor/EV.pm
in Mojo::Reactor::EV::start called at line 134 of /usr/share/perl5/Mojo/IOLoop.pm
in Mojo::IOLoop::start called at line 152 of /usr/share/perl5/Mojo/Server/Prefork.pm
in Mojo::Server::Prefork::_spawn called at line 93 of /usr/share/perl5/Mojo/Server/Prefork.pm
in Mojo::Server::Prefork::_manage called at line 78 of /usr/share/perl5/Mojo/Server/Prefork.pm
in Mojo::Server::Prefork::run called at line 74 of /usr/share/perl5/Mojo/Server/Hypnotoad.pm
in Mojo::Server::Hypnotoad::run called at line 14 of /usr/local/bin/hypnotoad
In reply to Larry Riddle

Re: Job for webwork2.service failed doing upgrade to 2.18

by Glenn Rice -
If you upgraded Ubuntu to version 22.04, then you will need to install DBD::MariaDB from cpan.

The libdbd-mariadb-perl package is not building for Ubuntu 22.04. This is a bug that I was hoping would be fixed by now. See https://bugs.launchpad.net/ubuntu/+source/libdbd-mariadb-perl/+bug/1969911.

There are instructions on how to install from cpan in the WeBWorK 2.18 installation instructions. See https://webwork.maa.org/wiki/Installation_Manual_for_2.18_on_Ubuntu#Install_and_Testing_MariaDB.
In reply to Glenn Rice

Re: Job for webwork2.service failed doing upgrade to 2.18

by Larry Riddle -

Thanks, Glenn. The WeBWorK 2.18 installation instructions for MariaDB resolved that error message.