I broke Usermin - complaining about Perl execution failed Undefined subroutine &mailbox::open_dbm_db

4 posts / 0 new
Last post
#1 Thu, 02/11/2010 - 20:47
wazzanz

I broke Usermin - complaining about Perl execution failed Undefined subroutine &mailbox::open_dbm_db

Hi all,

I've recently shifted /usr and /var onto bigger partitions of their own right. (I did this taking the server down to single user mode, moving all the files, remounting the appropriate mount points and then bringing the box back up).

Everything was running fine ... until I tried to access Usermin - now it complains if I go to the read mail link (the one that our clients use all the time):

Perl execution failed

Undefined subroutine &mailbox::open_dbm_db called at ./mailbox-lib.pl line 1446.

I'm positive that I've slipped somewhere with the perl libraries or something - but I cannot for the life of me work out what's wrong.

I've tried to completely remove and reinstall usermin (via apt-get remove --purge, then apt-get install usermin)

I've also tried to force a reinstall of perl and it's associated libraries (obviously I can't remove perl, as wemin is working properly).

This is on a server:

debian 5.0 webmin 3.76.gpl usermin 1.430

Please help!

Thu, 02/11/2010 - 21:20
andreychek

Howdy,

Do you see any other errors in the Usermin log, in /var/usermin/miniserv.error?

Also, if you look at the file "/usr/share/usermin/mailbox/folders-lib.pl", on line 2936, do you see the following code:

sub open_dbm_db
{
local ($hash, $file, $mode) = @_;
eval "use SDBM_File";
dbmopen(%$hash, $file, $mode);

You should see the beginning of the "open_dbm_db" sub there, which is what your error says it's not seeing.

-Eric

Thu, 02/11/2010 - 21:28 (Reply to #2)
wazzanz

Hi there,

Thanks for the speedy response!

in the file mentioned I see the same:

2936 sub open_dbm_db 2937 { 2938 local ($hash, $file, $mode) = @_; 2939 eval "use SDBM_File"; 2940 dbmopen(%$hash, $file, $mode);

If I look at the openfiles on another virtualmin install i can see a bunch of perl libraries being opened, but I don't see the same thing on this mail server (lsof | grep )

Sorry - forgot to mention, I can see tthe following errors in the error file - one with the same message as mentioned above and the others:

Error: Module mailbox does not exist Failed to initialize SSL connection

Warren.

Sun, 02/14/2010 - 15:53 (Reply to #3)
wazzanz

Hi there,

I've found the source of the problem - there was a change to the permissions structure on the file system, and the group and other read permissions had been dropped off the /usr/share directories.

This is the reason that the system was unable to see the required subroutines.

Thanks again, Warren.

Topic locked