Nefunguje synchronizace threads

Supportní databáze (aj_pthread7.0)
Platí pro

SuSE Linux: Verze 7.0


Symptomy:

Je chybná synchronizace programů používajících threads.
Postiženy jsou pouze programy, které používají knihovnu libpthread, o čemž se můžete přesvědčit příkazem
ldd /bin/progam
pokud se ve výstupu objeví libpthread.so tak můžete mít s tímto programem problémy.

Příčina:

Knihovna pthread obsahuje chybu v Mutex implementaci. Systémy, které jsou postiženy jsou SuSE 7.0 pro ix86 a pro Sparc. Jiných platforem se to netýká.

Řešení:

Na našem FTP serveru se nacházejí nové balíky shlibs a libc, které tento problém odstraňují.

Jako alternativní řešení je možnost používat jiný Mutex (pouze ten "normální" je chybný), např. příkazem:

pthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK_NP);
Hackem pak je používání LD_LIBRARY_PATH pro nahrazení pouze libpthread.so. K tomu je třeba mít v systému opravenou libpthread.so a proměnnou prostředí LD_LIBRARY_PATH uvedenou v cestě, která obsahuje libpthread.so. Poté je možné program spustit.
Klíčová slova: GLIBC, THREADS, PTHREAD, MUTEX

Zpětná vazba vítána: Send Mail to aj@suse.de (Uveďte prosím následující klíčové slovo: SDB-aj_pthread7.0)
SDB-aj_pthread7.0, Copyright SuSE Linux AG, Nürnberg, Germany - Verze: 22. Aug 2000
SuSE Linux AG - Poslední změnu: 19. Sep 2000 provedl aj (sdb_gen 1.40.0)