From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#31925: 'guix substitutes' sometimes hangs on glibc 2.27 Date: Wed, 04 Jul 2018 09:03:53 +0200 Message-ID: <874lhffpnq.fsf@gnu.org> References: <87bmc4748n.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57981) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fabqa-0000ZX-If for bug-guix@gnu.org; Wed, 04 Jul 2018 03:05:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fabqZ-0002nw-Lu for bug-guix@gnu.org; Wed, 04 Jul 2018 03:05:04 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:37919) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fabqZ-0002nm-Fd for bug-guix@gnu.org; Wed, 04 Jul 2018 03:05:03 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87bmc4748n.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 21 Jun 2018 13:45:12 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: 31925@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > #0 0x00007fbb34bf794d in __GI___pthread_timedjoin_ex (threadid=3D1404419= 61314048, thread_return=3Dthread_return@entry=3D0x0, abstime=3Dabstime@entr= y=3D0x0, block=3Dblock@entry=3Dtrue) > at pthread_join_common.c:89 > #1 0x00007fbb34bf773c in __pthread_join (threadid=3D, thr= ead_return=3Dthread_return@entry=3D0x0) at pthread_join.c:24 > #2 0x00007fbb350d7548 in stop_finalization_thread () at finalizers.c:265 > #3 0x00007fbb350d7759 in scm_i_finalizer_pre_fork () at finalizers.c:290 > #4 0x00007fbb3514f256 in scm_fork () at posix.c:1222 Here=E2=80=99s a reproducer that works quite well (it hangs within a couple= of minutes): --=-=-= Content-Type: text/x-scheme Content-Disposition: inline; filename=finalization-thread-proc.scm Content-Description: the code (use-modules (guix utils) (ice-9 ftw) (ice-9 match) (srfi srfi-1) (srfi srfi-26) (rnrs io ports)) (define infodir (string-append (getenv "HOME") "/.guix-profile/share/info/")) (define files (apply circular-list (map (cut string-append infodir <>) (scandir infodir (lambda (file) (string-suffix? ".gz" file)))))) (sigaction SIGALRM (lambda _ (alarm 1))) (alarm 1) (let loop ((files files) (n 0)) (match files ((file . tail) (call-with-input-file file (lambda (port) (call-with-decompressed-port 'gzip port (lambda (port) (let loop () (unless (eof-object? (get-bytevector-n port 777)) (loop))))))) ;; (pk 'loop n file) (display ".") (loop tail (+ n 1))))) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 DQpMdWRv4oCZLg0K --=-=-=--