RTIR - Installation Issue - YAML.pm path missing in @INC at Apache Startup

Hi all,

Briefly - This post asks for help with an installation issue with RTIR 2.4.1.

I have a:
CentOS 5.3 server with…

RT v 3.8.2 installed, configured and working
RTFM v 2.4.1 installed, configured and working
RTIR v 2.4.1 (“perl Makefile.PL” reports all ok - “make install” succeeds)

When I enable the RT:IR plugin in RT_SiteConfig.pm - apache fails to start with the following error:

[Mon May 11 11:15:27 2009] [error] Can’t locate YAML.pm in @INC (@INC contains: /opt/rt3/bin/…/local/lib /opt/rt3/local/plugins/RT-FM/lib /opt/rt3/local/plugins/RT-IR/lib /opt/rt3/bin/…/lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . /etc/httpd) at /opt/rt3/local/plugins/RT-IR/lib/RT/IR.pm line 437.\nBEGIN failed–compilation aborted at /opt/rt3/local/plugins/RT-IR/lib/RT/IR.pm line 437.\nCompilation failed in require at /opt/rt3/bin/…/lib/RT.pm line 625.\nCompilation failed in require at (eval 2) line 1.\n

[Mon May 11 11:15:27 2009] [error] Can’t load Perl file: /opt/rt3/bin/webmux.pl for server itsec.pittstate.edu:0, exiting…

I’ve found nothing similar in searching the list archives, the wiki, or even Google.

YAML.pm is present on my system at the following locations:

[root@itsec usr]# cd /usr/lib/perl5
[root@itsec perl5]# find . -name YAML.pm
./site_perl/5.8.8/Module/Build/YAML.pm
./site_perl/5.8.8/Test/YAML.pm
./vendor_perl/5.8.8/Locale/Maketext/Extract/Plugin/YAML.pm
./vendor_perl/5.8.8/Module/Build/YAML.pm

As apache reports, none of those paths appear in @INC at apache startup time.

***** Looking at the code: *****

Line 625 of RT.pm is in subroutine InitPlugins.

However, if we back up a step and look at line 437 of RT.pm, we see that it’s doing a “use:YAML;” right before making an attempt to log a critical error message that says “$self is not a ticket object like I expected”… it seems that had things been proceeding normally, $self WOULD have been a ticket object and we wouldn’t have taken the “else” branch in this code.

I’m not a perl guy, I’m a poor SysAdmin with a little programming experience. I’m hoping someone will take pity on me and offer some advice as to what the next step might be to try to resolve this problem. :slight_smile:

Thanks in advance!

Tim Pearson
Systems Administrator
Pittsburg State University

Either install YAML perl module using the cpan shell or in
lib/RT/IR.pm replace the following two lines

        use YAML;
        $RT::Logger->crit( "$self is not a ticket object like I expected"
                . YAML::Dump($self) );

with

        $RT::Logger->crit( "$self is not a ticket object like I expected");

Will be fixed in RTIR 2.4.2On Mon, May 11, 2009 at 9:25 PM, Timothy M. Pearson tpearson@ois.pittstate.edu wrote:

Hi all,

Briefly - This post asks for help with an installation issue with RTIR 2.4.1.

I have a:
CentOS 5.3 server with…

RT v 3.8.2 installed, configured and working
RTFM v 2.4.1 installed, configured and working
RTIR v 2.4.1 (“perl Makefile.PL” reports all ok - “make install” succeeds)

When I enable the RT:IR plugin in RT_SiteConfig.pm - apache fails to start with the following error:

[Mon May 11 11:15:27 2009] [error] Can’t locate YAML.pm in @INC (@INC contains: /opt/rt3/bin/…/local/lib /opt/rt3/local/plugins/RT-FM/lib /opt/rt3/local/plugins/RT-IR/lib /opt/rt3/bin/…/lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . /etc/httpd) at /opt/rt3/local/plugins/RT-IR/lib/RT/IR.pm line 437.\nBEGIN failed–compilation aborted at /opt/rt3/local/plugins/RT-IR/lib/RT/IR.pm line 437.\nCompilation failed in require at /opt/rt3/bin/…/lib/RT.pm line 625.\nCompilation failed in require at (eval 2) line 1.\n

[Mon May 11 11:15:27 2009] [error] Can’t load Perl file: /opt/rt3/bin/webmux.pl for server itsec.pittstate.edu:0, exiting…

I’ve found nothing similar in searching the list archives, the wiki, or even Google.

YAML.pm is present on my system at the following locations:

[root@itsec usr]# cd /usr/lib/perl5
[root@itsec perl5]# find . -name YAML.pm
./site_perl/5.8.8/Module/Build/YAML.pm
./site_perl/5.8.8/Test/YAML.pm
./vendor_perl/5.8.8/Locale/Maketext/Extract/Plugin/YAML.pm
./vendor_perl/5.8.8/Module/Build/YAML.pm

As apache reports, none of those paths appear in @INC at apache startup time.

***** Looking at the code: *****

Line 625 of RT.pm is in subroutine InitPlugins.

However, if we back up a step and look at line 437 of RT.pm, we see that it’s doing a “use:YAML;” right before making an attempt to log a critical error message that says “$self is not a ticket object like I expected”… it seems that had things been proceeding normally, $self WOULD have been a ticket object and we wouldn’t have taken the “else” branch in this code.

I’m not a perl guy, I’m a poor SysAdmin with a little programming experience. I’m hoping someone will take pity on me and offer some advice as to what the next step might be to try to resolve this problem. :slight_smile:

Thanks in advance!

Tim Pearson
Systems Administrator
Pittsburg State University


The rt-users Archives

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Best regards, Ruslan.