Broken Configuration

My job for today was to run a machine learning project on linux using CUDA. The project was run on Ubuntu 16.04 using base system. I had to dockerize it. I started dockerizing it and had completed it by half day.

It was time for testing. I tried to install Official Nvidia driver on my machine from RPMFusion. Everything worked fine but when I restarted the machine and tried to log in, it wouldn't log in. I tried various configurations, installing, removing and reinstalling. But there was no success. Finally I left office with despair.

When I reached home, it occured to me to log into new user to see if it was working. I created new user and tried to log in. It was successful. I then moved my home folder and created an empty dir in its place and tried to log in. Voila! It seems, some configuration in my home folder is messing with login. I don't know it yet but it seems I need to better maintain my configurations and prune them regularly to prevent such wastage of time.

I will let you know if I get to identify the root of the problem in future. For now, I'm enjoying my cup of tea.

The Cause [Update: 2020-01-21 21:17]

It turns out the problem was due to circular dependency of my configuration. I had kept all my configurations in ~/.profile and sourced them in ~/.bashrc and ~/.zshrc to reduce duplication. Everything was working fine with Wayland and Intel GPU. Now that I switched to NVIDIA GPU, wayland can't work as it is not supported by NVIDIA. Xorg loaded ~/.profile and then ~/.zshrc which then again loaded ~/.profile. This however should not have broken the configuration because there does not seem to be anything circular except the launching of gpg agent for ssh authentication. I need to figure out what was the configuration that was breaking my system. I will keep you posted.