Further investigation revealed that the My Cloud OS5 memory test is a fraud.
The dashboard calls a CGI compiled binary program named “smart.cgi
”, which then calls another compiled binary program named “sys_diag
”, and this is where things get interesting.
diagnostics.html > diagnosticsDiag.js > smart.cgi > sys_diag
The WD “sys_diag
” compiled binary program does NOT actually test the memory at all, it merely calls the “dmidecode
” Linux program and gets the size of all installed memory modules.
dmidecode -t 17 | grep "Size: "
The problem definitely exists within the WD “sys_diag
” compiled binary program, because it’s XML output indicates a memory error, yet the “dmidecode
” Linux program output is fine.
# cat "/var/www/xml/sys_diag.xml"
<config>
<sys_diag>
<rtc>passed</rtc>
<usb1>not exist</usb1>
<usb2>not exist</usb2>
<usb3>not exist</usb3>
<hdd1>passed</hdd1>
<hdd2>passed</hdd2>
<hdd3>not exist</hdd3>
<hdd4>not exist</hdd4>
<memory>failed</memory>
<temperature>passed</temperature>
<fan>passed</fan>
</sys_diag>
</config>
The debug output of the WD “sys_diag
” compiled binary program seems to think that 2 + 2 = 0
, which seals the deal. WD and their so-called developers borked it yet again.
# /usr/sbin/sys_diag -d
Size: [2] [GB]
Size: [2] [GB]
total size = 0 MB
memory size= 0M
memory status: failed
Lastly, here’s the “dmidecode
” Linux program output when executed manually from the command line.
# dmidecode -t 17 | grep "Size: "
Size: 2 GB
Size: 2 GB
For comparison, here’s the full output of the “dmidecode
” Linux program, which clearly shows that the memory is fine., despite not being properly tested.
# dmidecode -t 17
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Handle 0x000D, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x000B
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2 GB
Form Factor: DIMM
Set: None
Locator: A1_DIMM0
Bank Locator: A1_BANK0
Type: DDR3
Type Detail: Unknown
Speed: 1600 MT/s
Manufacturer: InnoDisk
Serial Number: XXXXXXXX
Asset Tag: A1_AssetTagNum0
Part Number: M3SW-2GSJCL0C-QDM
Rank: 1
Configured Memory Speed: 1066 MT/s
Minimum Voltage: 1.35 V
Maximum Voltage: 1.5 V
Configured Voltage: 1.35 V
Handle 0x000F, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x000B
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2 GB
Form Factor: DIMM
Set: None
Locator: A1_DIMM1
Bank Locator: A1_BANK1
Type: DDR3
Type Detail: Unknown
Speed: 1600 MT/s
Manufacturer: InnoDisk
Serial Number: XXXXXXXX
Asset Tag: A1_AssetTagNum1
Part Number: M3SW-2GSJCL0C-QDM
Rank: 1
Configured Memory Speed: 1066 MT/s
Minimum Voltage: 1.35 V
Maximum Voltage: 1.5 V
Configured Voltage: 1.35 V