cyverse / gocommands

iRODS Command-line Tools written in Go
Other
28 stars 18 forks source link

some commands throws info with `END_TRANSACTION_AN` in irods logs #38

Open mstfdkmn opened 4 months ago

mstfdkmn commented 4 months ago

Hi, some commands like ./gocmd cat, ./gocmd ls and ./gocmd svrinfo throws the following message in irods logs.

{"processname": "irods", "groupname": "irods", "pid": "127", "channel": "stdout", "irods": {"log_category": "legacy", "log_level": "info", "log_message": "rsApiHandler: User has no permission for apiNumber 718", "request_api_name": "END_TRANSACTION_AN", "request_api_number": 718, "request_api_version": "d", "request_client_user": "mustafa", "request_host": "10.0.2.100", "request_proxy_user": "mustafa", "request_release_version": "rods4.3.0", "server_host": "dev-u0137480.irods.t.icts.kuleuven.be", "server_pid": 8699, "server_timestamp": "2024-07-15T15:14:30.296Z", "server_type": "agent", "server_zone": "u0137480"}}

It looks like something with the irods server but I see this only with the mentioned sub commands in the gocommands client. Hence I wanted to let you know about this. Thanks.

iychoi commented 4 months ago

The END_TRANSACTION_AN is called after any data access api calls. The call is to commit/rollback transactions so that other connections see the changes just made so make concurrent operations available. If the user does not have permission to execute END_TRANSACTION_AN, it will simply fail and will not retry during the process.

Did this make any issues with your system? Just want to hear if this feature causes any issues (including security).

mstfdkmn commented 4 months ago

Thanks for explaining it. No, as far as I have experienced I haven't seen any issue with this except seeing the mentioned message in logs. I was wondering why this output in the irods logs triggered by only the gocommands. Also I noticed something after your explanation that I don't see that message when said commands executed by a rodsadmin account.

iychoi commented 4 months ago

I'll keep this issue opened and revisit later to see if there is a way to not using the END_TRANSACTION_AN for read-only requests.