Missing $HVR_CONFIG/wallet Directory or File
Issue
The $HVR_CONFIG/wallet directory or a file inside the $HVR_CONFIG/wallet directory is missing.
In addition, while running the hvrhubserver command, the following errors appear
F_JW0559: Error contacting configured repository: F_JR0EA1: Cannot find wallet encryption key with sequence 1.F_JR0EA8: The previous error occurred while decrypting a value encrypted with key sequence 1.F_JR05C4: The previous error occurred while decrypting without a cached wallet.F_JR057A: The previous error occurred while connecting to the repository.F_JW0513: The previous error occurred during start of worker 'w0'.
If the hvrhubserver command is still running and an hvrtestlocation command is complete, the following errors appear:
F_JR0E95: Could not open encryption wallet. Reason: Reading Encryption_Password_Filename=<password file>.cred resulted in an error.F_JG20CD: Open of file '/home/hverheul/dev/jhvma_6022/hvr_config/wallet/<password file>.cred' for operation 'read' failed. Error: No such file or directory.}F_JR0E99: Encrypting or decrypting a value requires encryption wallet to be already open.
If the hvrhubserver command is still running and a suspended job begins, the following errors appear:
F_JR0EA1: Cannot find wallet encryption key with sequence 1.F_JR0EA8: The previous error occurred while decrypting a value encrypted with key sequence 1.F_JR05C4: The previous error occurred while decrypting without a cached wallet.F_JR057A: The previous error occurred while connecting to the repository.
Environment
- OS: Windows or Linux
- HVR 6
- hvragent using only an anonymous connection.
Resolution
To resolve this issue, do the following:
- Stop hvrhubserver.
- Run the following command from the hvrhubserver repository:
delete from hvr_repos_property where prop_name='Wallet'; - Modify $HVR_CONFIG/etc/hvrhubsever.conf, replacing the encrypted
Database_Passwordvalue with the repository password. - Start hvrhubserver.
- Run hvrssslgen to create a private key and public certificate, which you can use to configure the repository. Use the following command:
hvrsslgen hub 'hub' - Update the repository with the public certificate, private key, and private key password returned in step 5. You can use the following command:
hvrreposconfig Agent_Client_Public_Certificate=@hub.pub_cert Agent_Client_Private_Key=@hub.priv_key Agent_Client_Private_Key_Password=<passwd from hvrsslgen output> - To ensure the hvragent can be configured with the new public certificate, get the
Agent_Client_Public_Certificatefrom the repository using the following command:hvrreposconfig Agent_Client_Public_Certificate - Update the hvragent configuration to trust the new certificate from the hvrhubserver using the following command:
hvragentconfig Only_From_Client_Public_Certificates='{"<hubserver>:<port>/":"<the value from previous command>"}' - Clear the old repository certificate for locations that use the hvragent by running the following command:
hvrlocationconfig <hub> <location> Agent_Server_Public_Certificate= - Update the location(s) to include the plain text password. This ensures the password is obfuscated correctly and no longer depends on the deleted encryption key. Use the following command:
hvrlocationconfig <hub> <location> Database_Password=<plain password> - Run Activate Replication with the Jobs option selected.
- Ensure the hvrhubserver repository doesn't return the plain password using the following command:
hvrhubserverconfig Database_Password=<the password>
Once you've completed the steps above, the Database_Password returned by the hvrhubserverconfig -Vstorage and hvrlocationconfig -Vstorage <hub> <location> commands will be obfuscated and will not use encryption.
(Optional) Re-enable the hvrwallet
To re-enable the hvrwallet, do the following:
- Enable the wallet using the following command. You can ignore any errors you encounter.
hvrwalletconfig -c Type=SOFTWARE Auto_Open=true - Ensure the hvrhubserver repository returns the new encryption key using the following command:
hvrhubserverconfig Database_Password=<the plain password> - Ensure the repository also uses the new encryption key by modifying the location
Database_Passwordusing the following command:hvrlocationconfig <hub> <location> Database_Password=<password> - To check whether the encryption key is used, execute one of the following commands:
- For a location:
hvrlocationconfig -Vstorage <hub> <location> Database_Password - Using SQL:
select loc_name,hub_name,prop_value,insert_tstamp from hvr_location_property where prop_name='Database_Password' and delete_tstamp is null; - For the hvrhubserver repository:
hvrhubserverconfig -Vstorage Database_Password
- For a location:
The output should include an encrypted value, such as {1:OFjsm70i5fXoKZJtS9/adVehOA}, indicating that wallet encryption key 1 in use.