Multiple "Your profile has been successfully updated." messages
If you go through a irods user delete+create cycle, multiple identical "Your profile has been successfully updated." messages will accumulate in the interface.
@ndebuhr The message "Your profile has been successfully updated." can be closed by clicking on the "X" icon in the message ribbon and every time "Save changes" button is clicked, this message ribbon will show up if the action succeeds. I think this works by design unless I missed something here.
I looked into this again for review and encountered an issue with deletion of an account:
@hyi could you please take quick look at the account
@martinseul I took a look at both hydroshare log and irods log but did not find any error message related to deletion of this account. I also checked you corresponding irods account did have one pdf file in it which appears to indicate the account deletion action did not take effect since otherwise, the file should be deleted as part of account deletion operation. In other words, your iRODS account looks good. Is it OK for me to get into admin and try to delete your iRODS account as an admin so I can see what happens and debug any issues if any?
@martinseul to provide an update per 4/28 meeting
@hyi so the deletion is not executed because the user has files in his account, this is not communicated to the user. Can we change the message that to either inform the user why the deletion was not executed or put up a warning that deletion of the account will also remove all related files and then delete diles and account. I prefer the second pathway to simplify deletion. It is common practice to remove files when deleting an account and the userzone is a temporary place for files anyway.
@martinseul The current implementation should actually delete the corresponding iRODS user along with all files for the user, which is why I am asking you whether it is OK for me to delete your iRODS account as an admin to debug to see what is going on, since it should delete your account along with all files in your account. Let me know if you give a go ahead. I will then try to delete your account as an admin and fix any issues if any.
Not sure if these are the same issues that @martinseul encountered... but making a note of them.
Seems I can't delete my account because I have a CAT_INVALID_USER but I can't create a new account because CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME ...
Attempting account delete on beta

Nov 17 10:11:56 pid:28265 NOTICE: chlDelCollByAdmin delete access failure -819000
Nov 17 10:11:56 pid:28265 NOTICE: chlDelCollByAdmin cmlExecuteNoAnswerSql(rollback) succeeded
Nov 17 10:11:56 pid:28265 NOTICE: db_del_coll_by_admin_op cmlExecuteNoAnswerSql(rollback) succeeded
Nov 17 10:11:56 pid:28265 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for msiDeleteUser status = -827000 CAT_INVALID_USER
Nov 17 10:11:56 pid:28265 NOTICE: executeRuleBody: Microservice or Action msiDeleteUser Failed with status -827000
Nov 17 10:11:56 pid:28265 NOTICE: execRuleNodeRes: applyRule Failed: acDeleteUserF1 with status -827000
Nov 17 10:11:56 pid:28265 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for acDeleteUserF1 status = -827000 CAT_INVALID_USER
Nov 17 10:11:56 pid:28265 NOTICE: executeRuleBody: Microservice or Action acDeleteUserF1 Failed with status -827000
Nov 17 10:11:56 pid:28265 NOTICE: execRuleNodeRes: applyRule Failed: acDeleteUser with status -827000
Nov 17 10:11:56 pid:28265 DEBUG:
Nov 17 10:11:56 pid:28265 remote addresses: 152.54.3.110, ::1 ERROR: applyRuleArg: -827000, [-] /repos/irods/server/re/include/irods_re_plugin.hpp:326:irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo *, irods::DONT_AUDIT_RULE>::call(std::string, std::string, OP, As &&...) [T = std::__1::tuple<>, C = RuleExecInfo *, Audit = irods::DONT_AUDIT_RULE, OP = std::__1::function<irods::error (const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack &&)>, As = <const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack>] : status [CAT_INVALID_USER] errno [] -- message [applyRuleUpdateParams failed for rule acDeleteUser]
[-] /repos/irods/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/libirods_rule_engine_plugin-irods_rule_language.cpp:348:irods::error exec_rule(irods::default_re_ctx &, const std::string &, std::list<boost::any> &, irods::callback) : status [CAT_INVALID_USER] errno [] -- message [applyRuleUpdateParams failed for rule acDeleteUser]
Nov 17 10:11:56 pid:28265 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -827000
So try to manually delete it from a shell:
$ iadmin rmuser dcowan
remote addresses: 152.54.3.110 ERROR: rcGeneralAdmin failed with error -827000 CAT_INVALID_USER
Level 0: Invalid user
Level 1: DEBUG:
Attempting account create on beta

