From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/13407 Path: news.gmane.org!.POSTED!not-for-mail From: Barry Flartus Newsgroups: gmane.linux.lib.musl.general Subject: Re: Problems with pthreads from a shared object? Date: Wed, 7 Nov 2018 18:53:33 -0500 Message-ID: References: <20181107233142.GV5150@brightrain.aerifal.cx> <20181107234526.GW5150@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000000fe4c9057a1bd4dd" X-Trace: blaine.gmane.org 1541634712 26321 195.159.176.226 (7 Nov 2018 23:51:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 7 Nov 2018 23:51:52 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-13423-gllmg-musl=m.gmane.org@lists.openwall.com Thu Nov 08 00:51:47 2018 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1gKXbv-0006lV-IU for gllmg-musl@m.gmane.org; Thu, 08 Nov 2018 00:51:47 +0100 Original-Received: (qmail 5140 invoked by uid 550); 7 Nov 2018 23:53:56 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 4090 invoked from network); 7 Nov 2018 23:53:55 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=Rsl/CVIcTary+SK1hYsesZ/EZKtkZWomRhm7LpoAXd8=; b=hHcHIw/+IoS2ijsTKkwgPXxW1z4Gl+Pj1ydkZlNpu6kgvTPCBD5dlxsqsAOinnWwv5 Vm+ueXW/d9Xw6qmEtBcQaEa3q5vbYwONbWtEclvVZxv9V2ct3Cec5kIuYx9N0B/Io1Zf sWVSmRIwYwnp+YCtZVeQqpCh0ZmD+TivYwyXfBwnAj8c1hfLn/dVCEHX0O5KH2y8FrLN zKZPzRFKtlZFeRCJwZgtcQAmxZPmKLPTSWUpyinWdgCxqdsB5riQ7eb+9L3Ny03S5dEq 36z6AAqy1tfxMGIofCQ3OtWmEAYqT7YQX8aY11TCogzr4GAKTkJUN8ldXz3LTdI/rRyW FKcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=Rsl/CVIcTary+SK1hYsesZ/EZKtkZWomRhm7LpoAXd8=; b=MiZ2DTKRjppyV7NeM3L67Dx/VI+kAL0rQloEBD4l/OQ6H7y3pZddS9AWqFS1Pft3na ZbONgoZvRjpgf+ofl9oqrSKWHR5CdPCvHd1qEUuS26k860I9SzIbQ8jYxCqxa6uunH6P ImAWzlhZyKhBjEjY1CEcKTiAwu+E1rFSTLvw1IqCiJVsXzdMx0mKHT96EROvN3qVotl2 a8ErNsePAJq4dC6CwLCGBK0OfsqKT8BPrmWIpfkvPngJ398vXmS22gjDxtYQW+gaCtbE zVWeJc1CNYNqGNmvhHrdg5VRt6wa+QWtqCLKr3Ne/MXFbk4KRb0qsuQXEqZbMVhaPE/Z m6hQ== X-Gm-Message-State: AGRZ1gKiVz8w/GhwhbuQPSBHlDmkfwceqKzjgyl6DhNI5GpMqLv8nuj1 PiEGXs+bIhX+zvyrbc9A6mwQQww2RsjTdnMMN+oJrH/9 X-Google-Smtp-Source: AJdET5eYUz5i9TYrO98uJrldrdevcFRzwH0PSBmH+XPeNL08+5HL4dZlJ5kLdIOpoxp6/RQ1S4ixgHV5NmrrDiULc44= X-Received: by 2002:a02:6a17:: with SMTP id l23-v6mr2290991jac.74.1541634824067; Wed, 07 Nov 2018 15:53:44 -0800 (PST) In-Reply-To: <20181107234526.GW5150@brightrain.aerifal.cx> Xref: news.gmane.org gmane.linux.lib.musl.general:13407 Archived-At: --0000000000000fe4c9057a1bd4dd Content-Type: text/plain; charset="UTF-8" > > OK. Can you run strace -f ./launch (or whatever the launch program > executable is called) and post the output? > > Rich > Here you go! $ strace -f ./launch execve("./launch", ["./launch"], [/* 22 vars */]) = 0 brk(NULL) = 0xe44000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=42286, ...}) = 0 mmap(NULL, 42286, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fcda3aa9000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\r\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0644, st_size=14608, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcda3aa8000 mmap(NULL, 2109680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcda368b000 mprotect(0x7fcda368e000, 2093056, PROT_NONE) = 0 mmap(0x7fcda388d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fcda388d000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1868984, ...}) = 0 mmap(NULL, 3971488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcda32c1000 mprotect(0x7fcda3481000, 2097152, PROT_NONE) = 0 mmap(0x7fcda3681000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7fcda3681000 mmap(0x7fcda3687000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fcda3687000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcda3aa7000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcda3aa6000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcda3aa5000 arch_prctl(ARCH_SET_FS, 0x7fcda3aa6700) = 0 mprotect(0x7fcda3681000, 16384, PROT_READ) = 0 mprotect(0x7fcda388d000, 4096, PROT_READ) = 0 mprotect(0x600000, 4096, PROT_READ) = 0 mprotect(0x7fcda3ab4000, 4096, PROT_READ) = 0 munmap(0x7fcda3aa9000, 42286) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0 brk(NULL) = 0xe44000 brk(0xe65000) = 0xe65000 write(1, "\n", 1 ) = 1 write(1, "Launching test...\n", 18Launching test... ) = 18 open("./test.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240!\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=40152, ...}) = 0 getcwd("/vagrant/test/wtf/public", 128) = 25 mmap(NULL, 2128504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fcda30b9000 mprotect(0x7fcda30c0000, 2093056, PROT_NONE) = 0 mmap(0x7fcda32bf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fcda32bf000 close(3) = 0 mprotect(0x7fcda32bf000, 4096, PROT_READ) = 0 write(1, "Starting Execution\n", 19Starting Execution ) = 19 write(1, "Starting the thread\n", 20Starting the thread ) = 20 write(1, "start_thread returned 38\n", 25start_thread returned 38 ) = 25 write(1, "pthread_create() returned an err"..., 46pthread_create() returned an error. Aborting. ) = 46 exit_group(0) = ? +++ exited with 0 +++ $ ltrace -f ./launch [pid 13508] __libc_start_main(0x400746, 1, 0x7ffff030bbc8, 0x4007b0 [pid 13508] puts("\nLaunching test..." Launching test... ) = 19 [pid 13508] dlopen("./test.so", 2Starting Execution Starting the thread start_thread returned 38 pthread_create() returned an error. Aborting. ) = 0x12d6440 [pid 13508] dlerror() = nil [pid 13508] +++ exited (status 0) +++ --0000000000000fe4c9057a1bd4dd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
OK. Can you run strace -f ./launch (or = whatever the launch program
executable is called) and post the output?

Rich

Here you go!=C2=A0

$ strace -f ./= launch
execve("./launch", ["./launch"], [/* 2= 2 vars */]) =3D 0
brk(NULL)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =3D 0xe44000
access("/etc/ld.so.nohwcap", F_OK)=C2=A0 = =C2=A0 =C2=A0 =3D -1 ENOENT (No such file or directory)
access(&q= uot;/etc/ld.so.preload", R_OK)=C2=A0 =C2=A0 =C2=A0 =3D -1 ENOENT (No s= uch file or directory)
open("/etc/ld.so.cache", O_RDONL= Y|O_CLOEXEC) =3D 3
fstat(3, {st_mode=3DS_IFREG|0644, st_size=3D42= 286, ...}) =3D 0
mmap(NULL, 42286, PROT_READ, MAP_PRIVATE, 3, 0) = =3D 0x7fcda3aa9000
close(3)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =3D 0
access("/etc/ld.so.nohwcap", F_OK)=C2=A0 =C2=A0 = =C2=A0 =3D -1 ENOENT (No such file or directory)
open("/lib/= x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) =3D 3
read= (3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\r\0\0\0\0\0= \0"..., 832) =3D 832
fstat(3, {st_mode=3DS_IFREG|0644, st_si= ze=3D14608, ...}) =3D 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MA= P_PRIVATE|MAP_ANONYMOUS, -1, 0) =3D 0x7fcda3aa8000
mmap(NULL, 210= 9680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =3D 0x7fcda368b= 000
mprotect(0x7fcda368e000, 2093056, PROT_NONE) =3D 0
= mmap(0x7fcda388d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_= DENYWRITE, 3, 0x2000) =3D 0x7fcda388d000
close(3)=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =3D 0
access("/etc/ld.so.nohwcap&qu= ot;, F_OK)=C2=A0 =C2=A0 =C2=A0 =3D -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXE= C) =3D 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\= 1\0\0\0P\t\2\0\0\0\0\0"..., 832) =3D 832
fstat(3, {st_mode= =3DS_IFREG|0755, st_size=3D1868984, ...}) =3D 0
mmap(NULL, 397148= 8, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =3D 0x7fcda32c1000=
mprotect(0x7fcda3481000, 2097152, PROT_NONE) =3D 0
mma= p(0x7fcda3681000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DE= NYWRITE, 3, 0x1c0000) =3D 0x7fcda3681000
mmap(0x7fcda3687000, 147= 52, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =3D 0= x7fcda3687000
close(3)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D 0=
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS= , -1, 0) =3D 0x7fcda3aa7000
mmap(NULL, 4096, PROT_READ|PROT_WRITE= , MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =3D 0x7fcda3aa6000
mmap(NULL,= 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =3D 0x7fcda3= aa5000
arch_prctl(ARCH_SET_FS, 0x7fcda3aa6700) =3D 0
mp= rotect(0x7fcda3681000, 16384, PROT_READ) =3D 0
mprotect(0x7fcda38= 8d000, 4096, PROT_READ) =3D 0
mprotect(0x600000, 4096, PROT_READ)= =C2=A0 =C2=A0 =C2=A0=3D 0
mprotect(0x7fcda3ab4000, 4096, PROT_REA= D) =3D 0
munmap(0x7fcda3aa9000, 42286)=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0=3D 0
fstat(1, {st_mode=3DS_IFCHR|0620, st_rdev=3Dm= akedev(136, 2), ...}) =3D 0
brk(NULL)=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0=3D 0xe44000
brk(0xe65000)=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D 0x= e65000
write(1, "\n", 1
)=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D 1
<= div>write(1, "Launching test...\n", 18Launching test...
)=C2=A0 =C2=A0 =C2=A0=3D 18
open("./test.so", O_RDONLY= |O_CLOEXEC)=C2=A0 =C2=A0=3D 3
read(3, "\177ELF\2\1\1\0\0\0\0= \0\0\0\0\0\3\0>\0\1\0\0\0\240!\0\0\0\0\0\0"..., 832) =3D 832
<= div>fstat(3, {st_mode=3DS_IFREG|0755, st_size=3D40152, ...}) =3D 0
getcwd("/vagrant/test/wtf/public", 128) =3D 25
mmap(N= ULL, 2128504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =3D 0x7= fcda30b9000
mprotect(0x7fcda30c0000, 2093056, PROT_NONE) =3D 0
mmap(0x7fcda32bf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FI= XED|MAP_DENYWRITE, 3, 0x6000) =3D 0x7fcda32bf000
close(3)=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D 0
mprotect(0x7fcda32bf000, 40= 96, PROT_READ) =3D 0
write(1, "Starting Execution\n", 1= 9Starting Execution
)=C2=A0 =C2=A0 =3D 19
write(1, &quo= t;Starting the thread\n", 20Starting the thread
)=C2=A0 =C2= =A0=3D 20
write(1, "start_thread returned 38\n", 25star= t_thread returned 38
) =3D 25
write(1, "pthread_cr= eate() returned an err"..., 46pthread_create() returned an error. Abor= ting.
) =3D 46
exit_group(0)=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D ?=
+++ exited with 0 +++

$ ltrace -f ./launch
[pid= 13508] __libc_start_main(0x400746, 1, 0x7ffff030bbc8, 0x4007b0 <unfinis= hed ...>
[pid 13508] puts("\nLaunching test..."
Launching test...
)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D 19
[pid 13508] dlopen("./test.so", 2Starting Execution
St= arting the thread
start_thread returned 38
pthread_crea= te() returned an error. Aborting.
)=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =3D 0x12d6440
[pid 13508] dlerror()=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D ni= l
[pid 13508] +++ exited (status 0) +++

--0000000000000fe4c9057a1bd4dd--