[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

System becomes inaccessible after upgrade of libgl1-mesa-glx to version 17.2.2-1



After an upgrade of libgl1-mesa-glx to version 17.2.2-1 and a reboot, the system hangs during startup and has become inaccessible. lightdm's x-0.log and Xorg.0.log logfiles mention an error: undefined symbol: _glapi_tls_Current.

The problem is described in several bug reports:

The solution seems simple:

The following packages will be REMOVED:
  libglvnd0-nvidia
The following NEW packages will be installed:
  libglvnd0"

But how do you do that with an inaccessible system? The system can be booted in recovery mode, and the change can be made there. But the network is not yet up and running.

I solved the problem as follows.

  • Boot in another system on the machine that can mount the root file system of the affected debian system.
  • Download the libglvnd0 package. It can be found at <package server>/pool/main/libg/libglvnd/libglvnd0_0.2.999+git20170802-5_amd64.deb, e.g. ftp.nl.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_0.2.999+git20170802-5_amd64.deb. Save the package in <mount point>/var/cache/apt/archives of the mounted root file system. 
  • Reboot into the affected system; select recovery mode in Grub
  • start aptitude
  • mark libglvnd0 for installation
  • resolve conflict by removing (purging) libglvnd0-nvidia
  • install
  • Check in aptitude whether libglvnd0 is installed
  • Continue to multi-user mode: systemctl default

If everything went well, the prompt of lightdm appears. The first upgrade problem in years in testing that made the system unusable, has been solved. Thanks are due to the people who analyzed the problem and described their solution in the bug reports.

Note: The syslog of the inaccessible system suggests that the system is up and running: Oct 18 10:07:07 vuurvlinder systemd[1]: Startup finished in 5.917s (kernel) + 20.713s (userspace) = 26.630s. Then it may be possible to log into the system from another computer and perform the package change, instead of the above procedure.

Best, Simon





Reply to: