Null value in column "details" violates not-null constraint DETAIL: Failing row contains (4, 6, 973, 8240, active or idle., Command ABoRTed, null)

[Please complete the below template with details of the problem reported on your Web-UI. Be as detailed as possible. Community members, including developers, shall try and help. Thanks for your time in reporting this issue! We recommend purchasing commercial support for expedited support directly from the developers.]

Brief description of the problem

S.M.A.R.T. details won’t load when refreshed for my Western Digital: WDC WD10EADS-00M, I have 2 others drives from Toshiba which the smart works on. WDC is also connected on the same controllers as the 2 others.

Detailed step by step instructions to reproduce the problem

Go to Storage → Disks → click on the name, in my case, “sdd” → then your in S.M.A.R.T details for sdd → push button refresh.

Web-UI screenshot

Error Traceback provided on the Web-UI

Traceback (most recent call last): File "/opt/rockstor/src/rockstor/rest_framework_custom/generic_view.py", line 40, in _handle_exception yield File "/opt/rockstor/src/rockstor/storageadmin/views/disk_smart.py", line 123, in post return self._info(disk) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/transaction.py", line 371, in inner return func(*args, **kwargs) File "/opt/rockstor/src/rockstor/storageadmin/views/disk_smart.py", line 90, in _info state=l[1], etype=l[2], details=l[3]).save() File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/base.py", line 545, in save force_update=force_update, update_fields=update_fields) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/base.py", line 573, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/base.py", line 654, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/base.py", line 687, in _do_insert using=using, raw=raw) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/manager.py", line 232, in _insert return insert_query(self.model, objs, fields, **kwargs) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/query.py", line 1514, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/models/sql/compiler.py", line 903, in execute_sql cursor.execute(sql, params) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/backends/util.py", line 53, in execute return self.cursor.execute(sql, params) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/utils.py", line 99, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "/opt/rockstor/eggs/Django-1.6.11-py2.7.egg/django/db/backends/util.py", line 53, in execute return self.cursor.execute(sql, params) IntegrityError: null value in column "details" violates not-null constraint DETAIL: Failing row contains (4, 6, 973, 8240, active or idle., Command ABoRTed, null).

@kziegler Welcome to the Rockstor community and thanks for reporting this. We haven’t had one of these for a while now; it looks very much like a parsing error / bug when Rockstor tries to format the error log returned from the drive so that it might be presented in the Web-UI.

In order to get this sorted we will have to have an exact copy of the output received from the smartctl commands that are run in the background on the problem drive when the refresh button is pressed. If you could execute the following commands as root via ssh and return the resulting smart-issue-report.tar.gz file it would be a great help to getting this sorted:

cd ~
mkdir /root/smartdumps
/usr/sbin/smartctl -a /dev/sdd > /root/smartdumps/smart-a.out
/usr/sbin/smartctl -c /dev/sdd > /root/smartdumps/smart-c.out
/usr/sbin/smartctl -l error /dev/sdd > /root/smartdumps/smart-l-error.out
/usr/sbin/smartctl -l selftest -l selective /dev/sdd > /root/smartdumps/smart-l-selftest-l-selective.out
/usr/sbin/smartctl --info /dev/sdd > /root/smartdumps/smart--info.out
/usr/sbin/smartctl -H --info /dev/sdd > /root/smartdumps/smart-H--info.out
/usr/bin/lsblk > /root/smartdumps/lsblk.out
tar czf /root/smart-issue-report.tar.gz /root/smartdumps/*.out

(don’t worry about the “tar: Removing leading `/’ from member names” message)

The above commands are assuming that the problem drive is still named sdd, if not then please change the dev name in each command accordingly.

And for the sake of completeness the client machine scp command to retrieve the file from Rockstor would be:-

scp root@rockstor-ip-address:/root/smart-issue-report.tar.gz .

Which should copy the file of interest to the current directory of the client machine.

Please email the smart-issue-report.tar.gz file as an attachment to support@rockstor.com with a note indicating it relates to this forum thread and the following referenced issue.

Thanks for helping to get this bug sorted, it may take some time but I have opened an issue to keep track of progress:

Nice for the quick feedback!
Mail with attachment and indicator to this thread and issue has been sent.

@kziegler My appologies, I’m afraid I dropped the ball on this one, sort of.
I have just realised that a duplicate report has now been fixed so as of testing channel release 3.8.15-3 your reported issue should be sorted only against the now duplicate marked:

Sorry for the slip-up and lack of attribution in the dev channel updates on my part here.