Subject: | empty _automethod :Automethod provoke OIO::die deep recursion |
Hi
I try to share the "รง*%*experience we've had, no that we found the reason.
We've been using your code with great pleasure for some time in our
projects, but got from time to time, quite severe crashes.
stating something like deep recursion OIO::die
modifying your Universal.pm at line, we forced a Carp::cluck &&
CORE::die to get more details than our two poor lines "deep recursion"
Each time, this phenomeon was produced by a die somewhere in our code
(cannot open a file or so...) and we kep on fixing small problem, but
not the deep recursion stuff.
Today was the good day.
We discovered than in one of our module using Object::InsideOut, there
was a empty (it was certainly copied from another module, but of no use
here....
sub _automethod :Automethod{
my ($self, $val) = @_;
my $set=exists $_[1];
my $name=$_;
}
removing those lines removed our nightmare...
Maybe there is something to do here
regards
Alex
Object::InsideOut::__ANON__('Phenyx::Submit::JobSubmission', '()')
called at C:/Perl/lib/overload.pm line 54
overload::Overloaded('Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)')
called at C:/Perl/site/lib/Devel/StackTrace.pm line 114
eval {...} called at C:/Perl/site/lib/Devel/StackTrace.pm line 112
Devel::StackTrace::_ref_as_string('Devel::StackTrace=HASH(0x4187cd0)',
'Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)') called at
C:/Perl/site/lib/Devel/StackTrace.pm line 83
Devel::StackTrace::_add_frame('Devel::StackTrace=HASH(0x4187cd0)', 1,
'ARRAY(0x4187da8)') called at C:/Perl/site/lib/Devel/StackTrace.pm line 63
Devel::StackTrace::_add_frames('Devel::StackTrace=HASH(0x4187cd0)',
'ignore_class', 'ARRAY(0x4187a84)', 'ignore_package',
'ARRAY(0x4187a6c)', 'no_refs', 1, 'respect_overload', 0, ...) called at
C:/Perl/site/lib/Devel/StackTrace.pm line 26
Devel::StackTrace::new('Devel::StackTrace', 'ignore_class',
'ARRAY(0x4187a84)', 'ignore_package', 'ARRAY(0x4187a6c)', 'no_refs', 1,
'respect_overload', 0, ...) called at
C:/Perl/site/lib/Exception/Class.pm line 298
Exception::Class::Base::_initialize('OIO::Code=HASH(0x41878b0)',
'ignore_package', 'ARRAY(0x41876a0)', 'Info', ':Automethod in package
\'Phenyx::Submit::JobSubmission\' invo...', 'message', ':Automethod did
not return a code ref') called at C:/Perl/site/lib/Exception/Class.pm
line 261
Exception::Class::Base::new('OIO::Code', 'ignore_package',
'ARRAY(0x41876a0)', 'Info', ':Automethod in package
\'Phenyx::Submit::JobSubmission\' invo...', 'message', ':Automethod did
not return a code ref') called at
C:/Perl/site/lib/Object/InsideOut/Exception.pm line 82
OIO::die('OIO::Code', 'message', ':Automethod did not return a code
ref', 'Info', ':Automethod in package \'Phenyx::Submit::JobSubmission\'
invo...') called at C:/Perl/site/lib/Object/InsideOut/Universal.pm line 92
Object::InsideOut::__ANON__('Phenyx::Submit::JobSubmission', '()')
called at C:/Perl/lib/overload.pm line 54
overload::Overloaded('Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)')
called at C:/Perl/site/lib/Devel/StackTrace.pm line 114
eval {...} called at C:/Perl/site/lib/Devel/StackTrace.pm line 112
Devel::StackTrace::_ref_as_string('Devel::StackTrace=HASH(0x40dc370)',
'Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)') called at
C:/Perl/site/lib/Devel/StackTrace.pm line 83
Devel::StackTrace::_add_frame('Devel::StackTrace=HASH(0x40dc370)', 1,
'ARRAY(0x40dc448)') called at C:/Perl/site/lib/Devel/StackTrace.pm line 63
Devel::StackTrace::_add_frames('Devel::StackTrace=HASH(0x40dc370)',
'ignore_class', 'ARRAY(0x40dc0f4)', 'ignore_package',
'ARRAY(0x40dc0dc)', 'no_refs', 1, 'respect_overload', 0, ...) called at
C:/Perl/site/lib/Devel/StackTrace.pm line 26
Devel::StackTrace::new('Devel::StackTrace', 'ignore_class',
'ARRAY(0x40dc0f4)', 'ignore_package', 'ARRAY(0x40dc0dc)', 'no_refs', 1,
'respect_overload', 0, ...) called at
C:/Perl/site/lib/Exception/Class.pm line 298
Exception::Class::Base::_initialize('OIO::Code=HASH(0x40d859c)',
'ignore_package', 'ARRAY(0x32e43dc)', 'Info', ':Automethod in package
\'Phenyx::Submit::JobSubmission\' invo...', 'message', ':Automethod did
not return a code ref') called at C:/Perl/site/lib/Exception/Class.pm
line 261
Exception::Class::Base::new('OIO::Code', 'ignore_package',
'ARRAY(0x32e43dc)', 'Info', ':Automethod in package
\'Phenyx::Submit::JobSubmission\' invo...', 'message', ':Automethod did
not return a code ref') called at
C:/Perl/site/lib/Object/InsideOut/Exception.pm line 82
OIO::die('OIO::Code', 'message', ':Automethod did not return a code
ref', 'Info', ':Automethod in package \'Phenyx::Submit::JobSubmission\'
invo...') called at C:/Perl/site/lib/Object/InsideOut/Universal.pm line 92
Object::InsideOut::__ANON__('Phenyx::Submit::JobSubmission', '()')
called at C:/Perl/lib/overload.pm line 54
overload::Overloaded('Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)')
called at C:/Perl/site/lib/Devel/StackTrace.pm line 114
eval {...} called at C:/Perl/site/lib/Devel/StackTrace.pm line 112
Devel::StackTrace::_ref_as_string('Devel::StackTrace=HASH(0x40d8f20)',
'Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)') called at
C:/Perl/site/lib/Devel/StackTrace.pm line 83
Devel::StackTrace::_add_frame('Devel::StackTrace=HASH(0x40d8f20)', 1,
'ARRAY(0x3c07ad8)') called at C:/Perl/site/lib/Devel/StackTrace.pm line 63
Devel::StackTrace::_add_frames('Devel::StackTrace=HASH(0x40d8f20)',
'ignore_class', 'ARRAY(0x32de684)', 'ignore_package',
'ARRAY(0x32de69c)', 'no_refs', 1, 'respect_overload', 0, ...) called at
C:/Perl/site/lib/Devel/StackTrace.pm line 26
Devel::StackTrace::new('Devel::StackTrace', 'ignore_class',
'ARRAY(0x32de684)', 'ignore_package', 'ARRAY(0x32de69c)', 'no_refs', 1,
'respect_overload', 0, ...) called at
C:/Perl/site/lib/Exception/Class.pm line 298
Exception::Class::Base::_initialize('OIO=HASH(0x40d8a40)', 'message',
'unlink C:\phenyx-2\sbs/jobs-id.txt.flck: Permission denied at...',
'ignore_package', 'ARRAY(0x401be08)') called at
C:/Perl/site/lib/Exception/Class.pm line 261
Exception::Class::Base::new('OIO', 'message', 'unlink
C:\phenyx-2\sbs/jobs-id.txt.flck: Permission denied at...',
'ignore_package', 'ARRAY(0x401be08)') called at
C:/Perl/site/lib/Object/InsideOut/Exception.pm line 181
OIO::combine('unlink C:\phenyx-2\sbs/jobs-id.txt.flck: Permission
denied at...', '') called at C:/Perl/site/lib/Object/InsideOut.pm line 1803
Object::InsideOut::DESTROY('BatchSystem::SBS=SCALAR(0x32fad0c)') called
at C:\phenyx-2\perl/cgi/submitJobs.pl line 361
eval {...} called at C:\phenyx-2\perl/cgi/submitJobs.pl line 361
main::forkAndSub('Phenyx::Submit::JobSubmission=SCALAR(0x363d8fc)')
called at C:\phenyx-2\perl/cgi/submitJobs.pl line 325
at C:/Perl/site/lib/Object/InsideOut/Universal.pm line 91