Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No $self in sub() with lazy => 1 and mod_perl with Apache MPM worker #28

Open
coudot opened this issue Jul 15, 2014 · 7 comments
Open

Comments

@coudot
Copy link

coudot commented Jul 15, 2014

We have a strange bug in LemonLDAP::NG: https://jira.ow2.org/browse/LEMONLDAP-723

It seems that Mouse, with Perl v5.10.1, running inside Apache mod_perl with the MPM worker cannot run this kind of code:

has 'registerUrl' => (
    is      => 'rw',
    isa     => 'Str',
    default => sub {
        my $self = shift;
        return $self->portal . "register.pl";
    },
    lazy          => 1,
    documentation => 'URL of register page',
);

The error we see in Apache is:

[Tue Jul 15 14:12:17 2014] [error] Exception caught: Can't call method "portal" on an undefined value at /usr/share/perl5/vendor_perl/Lemonldap/NG/Common/Conf/Attributes.pm line 951.\n

I tried to use Mouse 2.3.0, but same error.

I can't reprodure with a more recent version of Perl (v5.18.2), or with MPM prefork.

Clément.

@gfx
Copy link
Member

gfx commented Jul 15, 2014

Hmm, I think it is intended. How about Moose?

@coudot
Copy link
Author

coudot commented Jul 15, 2014

We don't use Moose to have a lighter memory use, but I can maybe give a try.

Why do you say it's intended? Seems to work well on recent Perl.

@gfx
Copy link
Member

gfx commented Jul 15, 2014

Oh, I'm sorry I didn't see what you said, "I can't reprodure with a more recent version of Perl (v5.18.2)".

It looks a bug and should be fixed.

@syohex
Copy link
Collaborator

syohex commented Jul 16, 2014

@coudot Can this bug reproduce without Apachie mod_perl ?

There are some tests which uses lazy and subroutine argument of default attribute,
for example t/200_examples/0071_Child_Parent_attr_inherit_imm.t.
However such tests are passed on Perl 5.10.1.

@coudot
Copy link
Author

coudot commented Jul 16, 2014

Sadly, the bug occurs only in mod_perl, with MPM worker, with quite old Perl version (5.10). It works well on the same system with MPM prefork.

I can reproduce the bug on CentOS 6 with standard packages.

@pwr22
Copy link

pwr22 commented Aug 2, 2015

Hmmm, MPM worker uses multiple threads iirc, I wonder if this related to the issues here? #29

@syohex
Copy link
Collaborator

syohex commented Aug 2, 2015

Thread issue was fixed at #50. Please check latest version again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants