Code Review: More ActionPack fixes

tfpt review “/shelveset:rails;REDMOND\sborde”
Comment :
defined? should clear $! of any exception that may have been thrown by
const_missing
Makes NativeMethods.SetEnvironmentVariable check if the call succeeded
Adds a critical tag for library\socket\basicsocket\send_spec as it
hung on my machine

Since the send_spec tag is working on my machine and snap, I’d like to
try to figure out why it’s failing for you instead of disabling it.

JD

It was marked as critical before the spec update (I sent you an email),
which means we did look into it when it first started failing. I did
look into the failure (not knowing that it was previously tagged as
critical) and know what is causing the problem, and it is a race. It
will fail on your machine and in Snap given enough time.

We should not be untagging such non-deterministic critical and unstable
failures. Otherwise we end up spending time investigating the failures
everytime. Do you know if any other critical and unstable tags were
removed? Would be good to send the list of such removed tags to the team
after a RubySpec update so folks can keep an eye out for the failures.

Criticals should mean that it causes a hang or a termination. Those
should be immediately apparent for that reason. This should have been
(and should be) tagged unstable. When I update the tags, I run every
critical spec, and if it passes, I remove the tag. Unstables, are
different, after you pointed out the unstable tags, I ran them in a loop
to see if they failed. I tagged the ones that did, and left the rest.

So, to recap, please change this to an unstable tag, and in the future,
I will regress it more than one time. Also, I like your idea of sending
out a changelist on the major tags, so I will do that too in the future.

JD

Looks good.

Tomas

Marking it as unstable sounds good.