[dcowan@usersdev log]$ tail -f rodsLog.2022.11.16
Nov 17 10:40:17 pid:28920 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUser with status -809000
Nov 17 10:40:17 pid:28920 DEBUG:
Nov 17 10:40:17 pid:28920 remote addresses: 152.54.3.110, ::1 ERROR: applyRuleArg: -809000, [-] /repos/irods/server/re/include/irods_re_plugin.hpp:326:irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo *, irods::DONT_AUDIT_RULE>::call(std::string, std::string, OP, As &&...) [T = std::__1::tuple<>, C = RuleExecInfo *, Audit = irods::DONT_AUDIT_RULE, OP = std::__1::function<irods::error (const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack &&)>, As = <const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack>] : status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME] errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]
[-] /repos/irods/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/libirods_rule_engine_plugin-irods_rule_language.cpp:348:irods::error exec_rule(irods::default_re_ctx &, const std::string &, std::list<boost::any> &, irods::callback) : status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME] errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]
Nov 17 10:40:17 pid:28920 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -809000
Nov 17 10:40:17 pid:28923 remote addresses: 152.54.3.110, ::1 ERROR: [_rsGeneralAdmin:836] - [CAT_INVALID_USER: user does not exist
]
Nov 17 10:40:17 pid:28923 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -827000
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[1]=/hydroshareuserdevZone/home
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[2]=/hydroshareuserdevZone/home/dcowan
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[3]=dcowan
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[4]=hydroshareuserdevZone
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[5]=
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[6]=
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[7]=
Nov 17 10:41:27 pid:28982 NOTICE: _cllExecSqlNoResult: SQLExecDirect error: -1 sql:insert into R_COLL_MAIN (coll_id, parent_coll_name, coll_name, coll_owner_name, coll_owner_zone, coll_type, coll_info1, coll_info2, create_ts, modify_ts) values (nextval('R_ObjectID'), ?, ?, ?, ?, ?, ?, ?, ?, ?)
Nov 17 10:41:27 pid:28982 NOTICE: SQLSTATE: S1010
Nov 17 10:41:27 pid:28982 NOTICE: SQLCODE: 0
Nov 17 10:41:27 pid:28982 NOTICE: SQL Error message: [unixODBC][Driver Manager]Function sequence error
Nov 17 10:41:27 pid:28982 NOTICE: SQLSTATE: 23505
Nov 17 10:41:27 pid:28982 NOTICE: SQLCODE: 1
Nov 17 10:41:27 pid:28982 NOTICE: SQL Error message: ERROR: duplicate key value violates unique constraint "idx_coll_main3";
Error while executing the query
Nov 17 10:41:27 pid:28982 NOTICE: chlRegCollByAdmin cmlExecuteNoAnswerSQL(insert) failure -809000
Nov 17 10:41:27 pid:28982 NOTICE: chlRegCollByAdmin cmlExecuteNoAnswerSql(rollback) succeeded
Nov 17 10:41:27 pid:28982 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for msiCreateCollByAdmin status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action msiCreateCollByAdmin Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateCollByAdmin with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for acCreateCollByAdmin status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateCollByAdmin Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUserZoneCollections with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for acCreateUserZoneCollections status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateUserZoneCollections Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateDefaultCollections with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for acCreateDefaultCollections status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateDefaultCollections Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUserF1 with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: 152.54.3.110, ::1 ERROR: executeRuleAction Failed for acCreateUserF1 status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateUserF1 Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUser with status -809000
Nov 17 10:41:27 pid:28982 DEBUG:
Nov 17 10:41:27 pid:28982 remote addresses: 152.54.3.110, ::1 ERROR: applyRuleArg: -809000, [-] /repos/irods/server/re/include/irods_re_plugin.hpp:326:irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo *, irods::DONT_AUDIT_RULE>::call(std::string, std::string, OP, As &&...) [T = std::__1::tuple<>, C = RuleExecInfo *, Audit = irods::DONT_AUDIT_RULE, OP = std::__1::function<irods::error (const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack &&)>, As = <const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack>] : status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME] errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]
[-] /repos/irods/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/libirods_rule_engine_plugin-irods_rule_language.cpp:348:irods::error exec_rule(irods::default_re_ctx &, const std::string &, std::list<boost::any> &, irods::callback) : status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME] errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]
Nov 17 10:41:27 pid:28982 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -809000
Nov 17 10:41:27 pid:28985 remote addresses: 152.54.3.110, ::1 ERROR: [_rsGeneralAdmin:836] - [CAT_INVALID_USER: user does not exist
]
Nov 17 10:41:27 pid:28985 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -827000
Attempt manually create in shell:
iadmin mkuser dcowan rodsuser
remote addresses: 152.54.3.110 ERROR: rcGeneralAdmin failed with error -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Level 0: Error -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Level 1: DEBUG:
Seems like my inability do remove/add iRods account is perhaps related to https://github.com/irods/irods/issues/3931. Or perhaps https://github.com/irods/irods/issues/3798 or https://github.com/irods/irods/issues/1976
Looks like this issue (#3056) is resolved as of HS 2.6.1 So I created a new issue https://github.com/hydroshare/hydroshare/issues/5104 for the broken IRODS account deletion