smart test crashed with "TypeError: 'int' object is not iterable"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Checkbox Provider - Base |
Fix Released
|
High
|
Daniel Manrique |
Bug Description
CID: 201211-12073
This system comes with a hybrid SSD, 500 GB HDD as sda, 32 GB SSD as sdb
But the smart job would crash on sdb with the following error message:
-------
ID: 2013.com.
Category: 2013.com.
... 8< -------
INFO Starting SMART self-test on /dev/sdb
Traceback (most recent call last):
File "/tmp/nest-
sys.
File "/tmp/nest-
status, returncode = poll_for_
TypeError: 'int' object is not iterable
-------
Outcome: job failed
Reproduce rate: 2 out of 2
Also, the extended SMART test from Disks utility works fine on it.
Version information:
root@201211-
checkbox:
Installed: 0.17.10+
Candidate: 0.17.10+
Version table:
*** 0.17.10+
500 http://
100 /var/lib/
0.
500 http://
root@201211-
plainbox:
Installed: 0.20+bzr3573+
Candidate: 0.20+bzr3573+
Version table:
*** 0.20+bzr3573+
500 http://
100 /var/lib/
0.5.3-2 0
500 http://
root@201211-
provider '2013.com.
provider '2013.com.
provider '2013.com.
Related branches
- Zygmunt Krynicki (community): Approve
-
Diff: 11 lines (+1/-1)1 file modifiedproviders/plainbox-provider-checkbox/bin/disk_smart (+1/-1)
Changed in plainbox-provider-checkbox: | |
milestone: | none → 0.19 |
status: | Confirmed → In Progress |
assignee: | nobody → Daniel Manrique (roadmr) |
Changed in plainbox-provider-checkbox: | |
status: | In Progress → Fix Committed |
Changed in plainbox-provider-checkbox: | |
status: | Fix Committed → Fix Released |
Hi Sam,
Could you do the following on the affected system?
sudo smartctl -t short /dev/sdb
wait 1 minute, then
sudo smartctl -l selftest /dev/sdb | tee /tmp/smartctl- sdb.log
then please attach the /tmp/smartctl- sdb.log file.
Anyway, my theory is that poll_for_status is having trouble and returning 1 (there's only one place in the method where it could return 1, everywhere else it will return a status and return code). So perhaps the fix (if you want to try it) would be this patch: plainbox- provider- checkbox/ bin/disk_ smart 2014-11-13 13:19:44 +0000 plainbox- provider- checkbox/ bin/disk_ smart 2015-02-12 14:54:08 +0000
logging. debug(' Polling timed out')
args. timeout -= args.sleep
--- providers/
+++ providers/
@@ -234,7 +234,7 @@
if args.timeout is not None:
if args.timeout <= 0:
- return 1
+ return "Polling timed out", 1
else:
If you apply the patch, you could just plainbox run -i 2013.com. canonical. certification: :disk/smart_ sdb to test it again.
I'll set to incomplete pending your reply but I'm pretty sure this is the problem.