Plack::Handler::Starlet dependency error, RT 4.0.1 on RHEL-6

Greetings,

I’m installing RT 4.0.1 onto a new RHEL-6 server. I’ve done the
./configure step and am now resolving dependencies. I was able to fix
them all with CPAN except for Plack::Handler::Starlet. The error is
coming from a Starlet dependency, Server::Starter. Searching hasn’t
turned up anything relevant.

I’d really appreciate any insights into this that anyone might have.
This is 64-bit REHL and I have SELinux enforcing, but I don’t think it’s
the problem because nothing else has burped except for this.

Thanks in advance,
Gene

Here’s what I get from testdeps:
PSGI dependencies:
CGI::Emulate::PSGI …found
CGI >= 3.38 …found
CGI::PSGI >= 0.12 …found
HTML::Mason::PSGIHandler >= 0.52 …found
Plack >= 0.9971 …found
Plack::Handler::Starlet …MISSING
Can’t locate Plack/Handler/Starlet.pm in @INC (@INC
contains: /usr/local/lib64/perl5 /usr/local/share/perl5
/usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl
/usr/lib64/perl5 /usr/share/perl5 /root/rt/rt-4.0.1)

Here’s an excerpt of what CPAN says when I do “install
Plack::Handler::Starlet”

Checking if your kit is complete…
Looks good
Warning: prerequisite Server::Starter 0.06 not found.
Writing Makefile for Starlet
Could not read metadata file. Falling back to other methods to determine
prerequisites
---- Unsatisfied dependencies detected during ----
---- KAZUHO/Starlet-0.13.tar.gz ----
Server::Starter [requires]
Shall I follow them and prepend them to the queue of modules we are
processing right now? [yes]

CPAN.pm: Going to build K/KA/KAZUHO/Server-Starter-0.11.tar.gz

*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies…
*** Since we’re running under CPAN, I’ll just let it take care of the
dependency’s installation later.
[Core Features]

  • Test::TCP …missing. (would need 0.11)

  • Getopt::Long …loaded. (2.38)

  • List::MoreUtils …loaded. (0.32)

  • Proc::Wait3 …loaded. (0.04)

  • Scope::Guard …loaded. (0.20)
    *** Module::AutoInstall configuration finished.
    Checking if your kit is complete…
    Looks good
    Writing Makefile for Server::Starter
    Use of uninitialized value in ref-to-glob cast at
    /usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
    Use of uninitialized value in ref-to-glob cast at
    /usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
    flock() on unopened filehandle at
    /usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
    Bad file descriptor at /usr/local/share/perl5/Test/SharedFork/Store.pm
    line 104.
    END failed–call queue aborted.
    Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
    KAZUHO/Server-Starter-0.11.tar.gz
    /usr/bin/perl Makefile.PL INSTALLDIRS=site – NOT OK
    Running make test
    Make had some problems, won’t test
    Running make install
    Make had some problems, won’t install
    Running make for K/KA/KAZUHO/Starlet-0.13.tar.gz
    Has already been unwrapped into directory
    /root/.cpan/build/Starlet-0.13-eGHCED

    CPAN.pm: Going to build K/KA/KAZUHO/Starlet-0.13.tar.gz

Warning: Prerequisite ‘Server::Starter => 0.06’ for
’KAZUHO/Starlet-0.13.tar.gz’ failed when processing
’KAZUHO/Server-Starter-0.11.tar.gz’ with ‘writemakefile => NO
’/usr/bin/perl Makefile.PL INSTALLDIRS=site’ returned status 2304’.
Continuing, but chances to succeed are limited.

Greetings,

I’m installing RT 4.0.1 onto a new RHEL-6 server. I’ve done the
./configure step and am now resolving dependencies. I was able to
fix them all with CPAN except for Plack::Handler::Starlet. The
error is coming from a Starlet dependency, Server::Starter.
Searching hasn’t turned up anything relevant.

