Microsoft sends two million NULL characters, hangs Opera

A bug report came in late Friday/Saturday night saying loading Microsoft's Skydrive was making Opera hang and use 100% CPU. I had a quick look on Saturday, and to my amazement it was neither a JavaScript nor a plugin-related issue; the freeze would still be there with both disabled. Family duties prevented further investigation.

Today, I know what the problem is: some strange bug in the Microsoft backend sends a load of unexpected NULL characters – more than two million of them right in the middle of the source code. This sounds (and is) bizarre for a high-profile production service, so here's a screenshot to prove it:

In front, source code Opera gets, viewed in SciTE. Behind, a comparison of source sent to Opera (on the left) and Firefox (on the right). The comparison tool ExamDiff is loaded directly from the Fiddler HTTP debugger to prove that this is about bytes coming from the site rather than the result of some strange browser-internal bug. (Line numbers in ExamDiff are greater because it also compares the HTTP headers).

Wow. So you're sending more than two million nonsense characters to every user? Somebody working late hours at Microsoft recently?

Opera gets way more confused by the unexpected NULL characters than Firefox does, judged from the CPU usage. We should fix that – meanwhile, here's another strange but great example of how testing in multiple browsers can make you uncover mistakes you never expected to make.

Advertisements

30 thoughts on “Microsoft sends two million NULL characters, hangs Opera

  1. OK, thanks for the post and explaining the issue.Are these 2 million NULLs sent only to Opera and Firefox, or Internet Explorer also? Because out of 4 browsers I tested (IE 8, IE 10, Firefox and Opera), only Opera seems to be affected. (Firefox and Internet Explorer do not freeze and have a fine CPU usage, while it takes about 10 minutes for Opera to get responsive.And lastly, a question: Do you guys ever plan to fix editing in Skydrive Office Web Apps. Just try using one of the apps (I only use PowerPoint) – it's completely broken. When selecting "Open in PowerPoint Web App" the app only displays the theme and none of the contents. And things just get worse in the editing mode, with less than a quarter of the presentation visible – rest all, blank white space. Is it a set of bugs in Opera or Microsoft's fault.

  2. Originally posted by Swapnil99pro:

    Are these 2 million NULLs sent only to Opera and Firefox, or Internet Explorer also?

    I only tested the former, but since they are sent to both Opera and Firefox I sort of assume all browsers get them. Obviously, other browsers recover way more gracefully than Opera from this error, and we'll definitely be fixing that.Originally posted by Swapnil99pro:

    Do you guys ever plan to fix editing in Skydrive Office Web Apps

    Of course we'd like it to work. We also want to work on making it work.. However, as far as I can tell, we so far have a lot more bug reports about Google Docs-stuff, so it seems Opera's users have been more active there – personally I know Skydrive has been stuck on my "try to get to this" list for a long time. Others have however spent more time on it, and I'm pretty sure there are Skydrive-related core improvements both in 12.10 and in the pipeline. We should perhaps look at whether we could sitepatch some more..

  3. Originally posted by ZAHEK:

    can we say MS do it to tire Opera or consume more CPU than others??

    Don't explain with malice that which is adequately explained by deadlines πŸ™‚

  4. Hallvord, OK – please fix it as soon as possible. Until then, Firefox and Internet Explorer 8 for Skydrive.Website compatibility has a problem for Opera since years, but 20-40% because of it's own Core bugs. I am 90% sure it's because of some bugs in Opera only – not Microsoft's fault.

  5. Here's an example that proves that even a company with more manpower and financial resources than most other IT companies, cannot send out good code.It's probably costing them tough dollars, too. The two million nulls have to be sent out one way or another, which is costing bandwidth and server cpu power, both of which are not free.

  6. Well, at the moment it seems Opera ASA has nothing but any clue.Why is Opera engineering one step behind always. MS Skydrive and her strategies are well known for months yet. Is it so swear to follow the market?Opera-Team: Make your Opera browser compatible to the Internet eventually.:knight:

    … Why Microsoft is effectively sending 2 million NULL characters isn’t yet known, but Opera also comes in for some blame, as it appears it is the only browser affected by the random code. While Opera hangs as CPU use reaches 100 percent, Firefox and Internet Explorer do not exhibit the same locking issues.

    Thank you. πŸ™‚

  7. Originally posted by noroslo:

    Opera-Team: Make your Opera browser compatible to the Internet eventually.

    You can blame old IE only crud still, I feel bad for Opera they have (3 people I think) to do the open the web, and a lot of volunteers help with the code, not the first time Microsoft has sent broken code ot browsers, right now Microsoft blocks all Mac OS users for KB articles for Office for Mac (has been like that for a year)No code is perfect (tho most try to do it) and they will have bugs, just hope there is responsible bug reporting. You can look at any browser and you will find a bug Originally posted by noroslo:

    S Skydrive and her strategies are well known for months yet. Is it so swear to follow the market?

    No this is a recent bug, worked fine with no crashing in October 2012, it is a recent code change that Microsoft added the embarrassing error

  8. Originally posted by noroslo:

    Why is Opera engineering one step behind always

    Simply put: computers can only deal with errors they know how to handle. Opera is no exception. And there are millions of ways to make mistakes when coding a website – this is simply a mistake that we had not seen before, so as it turned out Opera wasn't well prepared for dealing with it.The fix is coming to an Opera near you shortly – so next time a site sends you a million null characters, you won't notice a hiccup. However, there's always a chance that you will come across a site with a different error that we haven't yet worked on handling, which is why you get the perception that we're "behind" even though we're vastly more compatible than, say, 5 years ago and your Opera handles thousands of errors in ways you don't notice every single day.It takes a lot of work to deal with web-scale complexity. We've put in a lot of work and will continue to do so.

  9. Would be cool to know what's wrong with Opera's code that it can't handle all those nulls and how the code gets changed to fix it.

  10. Originally posted by noroslo:

    Why is Opera engineering one step behind always.

    Good news! We have this amazing technology in the works that will predict the future, and predict every single weird thing web developers will do before they do it.We just need to perfect our time travel technology first.That, or hire psychics.That way, we can fix everything before it happens. It will be great!

  11. How many MB is that?Looks like they are trying to copy my demo, Lots Of Text i guess.Just block for other browsers, IE has that code optimizer and they buff things out.

  12. Originally posted by hallvors:

    Simply put: computers can only deal with errors they know how to handle. Opera is no exception. (snip)

    Thanks for that constructive reaction to a rather unobjective question! :up:

  13. It is not Opera's code that is wrong, it is Microsoft's-again!After endless problems with using Outlook.com in Opera thanks to bad coding they now balls up Skydrive.No code is perfect, but bad code is always noticed by a good browser, and giving it's employees loads more work to do

  14. Haven't MS intentionally send Opera garbage-page on one of its old online services (MSN may it was?) in the early 2000's or the late 90's ?anyone recall something like that ?

  15. Originally posted by serious:

    not bad, just wasting 2mb on nothing for each page-load …Edit: btw: why isn't null considered EOF? Just out of curiosity …

    I think HTTP uses Content-Length or ranges for EOF. Or simply the connection being closed.

  16. Originally posted by hallvors:

    The fix was very simple – don't work so hard to log HTML5 parse errors for all those null characters '-)

    Thanks.

  17. Hi Hallvord. Just wanted to say thanks for fixing the store locater in dicksmith.co.nz but couldn't post a comment to the original post at http://my.opera.com/hallvors/blog/2012/07/25/sometimes-it-helps-to-speak-norwegian-in-new-zealandI'm actually a real (physical AND online) customer of DSE. I was unable to use the locater earlier in March on my laptop shopping. I did notice it was fixed in late July for my smartphone shopping. :yes: Much appreciated. Nice to know NZ is not off the map for Norwegians. πŸ˜€

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s