28.07.2015, 00:00 Uhr
Warum StackOverflow .NET 4.6 nicht nutzt
In .NET 4.6 steckt laut StackOverflow ein äußerst problematischer Bug, der sich auch noch gut zu verstecken weiß.
Das von StackOverflow ausgemachte Problem in .NET 4.6 sei von Microsoft intern bereits gefixt. Allerdings noch nicht in der veröffentlichten Version des Frameworks. StackOverflow rät allen Entwicklern mit der Nutzung von .NET 4.6 zu warten, bis der Fix für alle bereitsteht. Das Problem liegt darin, dass vom Code aufgerufene Methoden andere Parameterwerte erhalten können als der Entwickler übergeben hat. Grund für dieses Verhalten sei die sogenannte "Tail call optimization". StackOverflow stellt fest, dass eine Umstellung ihrer Web-Infrastruktur auf .NET 4.6 den Dienst sehr viel langsamer machen würde und eventuell sogar zu einem kompletten Ausfall führen könnte.
Das besonders gemeine dabei: der Bug versteckt sich gut. Er tritt nämlich nur auf, wenn man die Compiler-Optimierungen einschaltet, was während der Entwicklungszeit meist nicht der Fall ist. Auch wenn der Debugger läuft, verändert sich das Verhalten. Eine Ausführliche Beschreibung des Fehlers kann auf dieser Seite von Nick Craver nachgelesen werden. [bl]