in reply to Re^2: Problems with multiple inheritance
in thread Problems with multiple inheritance

Apache::Reload sounds like a red flag to me. Perl doesn't actually have any way to reload modules, so all that Apache::Reload does is delete it from %INC and require it again. In my opinion, it's crazy to use Apache::Reload in production. It will cause strange problems and will bloat the memory usage because it ruins copy-on-write sharing. It's meant for development only.
  • Comment on Re^3: Problems with multiple inheritance

Replies are listed 'Best First'.
Re^4: Problems with multiple inheritance
by agianni (Hermit) on Feb 23, 2007 at 20:07 UTC
    The reason we're using Apache::Reload is because our servers are in a cluster behind a content switch and a rolling restart is complicated and can't be scripted as far as I know. So given the fact that we don't have access to restart the servers do you have any other recommendations?
      From Zaxo's comment, it sounds like you might need a newer perl on your production system. Regardless, it's still asking for trouble to use Apache::Reload in production. In fact, changes in inheritance are known to be a particular problem with it. You need to get together with whoever admins these servers and work out a way to do real restarts of them when you update your code.

        We're on 5.8.6, and multiple inheritance is generally working for us. This is the first time this has been an issue, but the Apache::Reload issue makes sense. We have actually been running into more and more problems with using Apache::Reload as our code base has gotten more and more complicated. Even simple inheritance breaks it sometimes. This might just be the straw that breaks the camel's back that forces us to figure out a way to actually get the servers restarted.

        BTW, we're running Solaris (9, soon 10) and it's my understanding that graceful restarts of apache are buggy, although I haven't checked to see if that's been fixed, otherwise we'd be using that.

        If anyone has any recommendations on how to deal with restarting Apache servers in a clustered environment (I know this is getting off topic now) please let me know.