CAM status: CCB request completed with an error. Dell R230 booting from Samsung Evo NVME -> USB3

Howdy All,

I found some previous threads on similar issues here and here. My issue appears to be similar, but I'm really trying to understand here whether or not this has any likelihood of being fixed at all.

Background: I'm on FreeBSD 12.2-RELEASE on a Dell R230 server. I have had years running without issue on FreeBSD 10, 11, and then 12 on a DIY tower server for storage, using internal SSDs for boot disks. I decided to wall mount some rackmount networking gear and a 1U server with large (14TB) drives in ZFS to replace this. Needing a solution I found the Dell R230 line of 1U servers with 4x 3.5" bays and SATA, with internal USB. Initially I had 2x 32GB USB 2.0 flash drives as boot drives in a mirrored zroot, which functioned fine for months. Then we had a recent extended power outage (Texas) and on recovery neither drive would boot. Thinking the drives had gone bad, I acquired an NVME SSD and an enclosure and reinstalled FreeBSD 12.2-RELEASE from a USB mini image installer. After installation I was able to successfully mount the old zroot pool from one of the USB flash drives, so I now know that the data was uncorrupted, even though neither will boot still.

With booting from the new Samsung 970 EVO NVME drive in an Anker USB enclosure after some time the server starts spamming these CAM CCB messages for write operations into the log, and eventually the server locks up and cannot be controlled. Only a hard power cycle restores operations.

FWIW, I believe this is related to the disk going into idle mode which I can't even disable:

Code:
root@services:~ # camcontrol apm /dev/da0
camcontrol: ATA SETFEATURES DISABLE APM via pass_16 failed
root@services:~ # camcontrol standby /dev/da0 -t 0
camcontrol: ATA STANDBY via pass_16 failed
root@services:~ # camcontrol idle /dev/da0 -t 0
camcontrol: ATA IDLE via pass_16 failed

In the interim, I have a system cronjob to output `date` to a file on /zroot/ every minute to keep USB sleep from being triggered.

After researching this issue thoroughly it seems to be 100% an issue in the USB driver software inside of FreeBSD. Is this an area that will be fixed in FreeBSD 13? Is there any plan to resolve this? It appears to be a long-standing issue that doesn't affect other operating systems. I love FreeBSD, but I feel like I may have no choice to switch to Linux for this box because I don't want to spend $4k+ on a new server which supports internal NVME boot drives.
 
... after some time the server starts spamming these CAM CCB messages ...
Can you cut and paste the exact messages, with the ASC/ASCQ and the offending CDB? It might help debug the problem, if it not the old problem related to idle disks.

To your question of the USB mass storage driver and how it interacts with idle modes: No idea.
 
Back
Top