[vpn-help] Solution for Assertion `type == PTHREAD_MUTEX_ERRORCHECK_NP' failed

Mi Re mireatwork at gmail.com
Fri Dec 18 02:50:35 CST 2015


Hello all

I did not find a solution for the mentioned problem here, so I'm posting it.

The error seems to be related to Intel's TSX extensions and specifically 
HLE (Hardware Lock Elision). Some Broadwell and Haswell processors have 
faulty implementations of these extensions and were later disabled by 
Intel through microcode updates.

There are two possible solutions for Linux users:

Solution 1 (the easy one): Install the latest "intel-ucode" (on Arch 
Linux) or "intel-microcode" (Ubuntu) and reboot. Check for 
distribution-specific steps first. If you're lucky, iked should now run 
fine.

If the error is still present, continue reading.

Solution 2 (the not-so-easy one): You need to rebuild your glibc package 
without Lock Elision enabled. For Arch Linux, the steps are the following:

==========
$ sudo abs core
$ cp -r /var/abs/core/glibc /tmp
$ cd /tmp/glibc

( PKGBUILD: remove the line containing --enable-lock-elision with sed:)

$ sed -i '/--enable-lock-elision/d' PKGBUILD
$ makepkg
==========

You then can either install the glibc globally for your system by executing:

$ sudo pacman -U /tmp/glibc/glibc-whatever.pkg.tar.xz

or you unpack the built glibc package to some location that you like and 
use the LD_LIBRARY_PATH mechanism to override the libs used by iked 
everytime you start iked:

$ sudo LD_LIBRARY_PATH=$LOCATION_OF_UNPACKED_TAR/usr/lib iked

With that, iked should start without any problems.

Instructions for other distributions on rebuilding glibc vary, but I 
hope you got the idea of what needs to be done.

I hope I could help some other Users out there.

Thanks also to knotty66 and shuairan from the Arch User Repository.


Regards
Mike


More information about the vpn-help mailing list