my old CI-server was running on Windows 10 with a local postgres db. I am in the process of migrating it to a new Windows 10 machine and have it connected to a dedicated postgres instance.
I stumbled over two problems:
User Logins do not work anymore. I could circumvent that by letting CI-Server settup another empty postgres instance, created the same user with the same password and copied the password hash over with a postgres-db tool. After that I could login again and the dashboard shows the project to compile. But …
When I click a project I get 'An unexpected error occured: Padding is invalid and cannot be removed.'
I checked the windows events and found the following exception:
An error occurred while resolving project with name '<projectname>'. Details: Exception: CryptographicException Message: Padding is invalid and cannot be removed. Stack Trace: at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte inputBuffer, Int32 inputOffset, Int32 inputCount, Byte& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte inputBuffer, Int32 inputOffset, Int32 inputCount) at Continua.Shared.Extensions.StringExtensionsUtils.Decrypt(String value) at Continua.Shared.Variables.VariableDTOMappings.<>c.<ConfigureVariables>b__0_0(Variable v, VariableDTO dto) at Continua.Shared.Mapping`2.Map(TSource source, TDestination destination) at Continua.Shared.Mapping`2.Map(TSource source) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Continua.Shared.Mapping`2.Map(IEnumerable`1 sources) at Continua.Services.DataTransferObjects.CoreDTOMappings.<>c.<Configure>b__0_0(Project p, ProjectDTO dto) at Continua.Shared.Mapping`2.Map(TSource source, TDestination destination) at Continua.Shared.Mapping`2.Map(TSource source) at Continua.Shared.Mapping`2.Map(TSource source, Action`2 modifier) at Continua.Services.CoreService.ResolveProject(String name)
I googled and found this:
Could it be that there is simply a Trim missing before decryption?
This cryptographic exception seems related to the one I got in the old buildserver after installing all windows updates. CI-Server refused to start with a Cryptographic Exception complaining about a temporary user not having enough priviliges.
Some more info: My postgres server is now running under debian. The only thing I adjusted in the dumpfile in order to import it was LC_Collate and LC_CTYPE:
CREATE DATABASE "ContinuaCI" WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'English_United States.1252' LC_CTYPE = 'English_United States.1252';
> CREATE DATABASE "ContinuaCI" WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';