Malte Ubl wrote:
[...]
Our code is not using any specials variables though except %SIG for alarm.

I've used $$ just as an example, any variable can be affected.

How does a variable become read-only? Is that something that can be done on C/XS Level?

Yes. By setting the READONLY flag on the scalar. But it may happen as a result of some bug.

You also get a readonly variable if it's not a variable but a constant, e.g.:

perl -MDevel::Peek -le 'Dump "aaa"'
SV = PV(0x804c4a0) at 0x805b88c
  REFCNT = 1
  FLAGS = (POK,READONLY,pPOK)
  PV = 0x805e420 "aaa"\0
  CUR = 3
  LEN = 4

so for example if a function receives a string as an argument, e.g., foo("aaa") and then the function tries to modify its $_[0]'s argument you will get this error.

If the error occurs, it seem to bubble from apache child to apache child like an infection (Although it seems to take a pretty long time (like 15 Minutes)). That's why I always figured that this bug must be releated to source code that is being modified and copied to the children.



Could it be some environment issue? running out of disk space, RAM, etc.?


RAM would be possible. We'll look into that and maybe go down with MaxClients a little. It doesnt look like we have ever hit the SWAP though.

If you debug on the dev machine. it's important to run in the single server mode (-X), so you will see the error as soon as it happens and not wait through 50 or whatever the number of server you are running. see the mod_perl guide/the practical mod_perl book for more information.


--
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to