I’d really appreciate any insights into this that anyone might have.
This is 64-bit REHL and I have SELinux enforcing, but I don’t think
it’s the problem because nothing else has burped except for this.

Is your CPAN client configured to follow dependencies?
It appears that you’re missing Test::TCP but I see no attempts to
build that.

have you tried

install Server::Starter
or
install Test::TCP

to get lower level on the dependency chain?

-kevin

Thanks for responding, Kevin.On 7/14/2011 3:32 PM, Kevin Falcone wrote:

On Thu, Jul 14, 2011 at 03:04:03PM -0700, Gene LeDuc wrote:

Greetings,

I’m installing RT 4.0.1 onto a new RHEL-6 server. I’ve done the
./configure step and am now resolving dependencies. I was able to
fix them all with CPAN except for Plack::Handler::Starlet. The
error is coming from a Starlet dependency, Server::Starter.
Searching hasn’t turned up anything relevant.

I’d really appreciate any insights into this that anyone might have.
This is 64-bit REHL and I have SELinux enforcing, but I don’t think
it’s the problem because nothing else has burped except for this.

Is your CPAN client configured to follow dependencies?
It appears that you’re missing Test::TCP but I see no attempts to
build that.

have you tried

install Server::Starter
or
install Test::TCP

to get lower level on the dependency chain?

-kevin

The Test::TCP thing is a bit of a mystery to me. I saw it when I
installed all the dependencies a couple days ago so I tried to install
it. Here’s the result:

cpan[1]> install Test::TCP
CPAN: Storable loaded ok (v2.30)
Going to read '/root/.cpan/Metadata’
Database was generated on Thu, 14 Jul 2011 19:40:27 GMT
CPAN: Module::CoreList loaded ok (v2.18)
Test::TCP is up to date (1.13).

So it’s there, but testdeps isn’t seeing it.

I’ve also tried installing Server::Starter by itself and I get the same
error messages about uninitialized values and an unopened file handle.

Writing Makefile for Server::Starter
Use of uninitialized value in ref-to-glob cast at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
Use of uninitialized value in ref-to-glob cast at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
flock() on unopened filehandle at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
Bad file descriptor at /usr/local/share/perl5/Test/SharedFork/Store.pm
line 104.
END failed–call queue aborted.

Any other thoughts?

Gene

The Test::TCP thing is a bit of a mystery to me. I saw it when I
installed all the dependencies a couple days ago so I tried to
install it. Here’s the result:

cpan[1]> install Test::TCP
CPAN: Storable loaded ok (v2.30)
Going to read '/root/.cpan/Metadata’
Database was generated on Thu, 14 Jul 2011 19:40:27 GMT
CPAN: Module::CoreList loaded ok (v2.18)
Test::TCP is up to date (1.13).

So it’s there, but testdeps isn’t seeing it.

This is usually permissions or 2 different perls

I’ve also tried installing Server::Starter by itself and I get the
same error messages about uninitialized values and an unopened file
handle.

Writing Makefile for Server::Starter
Use of uninitialized value in ref-to-glob cast at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
Use of uninitialized value in ref-to-glob cast at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
flock() on unopened filehandle at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
Bad file descriptor at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
END failed–call queue aborted.

It’s worth seeing if selinux is blocking flock for this perl program.

You may get more information by running perl Makefile.PL on
Server-Starter manually and seeing if it gives you anything

-kevin

Hello Gene

I had the same problem as you …

so a user give me the advise to install the module server:starter with
cpanplus…

nothing changed…

so i tried to uninstall the module with cpanminus

… and then reinstall it …

and suprisingly the depencies problems are gone away

may this could help

best regards john …

View this message in context: http://old.nabble.com/Plack%3A%3AHandler%3A%3AStarlet-dependency-error%2C-RT-4.0.1-on-RHEL-6-tp32064884p32066599.html

Hi Kevin,

The Test::TCP thing is a bit of a mystery to me. I saw it when I
installed all the dependencies a couple days ago so I tried to
install it. Here’s the result:

