named pipes problem?

Gregory M. Turner gmturner007 at ameritech.net
Fri Oct 17 16:20:04 CDT 2003


Does everybody's kernel32 named pipes test pass (in wine)?  Named pipes are 
acting very wierd here, lots of segfaults and other wierdness... the test 
seems to freeze attempting to create the alarmThread in test_NamedPipe_2 
(test 3 of 4). The wineserver holds up OK, but the client side looks a mess.

This is similar to other behavior I see in other contexts... perhaps, the 
pattern is, after I create a named pipe, subsequent calls to CreateThread 
never return or cause segfaults and general instability.

Am I the only one?  The following is a snippet from "strace -f wine 
kernel32_test.exe.so pipe" where wine starts to go south....

[pid 28568] write(1, "pipe.c:459:", 11pipe.c:459:) = 11
[pid 28568] write(1, "exercizeServer starting\n", 24exercizeServer starting
) = 24
[pid 28568] write(1, "pipe.c:470:", 11pipe.c:470:) = 11
[pid 28568] write(1, "Client connecting...\n", 21Client connecting...
) = 21
[pid 28568] rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM IO], [RTMIN], 8) 
= 0
[pid 28568] writev(4, 
[{"\207\0\0\0\222\0\0\0\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\0"..., 64}, 
{"\\\0\\\0.\0\\\0P\0i\0P\0e\0\\\0t\0e\0s\0t\0s\0_\0.\0"..., 146}], 2 
<unfinished ...>
[pid 28570] <... poll resumed> [{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, 
{fd=7, events=POLLIN}, {fd=9, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, 
events=POLLIN}, {fd=15, events=POLLIN}, {fd=16, events=POLLIN, 
revents=POLLIN}, {fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}, {fd=-1}, 
{fd=24, events=POLLIN}, {fd=23, events=POLLIN}], 16, -1) = 1
[pid 28570] read(16, 
"\207\0\0\0\222\0\0\0\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\0"..., 64) = 64
[pid 28570] read(16, 
"\\\0\\\0.\0\\\0P\0i\0P\0e\0\\\0t\0e\0s\0t\0s\0_\0.\0"..., 146) = 146
[pid 28570] write(17, 
"\17\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
[pid 28570] poll( <unfinished ...>
[pid 28568] <... writev resumed> )      = 210
[pid 28568] read(5, 
"\17\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
[pid 28568] rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
[pid 28568] write(1, "pipe.c:481:", 11pipe.c:481:) = 11
[pid 28568] write(1, "connect failed, retrying\n", 25connect failed, retrying
) = 25
[pid 28568] gettimeofday({1066424342, 296207}, NULL) = 0
[pid 28568] gettimeofday({1066424342, 296363}, NULL) = 0
[pid 28568] select(0, NULL, NULL, NULL, {0, 199844} <unfinished ...>
[pid 28575] --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
[pid 28574] --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
[pid 28575] modify_ldt(17, {entry_number:40, base_addr:0x40af3000, limit:4095, 
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:0, 
seg_not_present:0, useable:0}, 16 <unfinished ...>
[pid 28574] modify_ldt(17, {entry_number:39, base_addr:0x408c3000, limit:4095, 
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:0, 
seg_not_present:0, useable:0}, 16 <unfinished ...>
[pid 28575] <... modify_ldt resumed> )  = 0
[pid 28574] <... modify_ldt resumed> )  = 0
[pid 28575] sigaltstack({ss_sp=0x408d1000, ss_flags=0, ss_size=1048576} 
<unfinished ...>
[pid 28574] brk(0 <unfinished ...>
[pid 28575] <... sigaltstack resumed> , NULL) = 0
[pid 28574] <... brk resumed> )         = 0x3c009000
[pid 28575] rt_sigaction(SIGINT, {0x40081bf2, [INT USR2], 
SA_RESTORER|SA_STACK|SA_RESTART, 0x45a14eb8},  <unfinished ...>
[pid 28574] brk(0x3c00a000 <unfinished ...>
[pid 28575] <... rt_sigaction resumed> NULL, 8) = 0
[pid 28574] <... brk resumed> )         = 0x3c00a000
[pid 28575] rt_sigaction(SIGFPE, {0x40081b76, [INT USR2], 
SA_RESTORER|SA_STACK|SA_RESTART, 0x45a14eb8},  <unfinished ...>
[pid 28574] sigaltstack({ss_sp=0x406a1000, ss_flags=0, ss_size=1048576} 
<unfinished ...>
[pid 28575] <... rt_sigaction resumed> NULL, 8) = 0
[pid 28574] <... sigaltstack resumed> , NULL) = 0
[pid 28575] rt_sigaction(SIGSEGV, {0x40081aa4, [INT USR2], 
SA_RESTORER|SA_STACK|SA_RESTART, 0x45a14eb8},  <unfinished ...>
[pid 28574] rt_sigaction(SIGINT, {0x40081bf2, [INT USR2], 
SA_RESTORER|SA_STACK|SA_RESTART, 0x45a14eb8},  <unfinished ...>
[pid 28575] <... rt_sigaction resumed> NULL, 8) = 0
[pid 28574] <... rt_sigaction resumed> NULL, 8) = 0
[pid 28575] rt_sigaction(SIGILL, {0x40081aa4, [INT USR2], 
SA_RESTORER|SA_STACK|SA_RESTART, 0x45a14eb8},  <unfinished ...>
[pid 28574] rt_sigaction(SIGFPE, {0x40081b76, [INT USR2], 
SA_RESTORER|SA_STACK|SA_RESTART, 0x45a14eb8},  <unfinished ...>
[pid 28575] <... rt_sigaction resumed> NULL, 8) = 0
[pid 28574] <... rt_sigaction resumed> NULL, 8) = 0

from there it just degrades into a soup of SIGSEGV and rt_sigprocmask(), like:

[pid 28575] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 28574] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 28575] rt_sigprocmask(SIG_UNBLOCK, ~[],  <unfinished ...>
[pid 28574] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 28575] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 28574] rt_sigprocmask(SIG_UNBLOCK, ~[],  <unfinished ...>
[pid 28575] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 28574] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 28575] rt_sigprocmask(SIG_UNBLOCK, ~[],  <unfinished ...>
[pid 28574] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 28575] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 28574] rt_sigprocmask(SIG_UNBLOCK, ~[],  <unfinished ...>
[pid 28575] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 28574] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 28575] rt_sigprocmask(SIG_UNBLOCK, ~[],  <unfinished ...>

this never ends.  Attaching to various threads (when I am so lucky as to be 
able to) is not very instructive (to me ;)).

-- 
gmt




More information about the wine-devel mailing list