Hi Everybody,
It turns out that the problem had to do with the addition of the unset IRODS_DATABASE_USER_PASSWORD_SALT environment variable. The original:
"environment_variables": {},
was changed to:
"environment_variables": {
"IRODS_DATABASE_USER_PASSWORD_SALT": ""
},
and the problem apparently was caused by the difference between a NULL value and a null string. More documentation on this would be appreciated.
Also, a
previous issue we commented on here was peripherally involved. Using a pam_password user of type rodsadmin, it appears possible to update a native user's password. Updating an existing native user's password from a client machine (not any server in the zone) simply fails silently, but creating a new native user and setting the initial password actually succeeds. If that same pam_password rodsadmin runs the commands from the server machine, the operation proceeds as before, but the password for existing native user is properly set now.
While trying to diagnose this issue, the service user's password was updated with different password salt settings, but all failed giving a misleading result due to what I just described. When I reset the salt as it originally was and updated the password while on the zone server, everything returned to normal.
It would be nice to have at least a brief explanation of how the password salt is applied in the various circumstances (for native and pam_password users and any possible differences) somewhere in the documentation. Something like this could have likely reduced the amount of time we spent on diagnosis and resolution. That is the main reason for this followup post.
Cheers,
--John