DA bug report logs - #360933
libc6: calling chroot breaks pthread_exit/pthread_cancel

version graph

Package: libc6; Maintainer for libc6 is GNU Libc Maintainers <debian-glibc@lists.debian.org>; Source for libc6 is src:eglibc.

Reported by: nisse@lysator.liu.se (Niels Möller)

Date: Wed, 5 Apr 2006 16:03:16 UTC

Severity: normal

Found in version libc6/2.3.2.ds1-22

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Niels Möller <nisse@lysator.liu.se>, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#360933; Package libc6. Full text and rfc822 format available.

Acknowledgement sent to nisse@lysator.liu.se (Niels Möller):
New Bug report received and forwarded. Copy sent to Niels Möller <nisse@lysator.liu.se>, GNU Libc Maintainers <debian-glibc@lists.debian.org>. Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: nisse@lysator.liu.se (Niels Möller)
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: libc6: calling chroot breaks pthread_exit/pthread_cancel
Date: 05 Apr 2006 17:52:06 +0200
Package: libc6
Version: 2.3.2.ds1-22
Severity: normal

When calling pthread_exit in a program which has called chroot, the
program exits with the error message

  libgcc_s.so.1 must be installed for pthread_cancel to work

The problem is that the nptl library needs the stack unwind code from
libgcc_s.so.1, and it uses dlopen to load this library.

I tried to install arlad, configured to use posix threads. This
program chroots to /usr/arla/cache at startup, before doing any
interesting thread operations.

Then the later dlopen by the nptl code naturally fails, and it
displays the above error message and calls _exit.

I'm not terribly familiar with the POSIX standard or with POSIX
threads, but it seems unintuitive and probably not standards compliant
that a threaded server program can't use chroot at startup.

A workaround seems to be to link the program with an explicit -lgcc_s
on the command line, in addition to -lpthread, but as far as I
understand, one should never need to link explicitly with libgcc_s.

Regards,
/Niels

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.16.1-nisse
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages libc6 depends on:
ii  libdb1-compat                 2.1.3-7    The Berkeley database routines [gl

-- no debconf information



Send a report that this bug log contains spam.


Don Armstrong <don@donarmstrong.com>. Last modified: Thu Sep 2 19:26:46 2010; Machine Name: crito.ucr.edu

DA bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.