<div>You have no other threads running that might have mutated that instance variable? <br></div>
<div><br>__________________________<div>Daniel Lucraft</div><div><br></div><div>danlucraft.com/blog</div><div>twitter.com/danlucraft</div><br></div>
<p style="color: #a0a0a0;">On Wednesday, 3 August 2011 at 06:57, Simon Coffey wrote:</p>
<blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
<span><div><div>Hi LRUG,<br><br>Apologies for posting a bug to the list, but it's weird enough that I<br>hope it might be interesting (indeed it appears to be logically<br>impossible). It's got me completely stumped, so any thoughts would be<br>gratefully received.<br><br>We're getting very occasional (~1 per week) exceptions out of one of<br>our helper methods in our app (Rails 3.0.3, ruby 1.9.2-p180). For<br>example, from the following line of code...<br><br> def page_description<br> case<br> when @question then @question.background # exception raised here<br> <snip other cases><br> end<br> end<br><br>... we saw "NoMethodError: undefined method `background' for<br>nil:NilClass". (The full method can be seen here:<br><a href="https://gist.github.com/1120170">https://gist.github.com/1120170</a> )<br><br>That's logically impossible, right? @question is clearly nil, as shown<br>by the exception. But @question is also clearly not nil, otherwise how<br>on earth would that case fire?<br><br>Other rules in this case statement are also causing exceptions, but<br>with inexplicable things apparently stored in the instance variables.<br>For example, we've seen "NoMethodError: undefined method `bio' for<br>#<Lead:0xdbc31a0>" from line #6 in the gist, despite the @user<br>instance variable only ever being assigned an instance of User, not<br>Lead. Another time @user appeared to contain a Hash. Other instance<br>variables have contained controller instances.<br><br>This only seems to be happening in the #page_description method, which<br>is used at the top of the <head> section of our layouts. As such, for<br>any given render pass it will always be the first call to access the<br>controller instance variables.<br><br>It looks to me like our instance variables are somehow getting<br>corrupted, but I can't for the life of me see how this would happen.<br>Unfortunately it happens only on production, and has so far resisted<br>being reproduced, so we have no ability to get further info out of the<br>debugger.<br><br>Has anyone seen anything like this before? Undying gratitude / a beer<br>to anyone who has any bright ideas...<br><br>Cheers,<br>Simon<br><br>--<br>Simon Coffey<br>Developer, Tribesports<br><br>e: <a href="mailto:simon@tribesports.com">simon@tribesports.com</a><br>m: 07960 004 857<br>p: Unit 104, Cremer Business Centre, 37 Cremer Street, London, E2 8HD<br>_______________________________________________<br>Chat mailing list<br><a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br><a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br></div></div></span>
</blockquote>
<div>
<br>
</div>