Ayende @ Rahien

Hi!
My name is Ayende Rahien
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

@

Posts: 5,947 | Comments: 44,544

filter by tags archive

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

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

Ayende Rahien

Huh?

What are you talking about?

Peter Ritchie

Dotnetkicks story has been undeleted...

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.

Peter Ritchie

Oren, have you tried contacting PSS for a hotfix?

Ayende Rahien

PSS == Cost money.

Hotfix == Can't redistribute.

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

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

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

Again, for this bug. Who pays?

Or, rather, who makes the first call?

Peter Ritchie

I don't know who's calling first

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

Apparently M$ doesn't use Rhino Mocks

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

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

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

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

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

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

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.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. RavenDB Sharding (3):
    22 May 2015 - Adding a new shard to an existing cluster, splitting the shard
  2. The RavenDB Comic Strip (2):
    20 May 2015 - Part II – a team in trouble!
  3. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  4. Interview question (2):
    30 Mar 2015 - fix the index
  5. Excerpts from the RavenDB Performance team report (20):
    20 Feb 2015 - Optimizing Compare – The circle of life (a post-mortem)
View all series

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats