This release fixes numerous issues and introduces some new features.
First, what it fixes:
Fixes #181, #173, #172, #168, #167, #166, #165, #163, #158, #156, #155, #151, #148, #127, #118, #68, #66, #43
Some of these are long overdue to be marked closed, but are officially part of this release.
One of the major improvements in these fixes is for fast format/set sector size. When these operations are performed the handle is now opened with exclusive access to block out other software and background services.
This should greatly reduce the number of times this operation is interrupted. All warnings related to changing sector sizes remain in place since there are some things, such as extra hardware in some servers, that may not be helped with this change, but for many people this will make a big difference from the testing we've done in our labs.
- O_EXCL flag used for operations that should not be interrupted while they are running (set sector size, fast format, ATA security erase, Write Same, IDD, captive DST tests).
--showFARM
added to openSeaChest_SMART to show Seagate's FARM log data. Note: You may need to run--idd short
to populate some fields if they show as "invalid"- refactored some parts of device discovery which reduced duplicate commands and retries
- Fixed a bug causing excess Inquiry-CmdDT requests when checking for supported SCSI commands on drives that do not support this old feature
- Fixed a memory allocation failure in openSeaChest_Raw
- Added OpenBSD and NetBSD support in source as well as CI to test these platforms (SAS/SATA only)
- CI added for omniOS and solaris 11.4 to test that code is always building without error for these platforms
- Added option to set SAS/SATA/NVMe host timestamp to openSeaChest_Configure --setTimestamp
- Added option to reinitialize SATA phy event counters log: --resetATAPhyEvents
- Added option to reinitialize SATA device statistics log (supported statistics only): --resetDevStats all. Statistics that support reset will show ^ in the --deviceStatistics output. This is a newer SATA feature that may not be supported on existing drives.
Initial support for CDL (command duration limits) statistics - More verbose error messages around secure file to output what the issue is when trying to open a file (for reading or writing)
- Added support for pulling NVMe telemetry log area 4
- SMART attributes update for Seagate HDD revision Bh
- fixed executable permissions prior to packaging for linux
- Fixed options that previously did not need units (time, transferlengths, sector counts) to work without units and allow units to be specified. Affected openSeaChest_PowerControl's options to change idle/standby timers and error limit in openSeaChest_Generic and openSeaChest_SMART
- Fixed bug with NVMe trim in Windows
- More hardening was implemented in this build. Most new changes behave similar to C11 annex K's bounds checking. If these detect an out of bounds issue, they will display an error about the function that detected it and the location in openSeaChest source where the error occurred. If you see one of these, please report it so we can resolve it.
- Fixed support for big endian systems. Many parts of the code relied on little endian behavior. Most notable fixes will be seen on NVMe devices, but some SATA support will also improve.
- Fixed compatibility issue with write uncorrectable on some old drives. Workaround was added to use older read-long/write-long method when supported
- Fixed detecting current/supported NVMe formats for NVMe standard 2.0 devices
- Fixed a bug parsing the date and time timestamp statistic on SATA devices. Often when reporting it would show "Invalid" because time was not set, but this can also show power on time in milliseconds so that is now supported.
- Fixed a bug reading SCT error recovery timer as the endianness was wrong.
- Fixed a bug affecting the
-i
information some USB devices will report. The issue was stopping before completing reading of all supported VPD pages - Fixed error looking up SD to SG handles in Linux
- added Aggressive scan (
-S
) support for Linux added by writing "- - -" to SCSI host scan files in sysfs - New exit codes for device not found and device busy
- Fixed a bug accessing files in
/
that caused a crash - Fixed exit code with
-d all
or--modelMatch
but all devices are skipped. This previously exited with SUCCESS (0), but now checks to determine if it was a permissions error or something else to set a more appropriate exit code