Ayende @ Rahien

Refunds available at head office

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>
{
void GenericMethod<K>();
}

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

Comments

Peter Ritchie
08/13/2008 03:15 PM by
Peter Ritchie

Apparently if you kick this story it will be deleted by a dotnetkicks moderator... very sad.

Ayende Rahien
08/13/2008 03:23 PM by
Ayende Rahien

Huh?

What are you talking about?

Peter Ritchie
08/13/2008 03:27 PM by
Peter Ritchie

Dotnetkicks story has been undeleted...

Colin Jack
08/13/2008 03:42 PM by
Colin Jack

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.

Cory Foy
08/13/2008 04:15 PM by
Cory Foy

Voted.

Peter Ritchie
08/13/2008 04:21 PM by
Peter Ritchie

Oren, have you tried contacting PSS for a hotfix?

Ayende Rahien
08/13/2008 04:26 PM by
Ayende Rahien

PSS == Cost money.

Hotfix == Can't redistribute.

Peter Ritchie
08/13/2008 04:41 PM by
Peter Ritchie

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.

Ayende Rahien
08/13/2008 04:46 PM by
Ayende Rahien

Who pays for the initial PSS call?

Yes, I probably have MVP PSS call, but I want to see how this is handled.

Peter Ritchie
08/13/2008 04:52 PM by
Peter Ritchie

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.

Ayende Rahien
08/13/2008 04:57 PM by
Ayende Rahien

Again, for this bug. Who pays?

Or, rather, who makes the first call?

Peter Ritchie
08/13/2008 05:01 PM by
Peter Ritchie

I don't know who's calling first

Michael Peter
08/13/2008 06:20 PM by
Michael Peter

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

Dennis
08/14/2008 04:15 AM by
Dennis

Apparently M$ doesn't use Rhino Mocks

Michael
08/14/2008 05:49 AM by
Michael

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

Fabian Schmied
08/14/2008 11:44 AM by
Fabian Schmied

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.

Peter Ritchie
08/14/2008 03:33 PM by
Peter Ritchie

@Micheal. That's the canned response for every issue for the past couple of months...

Peter Ritchie
08/14/2008 04:24 PM by
Peter Ritchie

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)

Fabian Schmied
08/15/2008 08:00 PM by
Fabian Schmied

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.

Charlie Calvert
08/19/2008 01:12 AM by
Charlie Calvert

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.

  • Charlie Calvert

C# Community PM

Scott Hanselman
08/21/2008 12:22 AM by
Scott Hanselman

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.

Comments have been closed on this topic.