How .Net 3.5 SP1 broke Rhino Mocks
Okay, now that we are over the sensationalist headline, the actual problem is more complex than that. Let us assume that we have the following interface:
public interface IComplexGeneric<T>
Up until .Net 3.5 SP1, Rhino Mocks was perfectly happy to deal with such an interface (well, not happy, exactly, that requires some hard core code). With .Net 3.5 SP1, this generate an Execution Engine Exception.
Fabian Schmied was kind enough to prove that select is broken here. This is the connect site issue, and I would appreciate it if you can vote for it.
The work around for this would mean that I will have to remove support for mocking F#, C++ and Spec# from Rhino Mocks, and I am reluctant to do so.
This is fixed, you can get the fix here: http://support.microsoft.com/?id=957541
Apparently if you kick this story it will be deleted by a dotnetkicks moderator... very sad.
What are you talking about?
Dotnetkicks story has been undeleted...
Microsoft Connect issue, that means in 2 years you'll get a comment saying yeah fixing it is a good idea and they'll then mark it as external...
Maybe they'll handle this though, since it is a breakign change to software lots of people use.
Oren, have you tried contacting PSS for a hotfix?
PSS == Cost money.
Hotfix == Can't redistribute.
It costs money initially; but if it's deemed a bug then you get a refund. Plus, you get someone looking at it right away--there's an SLA with PSS. You get none of that with Connect. They can simply ignore it or close it as "by design".
Once there's a hotfix you can tell people to call PSS with a KB # to get the hotfix. If enough people do that they'll be pushed to make it public.
Connect provides no friction for them to take action.
Who pays for the initial PSS call?
Yes, I probably have MVP PSS call, but I want to see how this is handled.
The caller pays for the call to PSS. So, the first person to call about this issue would pay for the call until it was deemed a bug.
Once there's a hotfix, and someone calls to get it, there's no cost as far as I understand.
Again, for this bug. Who pays?
Or, rather, who makes the first call?
I don't know who's calling first
That is the question
The best option might be to mail one of microsoft's community-oriented people like Scott Gu or someone from the CLR team directly. You can find some blogs (they usually come with a contact option) here: http://msdn.microsoft.com/en-us/netframework/aa569259.aspx
Apparently M$ doesn't use Rhino Mocks
MS just replied in Connect:
We were able to reproduce the issue you are seeing. We are escalating this bug to the product unit who works on that specific feature area. The product team will review this issue and make a decision on whether they will fix it or not for the next release
Wow, Ayende, that blog post did get my Connect issue quite a few votes :)
But seriously: I, too, am very interested in what Microsoft will do about this bug. Plus another, which is related to serialization with static members: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=361615. It's really strange, a service pack introducing that kind of regression bugs - I would have thought Microsoft was very sensitive about that kind of thing.
My co-worker Stefan Wenig has blogged about the context of how I found those two issues, maybe that stuff is interesting to readers of this blog as well: http://www.re-motion.org/blogs/team/archive/2008/08/14/.net-3.5-sp1-broke-some-scenarios-for-mixins.aspx
BTW, if MS doesn't react on connect, the company where I work will definitely make that PSS call.
@Micheal. That's the canned response for every issue for the past couple of months...
Seriously, if you want this issue addressed now, you shouldn't wait for someone to deal with it on Connect. It's clear that its an issue for many people (88 votes at last count). Connect provides no service level agreement so there's nothing forcing anyone to do anything about issues on connect. Almost all the time they use issues on Connect for vNext planning (those that get addressed at all). If you want a hotfix for this then I suggest calling PSS. This change causes previously working code to break, it should be a no-brainer.
PSS phone incidents have apparently gone up in cost since I last checked, they're $515 in the US. But, keep in mind you have two incidents included with Visual Studio 2008. (this is the product to which you'd have to associate the issue anyway). If it's a bug it shouldn't be counted against your two incidents.
You can do it online if you don't need it addresses as quickly as a phone incident: http://support.microsoft.com/oas/default.aspx?ln=en-us&c1=501&prid=11921&gprid=528828 which is much cheaper ($99)
Peter: Sure, we (= the company I work at) will probably make that call in a few days. But the problem is: if you develop a framework or library (such as our mixin framework or Ayende's Rhino Mocks), a simple hotfix obtained via PSS won't help much. We can't expect every client of your framework (in some cases: every client of our client) to install some arbitrary hotfix if they want to use it.
Therefore, when contacting Microsoft, it's good to be able to say: There is a Connect issue regarding this, and it has got a lot of votes, so maybe some Windows-Update-thing would be nice.
Yes, as you know, we are aware of this issue. Right now I don't htik it will wind up in our group, but we are tracking its path and making sure that it gets proper attention. Ayende or Peter, feel free to contact me directly if you want more information.
C# Community PM
No need to go to PSS, this has already been taken directly to the right people in CLR and as Charlie says, it's got the attention of folks who know. I'm following it closely also.