[rt-users] Undefined Subroutine (was: CALLING EXTERNALAUTH TESTERS - v0.07_01 nowavailable.)

Robert Munsch Munsch at phillycarshare.org
Fri Nov 14 16:50:03 EST 2008


I've checked and I'm not sure what's going wrong, still. Basic config
seems OK.  ExternalAuth is in place and fully (re-)installed.  LDAP.pm
exists and is properly readable by the webserver:

 	root at data:/opt/rt3/var/log# ls -lah
/opt/rt3/local/plugins/RT-Authen-
ExternalAuth/lib/RT/Authen/ExternalAuth/
	total 44K
	drwxr-xr-x 2 www-data www-data 4.0K 2008-11-14 16:37 .
	drwxr-xr-x 3 www-data www-data 4.0K 2008-11-14 16:37 ..
	-r--r--r-- 1 www-data www-data  13K 2008-11-06 13:20 DBI.pm
	-r--r--r-- 1 www-data www-data  18K 2008-11-06 13:36 LDAP.pm

And yet I still get

Undefined subroutine &RT::Authen::ExternalAuth::UserExists called at
/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAut
h/autohandler/Auth line 39.

When I attempt any kind of login.  Line 39 is the last line in this
block:

        # Unless we have loaded a valid user with a UserID
        # check if user exists externally and autocreate if it does
        unless ($session{'CurrentUser'}->Id) {
            if(RT::Authen::ExternalAuth::UserExists($user)){

and my debug-level logs for this show the following (password is bogus -
what I actually typed, just not a real password):

---
[Fri Nov 14 21:37:54 2008] [error]: Working around bug in RT and
reloading RT::User
(/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAu
th/autohandler/Auth:12)
Trace begun at /opt/rt3/bin/../lib/RT.pm line 289
Log::Dispatch::__ANON__('Log::Dispatch=HASH(0xc010f90)', 'Working around
bug in RT and reloading RT::User') called at
/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAut
h/autohandler/Auth line 12
HTML::Mason::Commands::__ANON__('pass', '65dfg', 'user', 'munsch')
called at /usr/local/share/perl/5.8.8/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0xc8
e2c60)', 'pass', '65dfg', 'user', 'munsch') called at
/usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line 1279
eval {...} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line
1274
HTML::Mason::Request::comp(undef, undef, 'pass', '65dfg', 'user',
'munsch') called at /opt/rt3/bin/../lib/RT/Interface/Web/Request.pm line
176
RT::Interface::Web::Request::callback('RT::Interface::Web::Request=HASH(
0xc9081e0)', 'pass', '65dfg', 'user', 'munsch', 'CallbackName', 'Auth')
called at /opt/rt3/share/html/autohandler line 253
HTML::Mason::Commands::__ANON__('pass', '65dfg', 'user', 'munsch')
called at /usr/local/share/perl/5.8.8/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0xc7
dc4d0)', 'pass', '65dfg', 'user', 'munsch') called at
/usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line 1279
eval {...} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line
1274
HTML::Mason::Request::comp(undef, undef, undef, 'pass', '65dfg', 'user',
'munsch') called at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm
line 473
eval {...} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line 473
eval {...} at /usr/local/share/perl/5.8.8/HTML/Mason/Request.pm line 425
HTML::Mason::Request::exec('RT::Interface::Web::Request=HASH(0xc9081e0)'
) called at /usr/local/share/perl/5.8.8/HTML/Mason/ApacheHandler.pm line
168
HTML::Mason::Request::ApacheHandler::exec('RT::Interface::Web::Request=H
ASH(0xc9081e0)') called at
/usr/local/share/perl/5.8.8/HTML/Mason/ApacheHandler.pm line 825
HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=H
ASH(0x1171890)', 'Apache2::RequestRec=SCALAR(0xc923dd0)') called at
/opt/rt3/bin/webmux.pl line 148
eval {...} at /opt/rt3/bin/webmux.pl line 148
RT::Mason::handler('Apache2::RequestRec=SCALAR(0xc923dd0)') called at -e
line 0
eval {...} at -e line 0

---

Any help or pointing in any kind of direction at all would be
appreciated.  I don't understand what the logs are trying to tell me.
LDAP.pm is there, ::UserExists is called by the code, but it complains
there's no such animal.  This is a 5-minute-old fresh install of 7_01.

Clearly it's working for most people - what's so special about my
::UserExists call..?

Halp!,

Rob


-----Original Message-----
From: mpeac at jennic.com [mailto:mpeac at jennic.com] On Behalf Of Mike
Peachey
Sent: Thursday, November 13, 2008 4:39 AM
To: Robert Munsch
Cc: RT Users
Subject: Re: [rt-users] CALLING EXTERNALAUTH TESTERS - v0.07_01
nowavailable.

Robert Munsch wrote:
> Still experiencing this.  Not sure what's going on.  Any attempt at
> login for any user - root or otherwise - gets this:
> 
> Undefined subroutine &RT::Authen::ExternalAuth::UserExists called at
>
/opt/rt3/local/plugins/RT-Authen-ExternalAuth/html/Callbacks/ExternalAut
> h/autohandler/Auth line 39.
> 
> The difference being only that if I tried logging in as a user that
> doesn't exist yet and should be looked up in AD, refreshing the page
> gives me the login screen again: and if I tried logging in as root, it
> says line 89 instead of 39 and refreshing the page gives me RT at a
> glance successfully.
> 
> Very confused.

I would really like to help, but I'm having difficulty seeing where the
problem might be. It's very much a perl/systemconfiguration/rt-core
problem - I'm much better on ExternalAuth issues.

>> You might want to try, as the user your web server runs as,
>> not root:
>> perl  -I/opt/rt3/local/plugins/RT-Authen-ExternalAuth/lib -
> MRT::Authen::ExternalAuth -e1
> 
> Did that.  No apparent output: just hangs until I ctrl-C.

This could be telling.. though I'm not sure what of.

I know this has probably been mentioned before, but just in case it's
worth at least suggesting:

chown -R apache:apache /opt/rt3

(or whatever is your web user, web group and $RTHOME).
-- 
Kind Regards,

__________________________________________________

Mike Peachey, IT
Tel: +44 114 281 2655
Fax: +44 114 281 2951
Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
Comp Reg No: 3191371 - Registered In England
http://www.jennic.com
__________________________________________________



More information about the rt-users mailing list