Skip to content

How to Resolve CRS-4228: Value of attribute is missing

  • by

CRS-4228

When I tried to modify a ACL attribute of a resource, it failed with CRS-4228 like this:

[root@primary01 ~]# crsctl modify resource ora.orclcdb.db -attr "ACL=owner:oracle:rwx,pgrp:oinstall:r--,other::r--,group:dba:r-x,group:oper:r-x,group:racdba:r-x,user:grid:rwx" -unsupported
CRS-4228: Value of attribute 'pgrp:oinstall:r--' is missing

CRS-4000: Command Modify failed, or completed with errors.

CRS-4228 means that Oracle found there're multiple attributes to be modified when we issue crsctl modify resource, but there's no other value to be set. As we can see, there's only one attribute ACL to be set. Is there any misunderstanding?

This is because the value string we want to set contains commas (,) which is the separator of attributes.

Solution

To solve CRS-4228, we should try to escape commas and make the value string as a whole. But how to wrap the string? We need some clues.

Coincidentally, Oracle does mention how to deal with values containing commas in command crsctl modify resource section:

If an attribute value for an attribute name-value pair contains commas, then the value must be enclosed in single quotation marks ('').

So we should use an extra pair of single quotation mark to wrap the string value as the documentation said.

[root@primary01 ~]# crsctl modify resource ora.orclcdb.db -attr "ACL='owner:oracle:rwx,pgrp:oinstall:r--,other::r--,group:dba:r-x,group:oper:r-x,group:racdba:r-x,user:grid:rwx'" -unsupported

We solved it.

Leave a Reply

Your email address will not be published.