sensu-plugins-disk-checks icon indicating copy to clipboard operation
sensu-plugins-disk-checks copied to clipboard

Error running check-smart-status.rb - undefined method `name' for #<Disk:0x0000000253d8b8>

Open vadim6 opened this issue 7 years ago • 3 comments

I'm using v2.5.1 of check-smart-status.rb, when running it with the example json it's failing in line 219.

sudo ./check-smart-status.rb -j ~/smart.json Check failed to run: undefined method name' for #Disk:0x0000000253d8b8, ["/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-disk-checks-2.5.1/bin/check-smart-status.rb:219:in block in run'", "/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-disk-checks-2.5.1/bin/check-smart-status.rb:206:in each'", "/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugins-disk-checks-2.5.1/bin/check-smart-status.rb:206:in run'", "/opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/sensu-plugin-1.3.0/lib/sensu-plugin/cli.rb:57:in block in class:CLI'"]`

I've found that changing #{dev.name} to #{dev.device_path} does the trick in line 219: criticals << "Overall health check failed on #{dev.name}"

Not sure if it's only something on my system or not though...

vadim6 avatar Dec 31 '17 15:12 vadim6

Can you please include an exmaple of what smart.json should look like so I can do some testing?

majormoses avatar Jan 26 '18 17:01 majormoses

Sounds good can you create a PR to fix it?

majormoses avatar Jan 26 '18 17:01 majormoses

I am getting the same error on three of my servers. The workaround of vadim6 does not seem to work anymore.

Check failed to run: undefined method name' for #<Disk:0x0000564789ecbcc0>, ["/usr/lib/nagios/plugins/check-smart-status.rb:220:in block in run'", "/usr/lib/nagios/plugins/check-smart-status.rb:207:in each'", "/usr/lib/nagios/plugins/check-smart-status.rb:207:in run'", "/var/lib/gems/2.5.0/gems/sensu-plugin-4.0.0/lib/sensu-plugin/cli.rb:59:in `block in class:CLI'"]

smart.json is attached smart.json.txt

The servers are all HP ProLiant SE316M1 all using an LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] Raid Controller (all Disks in JBOD Mode).

I can run smartctl -a on all disks configured in smart.json without a problem. The Poblem also exists if i write only one disk into the json (of course the disk-id changes).

Attached is also the whole output of a smartctl -a on /dev/sda: smartctl-sda.txt

If I can provide any more information that could help to solve the problem, just let me know.

AMD1212 avatar Jan 08 '20 19:01 AMD1212