Unable to change readonly=value when SMB share is active

It used to be the case in CORE that you could change a dataset property such as readonly=on/off on a live SMB dataset however in SCALE I get the following error.

When replicating data from one system to another that may have upwards of 50 SMB shares if I ever had to failover to the backup server it would be incredibly annoying to have to disable all 50 shares one at a time.

Annoyingly even if I disable the entire SMB service I still get this error.

Any thoughts from anyone?

PS: You can change the value via the CLI but it would be nice to have this functionality in the UI.

Obviously that’s probably not working the way it’s designed, and yes there are lots of things you can do from shell that are prevented by the backend.

What we’re trying to protect against is users changing acltype out from under live shares because it can cause undefined behavior like triggering assertions that the expected ACL xattrs are available.

root@testLME4N26UMU[~]# midclt call pool.dataset.update dozer/FOO '{"readonly": "OFF"}' > /dev/null
root@testLME4N26UMU[~]# midclt call pool.dataset.update dozer/FOO '{"readonly": "ON"}' > /dev/null 

So it seems that UI is submitting extra payload that is triggering the validation error.

https://ixsystems.atlassian.net/browse/NAS-134516

1 Like

Thank you