Content:
Traceback (most recent call last):
File “/usr/lib64/python2.7/logging/handlers.py”, line 76, in emit
if self.shouldRollover(record):
File “/usr/lib64/python2.7/logging/handlers.py”, line 154, in shouldRollover
msg = “%s\n” % self.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 724, in format
return fmt.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 464, in format
record.message = record.getMessage()
File “/usr/lib64/python2.7/logging/init.py”, line 324, in getMessage
msg = str(self.msg)
TypeError: str returned non-string (type list)
Logged from file pool_scrub.py, line 78
Traceback (most recent call last):
File “/usr/lib64/python2.7/logging/handlers.py”, line 76, in emit
if self.shouldRollover(record):
File “/usr/lib64/python2.7/logging/handlers.py”, line 154, in shouldRollover
msg = “%s\n” % self.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 724, in format
return fmt.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 464, in format
record.message = record.getMessage()
File “/usr/lib64/python2.7/logging/init.py”, line 324, in getMessage
msg = str(self.msg)
TypeError: str returned non-string (type list)
Logged from file pool_scrub.py, line 39
Something seems to have gone wrong, and the scrub is not running.
This has been working perfectly for as long as I have used scheduled scrubs, so something must have changed with one of the later updates.
Contents:
Traceback (most recent call last):
File “/usr/lib64/python2.7/logging/handlers.py”, line 76, in emit
if self.shouldRollover(record):
File “/usr/lib64/python2.7/logging/handlers.py”, line 154, in shouldRollover
msg = “%s\n” % self.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 724, in format
return fmt.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 464, in format
record.message = record.getMessage()
File “/usr/lib64/python2.7/logging/init.py”, line 324, in getMessage
msg = str(self.msg)
TypeError: str returned non-string (type list)
Logged from file pool_scrub.py, line 78
Traceback (most recent call last):
File “/usr/lib64/python2.7/logging/handlers.py”, line 76, in emit
if self.shouldRollover(record):
File “/usr/lib64/python2.7/logging/handlers.py”, line 154, in shouldRollover
msg = “%s\n” % self.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 724, in format
return fmt.format(record)
File “/usr/lib64/python2.7/logging/init.py”, line 464, in format
record.message = record.getMessage()
File “/usr/lib64/python2.7/logging/init.py”, line 324, in getMessage
msg = str(self.msg)
TypeError: str returned non-string (type list)
Logged from file pool_scrub.py, line 39
Oh, I probably should mention that I’m on the latest development build 3.9.0-16
Looking into this, the error is being caused by pool_scrub.py trying to log an APIException, changing lines 39 and 78 to:
logger.exception(e.detail)
allows the script to complete without error, afterwards in my log I see this:
[u'Invalid api end point: http://127.0.0.1:8000/api/pools/Primary/scrub']
[u'Invalid api end point: http://127.0.0.1:8000/api/pools/Primary/scrub/status']
We have recently changed the pools and disks API’s from using their name field to using their db id. Looks like this got missed; oops.
Ie: For the pools #1741, and for the disks #1746 with a small associated follow up #1751
Do you fancy opening a GitHub issue on this in our rockstor-core repo as it would be a great one to get sorted? And of course if you fancy having a go at a fix by way of a pull request for it that would be great; just note your intention to do so in the issue as that should help avoid duplication of effort as this should be a pretty high priority to fix. Know we know whats going wrong. Otherwise I can have a look shortly hopefully.
@KarstenV, @kbogert, and @Flyer
I’ve just submitted a pull request to address this issue. It is awaiting review and further testing but looks good so far. Turned out to be a little more complicate than I had at first hoped. Oh well.