Tomas,
Quick googling wasn’t unfortunately very helpful.Welcome to our world!
Peter and Igor,
thanks a lot for your responses. I’ve checked the protection of 0x401bb410
and as I have more core dumps from identical issue I have also checked the
protection status of all other addresses that are the destination in the
mov instructions causing the SIGSEGV. It’s unfortunately just as Igor says
- they always have just "ALLOC LOAD HAS_CONTENTS” but never READONLY so the
destination addresses should be writable I believe. As the CPUs are all
x86_64 Intel E5s I guess it might be possible that I am actually facing the
bug Igor is talking about - which BTW doesn’t make me very happy :)
* use unprotected mcode;
* apply thread affinity for threads running LuaJIT;
Igor - could you please point me to some resources elaborating on how to
achieve these? Quick googling wasn’t unfortunately very helpful.
If Tomas has a semi-reproducible setup, I'd be interested to knowPeter - thanks a lot, appreciate the patch very much. It should not be a
whether the following has any effect: (if for some reason the hardware
sees this as cross-modifying code rather than self-modifying code,
then some kind of serializing instruction is required for some
hardware models)
problem to reproduce it - not that I would be able to do so on purpose, but
it happens at least once a day on at least one of our production servers.
I’ll build a new version, get it deployed and get back to you after the
weekend with (hopefully good) news.
Once again thank you very much for your responses, both of you. It has
been driving me crazy for the past few nights :)
Tomas