g6094199
(S.)
January 25, 2018, 2:53pm
1
Detailed step by step instructions to reproduce the problem
Importet an 4 Disk Pool. Set the compression to zlib. added “extra mount options” autodefrag. after applying the compression error popped up. Zlib got successfully set
but the “autodefrag” didnt got added. So imho this is NOT a compression error instead of an “extra mount options” problem.
Web-UI screenshot
Error Traceback provided on the Web-UI
Traceback (most recent call last):
File "/opt/rockstor/eggs/gunicorn-19.7.1-py2.7.egg/gunicorn/workers/sync.py", line 68, in run_for_one
self.accept(listener)
File "/opt/rockstor/eggs/gunicorn-19.7.1-py2.7.egg/gunicorn/workers/sync.py", line 27, in accept
client, addr = listener.accept()
File "/usr/lib64/python2.7/socket.py", line 202, in accept
sock, addr = self._sock.accept()
error: [Errno 11] Resource temporarily unavailable
phillxnet
(Philip Guyton)
January 25, 2018, 6:36pm
2
@g6094199 Hello again and thanks for the report.
We definitely have a bug around this area as I’ve seen something like this myself, for me I think I had to double enter something or return one of the setting to none before it would stick a second time: didn’t quite pin it down at the time. Pretty sure it’s a bug in the UI input validation code somewhere and have been meaning to pin it down and sort it for a while now.
Do you fancy opening a GitHub issue with your findings (you could link back to this forum post) as I should have done a while back? If not no worries I’ll get around to it soon. Best if we have a repeatable scenario to reproduce, that way we can prove the fix. I don’t think this is related to the pool import prior however so should be light weigh to reproduce.
Thank again for the bug report.
phillxnet
(Philip Guyton)
February 14, 2018, 11:43am
3
@g6094199 Quick update.
and
Finally got around to having a quick look at this and I’ve now found a reliable reproducer and have thus created the following issue:
opened 11:30AM - 14 Feb 18 UTC
closed 01:17PM - 05 Mar 18 UTC
enhancement
Thanks to forum member g6094199 in the following thread for highlighting this is… sue. When a pool is imported it's default "Compression" is displayed as "Empty". While this default setting persists it is not possible to add "Extra mount options" as the following input validation error of the unchanged "Empty" compression setting is thrown:
Unsupported compression algorithm(). Use one of ('lzo', 'zlib', 'no')
This does not affect newly created pools that default to 'no' for compression and once an imported pool has it's compression set, subsequent attempts to add/edit "Extra mount options" succeeds: given associated validation checks pass.
The issue author suggests that "None" or "OFF" (as per non editable system pool indicator) would be a better default setting indicator than “no”. And that these indicator should be consistent named.
Please update the following forum thread with this issue's resolution:
https://forum.rockstor.com/t/unsupported-compression-algorithm-use-one-of-lzo-zlib-no/4381
It is not exactly as you describe but once I get into it, now we have a reproducer, related triggers should also be fixed; hopefully.
And it seems that I was way off initially with:
Oh well .
I hope to have a look at this shortly as it folds into some larger issues I am in the process of addressing.
phillxnet
(Philip Guyton)
March 5, 2018, 8:59pm
4
@g6094199 Quick update re:
As of stable release version 3.9.2-17 your reported issue re imported pools and their compression / extra mount options weirdness should now be fixed via the following merged pull request:
rockstor:master
← phillxnet:1896_empty_compression_setting_on_imported_pools_blocks_extra_mount_options
opened 09:05PM - 16 Feb 18 UTC
Newly created pools have Pool.compression set to 'no' however imported pools, an… d the system pool, defaulted to Null / None for this field. Consequently "Empty" was indicated by x-editable inline compression edit on pool overview and detail pages. This entry and it's consequent value failed the dual submission of compression and mount options.
Summary:
- Set imported pools to 'no' compression by default.
- Handle "Empty" output from inline editable of compression setting.
- Put "Empty" inline editable colour in line with links as not an error condition (to allow for legacy imported pools).
- Change "Empty" legacy pool imports compression text to "Unset".
- Improve and normalise compression tooltip text.
- Add 'compression' and 'extra mount options' tooltips to Pool overview.
- Remove inconsistent root pool mount edit options see issue #1861 where compression and mount options were offered on system drive details page.
- Display system Pool.compression and Pool.mnt_options as per other pools but without edit options: i.e. 'no', if set, rather than 'OFF' as a hard wired value.
Fixes #1896
and additionally:
Fixes #1861
Please see both issues texts for context.
@schakrava Ready for review.
Test for 'proof of fix':
Imported pools on fresh build and ensured that their 'extra mount options' could be inline edited prior to their 'Empty' (post pr 'Unset') compression entries having a selection made. Also edited system pool's compression and mnt_options entries in storageadmin_pool db to ensure future configuration on these elements will display as intended. Tested a completely fresh build to ensure system pool had it's Pool.compression set as intended.
Outstanding caveat: When editing both compression and mount options in Pool details page without a page refresh between them, stale settings can be re-applied. This is due to the Pool info held by that page not being refreshed and the js using this outdated info on the second settings submission. This bug can be addressed separately against an issue opened for this purpose.
Thanks for your patience: sorted the missing tooltips and colouring while I was there.
1 Like