Tuesday, June 14, 2011

Strange Bug of the Day

Today, I got to debug an extremely odd bug.

The behavior observed was that, on nearly all of the intelligent SAS/SATA controllers we had, the OCZ Vertex 3 drives we possessed did not show up in Windows at all, and they only showed up on the "dumbest" controllers (bargain-basement onboard motherboard chipsets).

I had taken a look at this awhile ago, when it first cropped up, but hadn't found anything obvious, so I put it down in favor of other, time-sensitive things.

I started by plugging the SSD into my workstation - a Dell Precision T5500 running a modern Apt-based Linux distribution, at the moment. It happily appeared on the bus and did IO fairly well at a quick glance, though SATA 2 could only go so fast. (We actually have two identical Vertex 3s, so I tested both. They performed essentially identically.)

Huh, that was lucky. Try it in my ThinkPad T61p (my personal laptop), shows up fine in the BIOS.

Okay, fine,apparently these are stupid controllers. Drag them over to some servers in the testbed room. Plug it into the LSI SAS2008-based controller in the server I've been playing with ZFS on Linux on...yup, shows up fine, does ~500 MB/s sequential read.

At this point, I'm rather befuddled, as I have not yet encountered any machines where these have failed.

I plug them into some Supermicro disk enclosures we have laying around, with SAS expanders on their backplanes, running to more LSI SAS2008-based controllers, but this time on our OpenIndiana test system. Yup, show up great, speed is great.

...finally, I have a sinking feeling in my stomach, and plug them into the Windows Server 2008 R2 box in the room, with its LSI SAS2008-based controllers.

Nothing shows up in Disk Management. Nor in Event Viewer. I interrogate the card using SAS2IRCU, a CLI utility that LSI provides for reaching out and touching your card and extracting information from it, and lo, it shows the disk in the appropriate port and marked "Ready (RDY)", just like the rest.

Thoroughly confused, I have a more in-depth look in Device Manager. Rescan does nothing, nothing under the Disk drives subtree, no devices marked as needing a driver...hey, wait, what's this "Other Devices" subtree?

Lo and behold, Windows was marking the Vertex 3s as "Other Devices" and reported that it did not know what driver to use to make them go. If you forced it to use the generic "Disk drive" driver, the Vertex 3s began playing happily and zippily in the sandbox.

No, I still don't know why this is reasonable behavior, or what caused it. But I couldn't find any references to it online, so I thought I'd list it here.

Edit: This is fixed in the latest firmware available on OCZ's site for the Vertex 3 and any relatives. Since the only thing that I can see that changed in the update was that the drive no longer reports a blank in the "revision" field of the ATA response, I would presume that this is what was causing Windows to dislike identifying the drive. If you have a drive that you've updated with the firmware currently on their site, and it's still not showing up, try uninstalling it in Device Manager and then scanning for hardware changes - it should work.

No comments:

Post a Comment