Yesterday morning, when I woke up, I faced a serious issue on my laptop which has Manjaro Linux installed -- the X server can not be started.
It took me some time to get my head around and locate the root cause. The first thing I tried is obviously force reboot several times, it turned out this did not help at all! Reboot will not solve everything.™
The next thing I tried was the fallback initramfs mode. I don't really understand what it does, but tried it anyway. And unfortunately, that does not work either.
At this point,the only option left for me to try is recovery mode. And it turned out to be working correctly. As root user in the recovery mode, I issued the following command
systemctl set-default multi-user.target, this makes the tty the default target rather than the graphical interface. Another reboot, and I got into the terminal.
Once in terminal, I immediately tried
startx, this failed due to some wired permission issue, and with
sudo startx, the command failed as well. Looking at the Xorg log, I noticed that the start process stops at:
(II) Initializing extension VNC.
The obvious solution at this point is to uninstall the VNC module that is causing the issue, so
sudo pacman --remove --recursive tigervnc was the way to go. And it did fix the issue. So what I had to do was reset it back to graphical interface start with
systemctl set-default graphical.target.
By doing some more research online, I have found that this issue was actually solved by TigerVNC as can be seen from this closed issue. The issue that most likely to have happened here is that Arch Linux package builder did not provide the up-to-date build for the package which resulted in the package does not included the updated dependencies from the X server.