Our headless server (VA 8.5.2) is suddenly sometimes hitting this, which we've never seen before. Does it mean "doesNotUnderstand: is not understood", which is hard to believe since I see it in Object in the packaged image? Or does it mean doesNotUnderstand: is sending a non-understood message, as "EsPrimErrDNURecursion" might imply? Not that I see anything missing from the packaged image in that method.
-- When this happens, the (Transcript) log file contains a fairly primitive stack trace, just one line per method, ending with a method of ours which is in the packaged image, but we don't know what method it was trying to call. You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Administrator
|
On Monday, August 11, 2014 7:47:10 AM UTC-7, Wayne Johnston wrote:
--
Do you have any classes / hierarchies which do not subclass from Object? (e.g., proxies, etc.) It is important that any such class have the DNU handler that's been defined to the VM (see Core class>>#registry). You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Hi Wayne,
-- I would agree with Richard about the possible culprit (I'm making an assumption that #doesNotUnderstand: did not get reduced out here). The vm is processing the DNU handler and it goes to lookup the selector for the target object....but can't find it. So rather than trying it again, which would be pointless, this is the error code to say implicitly that there is a dnu recursion detected. -- Seth On Monday, August 11, 2014 12:01:06 PM UTC-4, Richard Sargent wrote:
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Thanks guys. I posted this before I realized I could reproduce it in a development image. Very weird stuff, I'll be contacting Instantiations support.
-- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Instantiations agreed it seemed like a corruption and was helping me. But I stumbled on the answer.
-- Just in case it was something in the class that tended to blow up which was
corrupt, I thought I’d add an instance variable (and class variable and class instance variable just in case),
then remove them. I didn’t know if that would recompile any corruptions
out or not. Indeed, the problem still occurred. HOWEVER, when I did that, the Transcript noted some methods that
didn’t compile. I had removed an instance variable and these methods had
still been referencing it without me realizing it. And I was still
calling those methods. I’m guessing that the code setting the instVar was
setting something haphazardly in memory. You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Here's a question for Instantiations - is there some sort of internal flag for a method that could be checked for a "method did not recompile" condition like this other than by forcing a recompilation of a method again? I know that when the method is recompiled, the Transcript shows the issue, but in the cases where that may have been missed, is there something that could be queried in the methodDictionary of a class? A compiledSuccessfully boolean that could be added to an instance of a compiled method possibly?
-- Thoughts? *Steve* You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Administrator
|
On Monday, August 18, 2014 8:14:36 AM UTC-7, Steven LaFavor wrote:
You mean something like CompiledMethod>>#doesNotCompile? You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To post to this group, send email to [hidden email]. Visit this group at http://groups.google.com/group/va-smalltalk. For more options, visit https://groups.google.com/d/optout. |
Free forum by Nabble | Edit this page |