Bug#587729: otrs2: edit of /etc/otrs/Kernel/Config.pm breaks running OTRS (libapache2-reload-perl related?)
Damyan Ivanov
dmn at debian.org
Thu Jul 1 14:56:36 UTC 2010
-=| Patrick Matthäi, Thu, Jul 01, 2010 at 03:48:11PM +0200 |=-
> Am 01.07.2010 15:13, schrieb Damyan Ivanov:
> >>>> I have got the same issue, also if I upgrade other perl
> >>>> packages used by otrs, but I never realy cared about it. I am
> >>>> reassigning.
> >>>
> >>> Is there a way to reproduce the problem without using OTRS?
> >>>
> >>> As far as I can see the Config stuff is far from trivial and there may
> >>> be some side effect of using Apache2::Reload that OTRS doesn't take
> >>> care of. Elliminating the complexity would help pin-pointing the
> >>> problem.
>
> Sorry, I do not have a simple test case for it, too, except otrs, but
> this is not a simple application :/
I see. What I don't see is the reason for reassigning. So far we know
that OTRS loses its configuration when Config.pm is reloaded by
Apache2::Reload. The reason may be in Apache2::Reload or in OTRS.
AIUI, Apache2::Reload would do 'ModPerl::Util::unload_package'
followed by 'require'. How this reflects to the OSTR configuration
framework is not clear to me.
Here's what I find interesting in ModPerl::Util::unload_package
manual:
Unloading a Perl stash (package) is a complicated business. This
function tries very hard to do the right thing. After calling this
function, it should be safe to "use()" a new version of the module
that loads the wiped package.
References to stash elements (functions, variables, etc.) taken
from outside the unloaded package will still be valid.
This function may wipe off things loaded by other modules, if the
latter have inserted things into the $stash it was told to unload.
If a stash had a corresponding XS shared object (.so) loaded it
will be unloaded as well.
If the stash had a corresponding entry in %INC, it will be removed
from there.
"unload_package()" takes care to leave sub-stashes intact while
deleting the requested stash. So for example if "CGI" and
"CGI::Carp" are loaded, calling "unload_package('CGI')" won't
affect "CGI::Carp".
Does this ring any bells? The third paragraph maybe?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-perl-maintainers/attachments/20100701/5f77ad47/attachment.pgp>
More information about the pkg-perl-maintainers
mailing list