Thursday, April 09, 2015

Gridiron Solitaire (number unknown): It's Never Just One

I've learned an inescapable truth about bugs.

For a long time now, GS has had an obscure bug where the first time someone clicks on a card, the game crashes to Windows.

If they then restart the game, it plays just fine. And it will play fine as many times as they want until they reboot, and then it happens again. Rinse, repeat.

What makes this very difficult is that it's not an internal crash in the game code, because I have a routine to trap that and write the information to a file. This is some kind of strange Windows-related crash, it produces no file, and it only happens with Windows 8.1.

Only a very small subset of users (1 in every 200 or so) have this problem, and it only happens a small percentage of the time that they're playing the game, so as bugs go, this isn't a disaster.

I've tried to fix it, though, and haven't been able to, which is what bothers me. This is the only outstanding bug I have.

Well, until someone reported a few weeks ago that they were crashing in the tutorial the first time they clicked on a card. And unlike the other bug, this doesn't resolve itself by restarting the game. It's terminal.

This user was able to play the game without incident on two other systems, but his primary system was a mystery, and we spent hours troubleshooting (and DQ VB.NET Advisor Garret Rempel was also involved).

Still, though, only one user, right? Except that's not true, because I've learned in the last few years the Prime Directive of the Single-User Bug: IT'S NEVER JUST ONE.

It might seem like that, at first. But what you've had reported is a bug that--presently--affects only one user. The odds of this bug, over time, appearing again are 100%. Someone else is going to encounter this bug, eventually. Guaranteed.

It's never just one.

Yesterday, #2 showed up. This was a very good thing, actually, because it let me compare the user's systems, OS, etc. I knew it must be an 8.1 system, and it was.

I also realized that these users can click button controls in the game for as long as they want, in any combination, without crashing. The cards, though, are image controls. The first time they click on an image control, there's a funky crash to the Windows desktop.

That certainly seems like a thing.

This gives me a path, finally. I can replace the first image control that gets clicked in the tutorial with a button control. If the user can select the button control (with the card image as the background) with no problem, then clicks on the second card (which is still an image control) and crashes, then I can replace image controls with button controls. In XAML, that's not terribly difficult.

Plus, and this might be even better, I'm not the only developer (Can I actually call myself that? Still seems highly unlikely) reporting some funky issues, and Garret let me know that the 4.6 RC of the .NET Framework might resolve the problem.

Resolving it without having to code a workaround would be outstanding, because I don't think my code is causing the problem. So I e-mailed both users and we'll see if the new .NET Framework fixes things.

Site Meter