cpan[1]> install Test::TCP
CPAN: Storable loaded ok (v2.30)
Going to read '/root/.cpan/Metadata’
Database was generated on Thu, 14 Jul 2011 19:40:27 GMT
CPAN: Module::CoreList loaded ok (v2.18)
Test::TCP is up to date (1.13).

So it’s there, but testdeps isn’t seeing it.

This is usually permissions or 2 different perls

I used cpanm to reinstall Test::TCP and now testdeps sees it. I’m
almost certain that there’s only 1 perl on this system; it’s a
nearly-new RHEL-6 install (I’m the one who built it). Other than apache
and RT, nothing else has been installed. How would I determine if there
are multiple perls installed?

I’ve also tried installing Server::Starter by itself and I get the
same error messages about uninitialized values and an unopened file
handle.

Writing Makefile for Server::Starter
Use of uninitialized value in ref-to-glob cast at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
Use of uninitialized value in ref-to-glob cast at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
flock() on unopened filehandle at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
Bad file descriptor at
/usr/local/share/perl5/Test/SharedFork/Store.pm line 104.
END failed–call queue aborted.

It’s worth seeing if selinux is blocking flock for this perl program.

I put selinux into permissive (it was set to enforcing), then removed
and reinstalled Server::Starter (using cpanm) with the same results. Is
this error being thrown by a Server::Starter issue or is it from
whatever process is trying to write the compiled module to disk?

You may get more information by running perl Makefile.PL on
Server-Starter manually and seeing if it gives you anything

I ran the following manually:
[root@bogus Server-Starter-0.11]# perl Makefile.PL
[root@bogus Server-Starter-0.11]# make
[root@bogus Server-Starter-0.11]# make install
[root@bogus Server-Starter-0.11]# make test
(stuff removed for brevity)
All tests successful.
Files=4, Tests=42, 28 wallclock secs ( 0.02 usr 0.00 sys + 0.39
cusr 0.08 csys = 0.49 CPU)
Result: PASS

So it looks like Server::Starter installed Ok.

So then I run cpan-t Server::Starter and get the same errors as before.,
including

  • Test::TCP …missing. (would need 0.11)

Running testdeps doesn’t flag Test::TCP

Running cpan -t Test::TCP results in:
Result: PASS
TOKUHIROM/Test-TCP-1.13.tar.gz
/usr/bin/make test – OK

So I’m baffled.

  1. make testdeps says that all dependencies are found
  2. cpan -t Server::Starter says that Test::TCP is missing and throws
    flock() and bad file descriptor errors at line 104 of
    share/perl5/Test/SharedFork/Store.pm
  3. cpan -t Test::TCP says it’s installed and good
  4. cpanm --reinstall Server::Starter says it’s installed and good
  5. cpanm --reinstall Plack::Handler::Starlet says it’s installed and good

Should I believe testdeps and continue with RT installation? Os is this
something that might bite me in the caboose?

Thanks,
Gene

I used cpanm to reinstall Test::TCP and now testdeps sees it. I’m
almost certain that there’s only 1 perl on this system; it’s a
nearly-new RHEL-6 install (I’m the one who built it). Other than
apache and RT, nothing else has been installed. How would I
determine if there are multiple perls installed?

You can go looking for perl executables. Also, looking at where on
disk Test/TCP.pm is installed will tell you what perl is using it.

  1. make testdeps says that all dependencies are found
  2. cpan -t Server::Starter says that Test::TCP is missing and throws
    flock() and bad file descriptor errors at line 104 of
    share/perl5/Test/SharedFork/Store.pm
  3. cpan -t Test::TCP says it’s installed and good
  4. cpanm --reinstall Server::Starter says it’s installed and good
  5. cpanm --reinstall Plack::Handler::Starlet says it’s installed and good

If make testdeps finds everything, then RT should be able to find
everything. You can test by running rt-server which uses Starlet.

-kevin