# Controller A General UDisk Synchronize-Cache Failure — 2026-07-28

Status: complete
Type: evidence
Updated: 2026-08-01
Next Action: none; retain as historical optional-command failure evidence, with the reactive VBUS fallback superseded by the standards-led production baseline
Parent: work/wp/completed/wp-characterize-usb-filex-write-size-durability.md

## Specimen

- Host label: `A-CTRL`
- USB identity: `abcd:1234`, General UDisk
- USB serial: `1003112253528015858612`
- Capacity: 8,053,063,680 bytes
- Partition: MBR `/dev/sda1`, FAT32 LBA, sectors 32 through 15728639
- FAT32 geometry: 512-byte sectors, 4 KiB clusters, 2,112 reserved
  sectors, two FATs
- Volume UUID: `6A6D-FCBD`

The specimen was formatted by Windows before insertion in Controller A.

## Controller Result

The guarded 1 MiB four-size screen ran on diagnostic S-record
`F2FEA7E5457E854D104BB79BD9F263DCBCCEFBFDD0EA67154DA27EE26218F942`.

For 16, 32, 64, and 96 KiB:

- every payload reached exactly 1,048,576 bytes;
- every write call completed;
- the first `fx_media_flush()` returned FileX `0x90` (`FX_IO_ERROR`);
- rename and controller readback verification did not run;
- the diagnostic failed closed and the 7 MiB tier was not started.

The active USBX FileX driver implements `FX_DRIVER_FLUSH` with SCSI
`SYNCHRONIZE CACHE(10)`. A transport or sense failure is translated to FileX
failure. The size-independent failure at that exact phase was subsequently
reproduced directly on the Pi.

## Read-Only Pi Inspection

The Pi enumerated and read the complete block device without USB transport or
kernel I/O errors. Unmounted `fsck.vfat -n -v` reported:

- both FAT copies differ but appear individually intact;
- the first FAT was selected for analysis;
- the boot-sector label is absent while root contains `A-CTRL`;
- the free-cluster summary is stale;
- the filesystem was left unchanged.

Read-only mounting succeeded. Only Windows `System Volume Information`
metadata remained; no diagnostic CSV or temporary file was published.

## Direct SCSI Reproduction

`sg3-utils` was installed on `srv-rpi00.local`, and the unmounted device was
revalidated by serial before issuing the same non-data SCSI command.

- Standard inquiry: SCSI-2, General UDisk revision 5.00.
- Unit-serial VPD inquiry: malformed response.
- All-pages mode sense: `Illegal Request`.
- Exact synchronize-cache CDB:
  `35 00 00 00 00 00 00 00 00 00`.
- Result: `Illegal Request / Invalid field in CDB`.
- `sg_sync` exit status: `5`.

This direct reproduction proves that the UDisk rejects or incorrectly
implements the standard synchronize-cache command independently of the
Renesas controller and USBX transport.

## Disposition

This is not evidence that 96 KiB is less reliable than the smaller write
sizes: all four sizes reached their exact payload and failed at the same
durability barrier. It proves that strict synchronize-cache enforcement
rejects this otherwise writable but non-compliant legacy USB device and that
the failed transaction can leave FAT metadata needing repair.

Do not qualify or reuse this filesystem without repair or reformat. Any
fallback for media that does not implement SYNCHRONIZE CACHE needs an explicit
durability policy and separate power-removal qualification; silently treating
the unsupported command as durable success would recreate false-success risk.

Subsequent schematic review and direct target testing proved that Controller A
can physically remove USB connector VBUS for five seconds while the controller
continues running. This makes a genuine power-loss/remount fallback technically
available, but it remains separately gated until implemented and qualified.
See `work/evidence/controller-a-usb-vbus-electrical-proof-20260728.md`.
