Re: signal delivery problem (with pthreads)

2004-09-25 Thread Valery A. Frolov
On Wed, 22 Sep 2004 13:57:26 +0100, Dave Korn wrote:
 So could someone who got the _successful_ run of sig_bug.exe with recently
 (1.5.7-1) releases or snapshots of cygwin1.dll send it 
 (sig_bug.exe) to my personal e-mail? 
 
   Well, here you go; source as well, just in case you have more than one
 version of your testcase lying around, so you know exactly what I was
 compiling.

Thanks to Dave Korn for his copy of sb.exe. Well, it has been crashed
too. Almost all the time (at least for me). With 1.5.11-1 and 20040924.
And once with 1.5.7-1  :-[  ] , which I've never seen before.
After that I'm feeling doubts about right of my doings. :)

Please note, I've executed sb.exe from cmd.exe, not from bash/ash/etc.
And I've placed sb.exe on diskette(!) and cygwin1.dll in the current
directory on hard disk. In case of placing sb.exe with cygwin1.dll on
hard disk I have (almost) never got the stackdump file or it has only
the first line.

The contents of sb.exe.stackdump (with 1.5.11-1):

Exception: STATUS_ACCESS_VIOLATION at eip=0001
eax=001F ebx=4155835A ecx=00CCF0C0 edx=001F esi=0001 edi=00CCF040
ebp=00CCF058 esp=00CCF020 program=a:\sb.exe, pid 120, thread unknown (0x7D)
cs=001B ds=0023 es=0023 fs=0038 gs= ss=0023
Stack trace:
Frame Function  Args
00CCF058  0001  (0003, 10021380, 00CCF0A8, 610A940A)
00CCF068  004011AE  (, , , )
00CCF0A8  610A940A  (10021380, 00CCF0E0, 610A9390, )
00CCF0D8  61003E84  (, , , )
00CCFFA8  61003E3A  (, , , )
End of stack trace

Maybe I need to build my own version of cygwin1.dll with debug information
turned on but I have never done it before.

WBR,
 Valery

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



RE: signal delivery problem (with pthreads)

2004-09-22 Thread Dave Korn
 -Original Message-
 From: cygwin-owner On Behalf Of Valery A. Frolov
 Sent: 21 September 2004 22:52

 I've checked it and got the same bad result (crash) on 2000, 
 XP and Win98.
 
 I've installed cygwin bundle for compilation of sig_bug.c on XP, compiled
 sig_bug.c to sig_bug.exe and ran it. Nothing was changed - crash.
 
 So could someone who got the _successful_ run of sig_bug.exe with recently
 (1.5.7-1) releases or snapshots of cygwin1.dll send it 
 (sig_bug.exe) to my personal e-mail? 

  Well, here you go; source as well, just in case you have more than one
version of your testcase lying around, so you know exactly what I was
compiling.

[Actually, on second thoughts, I'm going to send this post to the list, so
I'll send you the files separately.  There have been further developments
while I was writing this post that I thought the list should be informed
about.]

  A funny thing happened to me on the way to email this to you, however:  I
thought I'd try running it again, and this time it crashed for the first
time!  However it still works fine almost all the time when run directly
from the command line, but I've noticed that when I run it in a loop with 

for i in 1 2 3 4 5 6 7 8 9 10 ; do ./sb.exe ; done

it crashes more often than not!  This is interesting, and suggests an
interaction with process spawn/forking.  The contents of the .stackdump file
are fairly interesting too:

Exception: STATUS_ACCESS_VIOLATION at eip=0085F030
eax=001F ebx= ecx=77E75A65 edx=001F esi=41516044
edi=0004
ebp=0086 esp=0085F004 program=C:\artimi.src\davek\test\pthread\sb.exe,
pid 2352, thread unknown (0x208)
cs=001B ds=0023 es=0023 fs=0038 gs= ss=0023
Stack trace:
Frame Function  Args
0086  0085F030  (0001, BC5D1B48, , 0001000C)
End of stack trace

  This is very strange indeed.  The eip is in between ebp and esp; in other
words, we're executing on the stack!  And look at the value in ecx:  that
happens to be the ret instruction at the end of KERNEL32!IsBadWritePtr.
_Very_ interesting.  Hmm, now I've finally got it to crash under insight!
Although the stack (or perhaps only the stack pointer) has been somewhat
trashed, I can see enough of it...

(gdb) info registers
eax0x1f 31
ecx0x77e75a65   2011650661
edx0x1f 31
ebx0x   -1
esp0xd5f004 0xd5f004
ebp0xd6 0xd6
esi0x415162eb   1095852779
edi0x4  4
eip0xd5f030 0xd5f030
eflags 0x10216  66070
cs 0x1b 27
ss 0x23 35
ds 0x23 35
es 0x23 35
fs 0x38 56
gs 0x0  0

(gdb) info frame
Stack level 0, frame at 0xd5f008:
 eip = 0xd5f030; saved eip 0x0
 Arglist at 0xd5f000, args: 
 Locals at 0xd5f000, Previous frame's sp is 0xd5f008
 Saved registers:
  eip at 0xd5f004

(gdb) frame
#0  0x00d5f030 in ?? ()

(gdb) x/64xw $esp-0x80
0xd5ef84:   0x00d5f208  0x61117310  0x00401090  0x00d5efcc
0xd5ef94:   0x000907d4  0x00160003  0x00d5efbc  0x610e2b47
0xd5efa4:   0x61117310  0x00401090  0x00d5efc8  0x00d6
0xd5efb4:   0x  0x001f  0x00d6  0x00401163
0xd5efc4:   0x00401090  0x0001  0x000f  0xfffefeff
0xd5efd4:   0x2000  0x00d5f00c  0x00d5f00c  0x6108e0bc
0xd5efe4:   0x001e  0x  0x0004  0x
0xd5eff4:   0x415162eb  0x0004  0x00d6  0x00d5f030

0xd5f004:   0x  0x0246  0x00d5f048  0x
0xd5f014:   0x00d5ef84  0x00d5ef84  0x00d5ef84  0x00d5f030
0xd5f024:   0x0002  0x  0x  0x0003
0xd5f034:   0x  0x00d5f048  0x0a053c30  0x0a053c88
0xd5f044:   0x0a053c30  0x00d5f058  0x004011ae  0x0003
0xd5f054:   0x0a053c30  0x00d5f098  0x610a97da  0x
0xd5f064:   0x  0x  0x  0x0001
0xd5f074:   0x  0x  0x  0x

  Right, what interesting values do we find there?  0x61117310 is in the
cygwin dll's data area, somewhere above reent_data, and what do we find
there?

(gdb) x/xw 0x61117310
0x61117310 reent_data+720:0x0a053cb8

(gdb) x/s 0x0a053cb8
0xa053cb8:   select was interrupted 1 times\n

  Ok!  It's printf's output buffer!  That ties in with that 0x610e2b47 which
is the return address from the call within printf to vfprintf.

  Next, that 0x00401090 gets there because of this code in my_sleep:

0x00401153 my_sleep+147:  mov%esi,0x4(%esp,1)
0x00401157 my_sleep+151:  movl   $0x401090,(%esp,1)
0x0040115e my_sleep+158:  call   0x401710 printf
0x00401163 my_sleep+163:  jmp0x40114b my_sleep+139

(gdb) x/s 0x401090
0x401090 sig_hnd+48:   select was interrupted %d 

Re: signal delivery problem (with pthreads)

2004-09-21 Thread Valery A. Frolov
 Maybe the operating system is the essence. I've always tried it on NT 4.0
 WS SP6a+hotfixes. Tomorrow I'll check it (the same executable) on 2000/XP.

I've checked it and got the same bad result (crash) on 2000, XP and Win98.

I've installed cygwin bundle for compilation of sig_bug.c on XP, compiled
sig_bug.c to sig_bug.exe and ran it. Nothing was changed - crash.

So could someone who got the _successful_ run of sig_bug.exe with recently
(1.5.7-1) releases or snapshots of cygwin1.dll send it (sig_bug.exe) to my
personal e-mail? And please, specify your arguments for gcc, version of gcc,
version of cygwin1.dll and version of OS, for example:
  * gcc -O2 -s -o sig_bug.exe sig_bug.c -lpthread
  * gcc version 3.3.3-3
  * cygwin1.dll from snapshot of 20040920
  * Windows NT Workstation 4.0 SP6a+

I'll try received sig_bug.exe with my cygwin1.dll in my environment to
distinguish a (possible) cygwin1.dll issue from a compilation (gcc/binutils)
issue. Thanks.

WBR,
 Valery

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: signal delivery problem (with pthreads)

2004-09-20 Thread Yitzchak Scott-Thoennes
On Fri, Sep 17, 2004 at 10:08:31AM +0100, Dave Korn wrote:
   No SEGV for me.  -lpthread didn't seem necessary.  I'm using a version of
 the cygwin1.dll built from CVS sources on 20041407.

Wow, that's a lot more advanced than any snapshot I've seen.  I'm
curious to know what version it reports.  If, for instance, it says
1.5.23s, we'll have advance warning that things will be quite busy
for the rest of this year.  :)

More seriously, did you try it more than once? I'm using gcc 3.4.1 and
the 20040907 snapshot and seeing intermittent SEGVs with the test
program.  Several times I got select was interrupted 4202497 times,
indicating that something bad is happening to the thread's stack.

I did notice that the test program has erroneous calls to perror,
since the pthread_ routines don't set errno, but fixing those didn't
affect the results.

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: signal delivery problem (with pthreads)

2004-09-20 Thread Christopher Faylor
On Sun, Sep 19, 2004 at 11:17:28PM -0700, Yitzchak Scott-Thoennes wrote:
On Fri, Sep 17, 2004 at 10:08:31AM +0100, Dave Korn wrote:
No SEGV for me.  -lpthread didn't seem necessary.  I'm using a version
of the cygwin1.dll built from CVS sources on 20041407.

did you try it more than once?  I'm using gcc 3.4.1 and the 20040907
snapshot and seeing intermittent SEGVs with the test program.  Several
times I got select was interrupted 4202497 times, indicating that
something bad is happening to the thread's stack.

FWIW, I tried it ten times without error.  I have it running in a loop
now.  If it dies, I'll fix the problem.

cgf

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



RE: signal delivery problem (with pthreads)

2004-09-20 Thread Dave Korn
 -Original Message-
 From: cygwin-owner On Behalf Of Christopher Faylor
 Sent: 20 September 2004 15:36

 On Sun, Sep 19, 2004 at 11:17:28PM -0700, Yitzchak 
 Scott-Thoennes wrote:
 On Fri, Sep 17, 2004 at 10:08:31AM +0100, Dave Korn wrote:
 No SEGV for me.  -lpthread didn't seem necessary.  I'm 
 using a version
 of the cygwin1.dll built from CVS sources on 20041407.
 
 did you try it more than once?  I'm using gcc 3.4.1 and the 20040907
 snapshot and seeing intermittent SEGVs with the test 
 program.  Several
 times I got select was interrupted 4202497 times, indicating that
 something bad is happening to the thread's stack.
 
 FWIW, I tried it ten times without error.

  Ditto.

  I have it running in a loop now.  If it dies, I'll fix the problem.

  Not ditto!  :)


cheers, 
  DaveK
-- 
Can't think of a witty .sigline today


--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: signal delivery problem (with pthreads)

2004-09-20 Thread Valery A. Frolov
On Mon, 20 Sep 2004 10:35:48 -0400, Christopher Faylor wrote:
 FWIW, I tried it ten times without error.  I have it running in a loop
 now.  If it dies, I'll fix the problem.

But I had _no_ one successful run at all.
Maybe the operating system is the essence. I've always tried it on NT 4.0
WS SP6a+hotfixes. Tomorrow I'll check it (the same executable) on 2000/XP.

WBR,
 Valery

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



RE: signal delivery problem (with pthreads)

2004-09-17 Thread Dave Korn
 -Original Message-
 From: cygwin-owner On Behalf Of Valery A. Frolov
 Sent: 16 September 2004 20:15

  And after while I've got (IMHO) a little test source (attached) to
  reproduce the problem.
  
  Can anyone confirm this problem?
 
 So, after week of silence I can make the decision that this 
 problem has
 been happened only for me (because no one has confirmed it). Anyway,
 many many thanks for all Cygwin's developers for their great job.
 Let source be with you, Cygwin! (c) almost Star Wars. :)
 
 WBR,
  Valery


  Ok, here ya go, I guess if you went to the trouble of
http://cygwin.com/acronyms#PPAST 'ing, I can take a couple of minutes to
check it out for you!  :)

[EMAIL PROTECTED] /test/pthread gcc -O2 -g -o sb sig_bug.c
[EMAIL PROTECTED] /test/pthread ./sb
new thread start
got signal 30
OK, press any key to exit...
got signal 30
got signal 30
select was interrupted 1 times
[EMAIL PROTECTED] /test/pthread gcc -O2 -g -o sb sig_bug.c -lpthread
[EMAIL PROTECTED] /test/pthread ./sb
new thread start
got signal 30
OK, press any key to exit...
got signal 30
got signal 30
select was interrupted 1 times
[EMAIL PROTECTED] /test/pthread

  No SEGV for me.  -lpthread didn't seem necessary.  I'm using a version of
the cygwin1.dll built from CVS sources on 20041407.


cheers, 
  DaveK
-- 
Can't think of a witty .sigline today


--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: signal delivery problem (with pthreads)

2004-09-16 Thread Valery A. Frolov
 And after while I've got (IMHO) a little test source (attached) to
 reproduce the problem.
 
 Can anyone confirm this problem?

So, after week of silence I can make the decision that this problem has
been happened only for me (because no one has confirmed it). Anyway,
many many thanks for all Cygwin's developers for their great job.
Let source be with you, Cygwin! (c) almost Star Wars. :)

WBR,
 Valery

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: signal delivery problem (with pthreads)

2004-09-06 Thread Valery A. Frolov
Hello,

On Mon, 30 Aug 2004 13:43:50 +0300, Valery A. Frolov wrote:
 And after while I've got (IMHO) a little test source (attached) to
 reproduce the problem.

Can anyone confirm this problem?

I've tested my testcase source (see previous letter) with cygwin1.dll
1.5.11-1, gcc 3.3.3-3, binutils-20040725-2 and the problem is _still_
exist (at least for me).

WBR,
 Valery

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



signal delivery problem (with pthreads)

2004-08-27 Thread Valery A. Frolov
Hello,

In short:
First signal delivery on call of pthread_kill(tid, SIGUSR1) works fine
but second one delivers signal with _delay_ and _twice_, and then my
own daemon crash. This is on cygwin1.dll 1.5.10-3 and snapshot of
2004-08-21. But on cygwin1.dll 1.5.7-1 all works _fine_ and _long_ time.

In detail:
(Sorry for my bad English.)
(And sorry for long letter.)
(And much more sorry if this is not appropriate place to ask this question.)

I'm writing a daemon. Multi-threaded and TCP/IP-oriented. And it works.
On Linux and FreeBSD. And on cygwin 1.5.7-1. But there is a problem
which I'm currently trying to solve: one of the servicing client thread
hangs up with 100% CPU usage in random time periods (but with probability
nearly equal to 1) and do not response to wakeup signals.

The first investigation brought me an idea that the problem is lying in
select() call in cygwin implementation. (I have only one socket in
select() call and nothing more.) But maybe I'm wrong.

Anyway, in that moment I made the decision to update cygwin1.dll because
my cygwin1.dll 1.5.7-1 is too old and maybe a newer version solves my
problem. I got 1.5.10-3 and... my daemon crashed :( on very simple action.
I had never seen something like this with 1.5.7-1.

Then I got the (latest on that moment) snapshot of cygwin1.dll -
2004-08-21. And my daemon crashed again with same symptoms.

gdb 2003-09-20-cvs (cygwin-special) didn't help because it received
SIGSEGV in KERNEL32!IsBadWritePtr on my daemon run before the piece
of code with problem was executed.

But strace (cygwin) 1.21 gave some interesting results.

Here is some data and logs.

$ strace -o strace7.log -t -m sigp  yolopd -l yolopd7.log
$ strace -o straceB.log -t -m sigp  yolopd -l yolopdB.log

yolopd7.log (1.5.7-1) and yolopdB.log (snapshot 20040821) are
my daemon logs. Just in case.

SIGUSR1 is used by main thread to awake other sleeping threads which
perform some actions.

The SIGUSR1 handler is very simple:

static void handler_sigusr1(int sig)
{
#ifdef DEBUG
log_msg(got SIGUSR1);
#endif
// do nothing, only for exit from sleep()
}


$ grep -i sig yolopd7.log
2004-08-27 13:03:41 yolopd[195]: setting signal handlers done.
2004-08-27 13:03:53 yolopd[195]: ATM001: send SIGUSR1 (refresh).
2004-08-27 13:03:53 yolopd[195]: got SIGUSR1.
2004-08-27 13:04:24 yolopd[195]: ATM001: send SIGUSR1 (refresh).
2004-08-27 13:04:24 yolopd[195]: got SIGUSR1.
[...and then normal exit...]

$ grep -i sig yolopdB.log
2004-08-27 13:01:35 yolopd[149]: setting signal handlers done.
2004-08-27 13:01:50 yolopd[149]: ATM001: send SIGUSR1 (refresh).
2004-08-27 13:01:50 yolopd[149]: got SIGUSR1.
2004-08-27 13:01:59 yolopd[149]: ATM001: send SIGUSR1 (refresh).
2004-08-27 13:02:20 yolopd[149]: got SIGUSR1.
2004-08-27 13:02:20 yolopd[149]: got SIGUSR1.  -- twice!
[...immediate crash...]

$ ls -l strace?.log
-rw-r--r--1 Valery   None 6277 Aug 27 13:04 strace7.log
-rw-r--r--1 Valery   None   171388 Aug 27 13:02 straceB.log

Compare the size of strace log files!  :-[  ]

$ grep -c pending strace?.log
strace7.log:5
straceB.log:679   -- !!!

$ grep -c signal.*not delivered strace?.log
strace7.log:0
straceB.log:6 -- !!!

$ grep -E '(arriv|returning.*signal 30)' strace7.log
13:03:53 [sig] yolopd 195 _threadinfo::interrupt_setup: armed signal_arrived 0x60, sig 
30, res 1
13:03:53 [main] yolopd 195 reset_signal_arrived: reset signal_arrived
13:03:53 [unknown (0x6A)] yolopd 195 sig_send: returning 0x0 from sending signal 30
13:04:24 [sig] yolopd 195 _threadinfo::interrupt_setup: armed signal_arrived 0x60, sig 
30, res 1
13:04:24 [main] yolopd 195 reset_signal_arrived: reset signal_arrived
13:04:24 [unknown (0x6A)] yolopd 195 sig_send: returning 0x0 from sending signal 30

$ grep -E '(arriv|returning.*signal 30)' straceB.log
13:01:50 [sig] yolopd 149 _cygtls::interrupt_setup: armed signal_arrived 0x9C, sig 30, 
res 1
13:01:50 [unknown (0xC3)] yolopd 149 sig_send: returning 0x0 from sending signal 30
13:01:51 [unknown (0xC8)] yolopd 149 reset_signal_arrived: reset signal_arrived
13:02:00 [unknown (0xC3)] yolopd 149 sig_send: returning 0x0 from sending signal 30
13:02:20 [unknown (0xC8)] yolopd 149 reset_signal_arrived: reset signal_arrived
13:02:20 [sig] yolopd 149 _cygtls::interrupt_setup: armed signal_arrived 0x9C, sig 30, 
res 1
13:02:20 [unknown (0xC8)] yolopd 149 reset_signal_arrived: reset signal_arrived

Two things which I've found out in strace?.log.

First. In strace7.log exactly one reset_signal_arrived record after
each armed signal. In straceB.log for first signal there is _two_
reset_signal_arrived records with ~30 seconds interval.

Second. In strace7.log reset_signal_arrived record is present _before_
returning 0x0 from sending signal 30. In straceB.log - _after_.

Maybe I'm saying nonsense and problem is placed in my daemon code
but not in cygwin but...

Whole trace files (strace7.log  straceB.log) are attached to this letter.

I can't make small source code 

Re: signal delivery problem (with pthreads)

2004-08-27 Thread Valery A. Frolov
 Whole trace files (strace7.log  straceB.log) are attached to this letter.

Heh... Forgot attach it.

WBR,
 Valery
13:03:41 [main] yolopd 161 sigproc_init: process/signal handling enabled(1)
13:03:41 [main] yolopd 161 wait_for_sigthread: wait_sig_inited 0x54
13:03:41 [main] yolopd 161 subproc_init: started wait_subproc thread
13:03:41 [main] yolopd 161 proc_subproc: args: 1, 2239944
13:03:41 [main] yolopd 161 proc_subproc: added pid 195 to wait list, slot 0, winpid 
0xC3, handle 0x128
13:03:41 [main] yolopd 161 proc_subproc: returning 1
13:03:41 [proc] yolopd 161 wait_subproc: starting
13:03:41 [proc] yolopd 161 wait_subproc: looping
13:03:41 [main] yolopd 195 fork_child: hParent 0x68, child 1 first_dll 0x0, load_dlls 0
13:03:41 [main] yolopd 195 sigproc_init: process/signal handling enabled(801)
13:03:41 [main] yolopd 195 wait_for_sigthread: wait_sig_inited 0x48
13:03:41 [main] yolopd 195 sigaction: signal 15, newact 0x0, oldact 0x2233F0
13:03:41 [main] yolopd 195 sigaction: signal 15, newact 0x2233F0, oldact 0x0
13:03:41 [main] yolopd 195 sigaction: signal 2, newact 0x0, oldact 0x2233F0
13:03:41 [main] yolopd 195 sigaction: signal 2, newact 0x2233F0, oldact 0x0
13:03:41 [main] yolopd 195 sigaction: signal 30, newact 0x0, oldact 0x2233F0
13:03:41 [main] yolopd 195 sigaction: signal 30, newact 0x2233F0, oldact 0x0
13:03:41 [main] yolopd 195 sigaction: signal 31, newact 0x0, oldact 0x2233F0
13:03:41 [main] yolopd 195 sigaction: signal 31, newact 0x2233F0, oldact 0x0
13:03:41 [main] yolopd 195 sigaction: signal 1, newact 0x0, oldact 0x2233F0
13:03:41 [main] yolopd 195 sigaction: signal 1, newact 0x2233F0, oldact 0x0
13:03:41 [main] yolopd 195 sigaction: signal 13, newact 0x0, oldact 0x2233F0
13:03:41 [main] yolopd 195 sigaction: signal 13, newact 0x2233F0, oldact 0x0
13:03:41 [main] yolopd 195 sig_send: sendsig 0xE8, pid 195, signal -13, its_me 1
13:03:41 [main] yolopd 195 sig_send: wakeup 0xC0
13:03:41 [sig] yolopd 195 wait_sig: signalled 0xC0
13:03:41 [main] yolopd 195 sig_send: Waiting for pack.wakeup 0xC0
13:03:41 [main] yolopd 195 sig_send: returning 0x0 from sending signal -13
13:03:41 [main] yolopd 195 set_signal_mask: oldmask 0x0, newmask 0x0, mask_bits 0x0
13:03:41 [main] yolopd 195 set_signal_mask: not calling sig_dispatch_pending
13:03:41 [main] yolopd 195 handle_sigsuspend: oldmask 0x0, newmask 0x0
13:03:42 [main] yolopd 161 sigproc_terminate: entering
13:03:42 [sig] yolopd 161 wait_sig: done
13:03:42 [main] yolopd 161 proc_terminate: nchildren 1, nzombies 0
13:03:42 [main] yolopd 161 proc_subproc: args: 3, 1
13:03:42 [main] yolopd 161 proc_subproc: clear waiting threads
13:03:42 [main] yolopd 161 proc_subproc: finished clearing
13:03:42 [main] yolopd 161 proc_subproc: returning 1
13:03:42 [main] yolopd 161 proc_terminate: 195(195) closed child handle
13:03:42 [main] yolopd 161 proc_terminate: leaving
13:03:42 [main] yolopd 161 do_exit: 161 == pgrp 161, send SIG{HUP,CONT} to stopped 
children
13:03:42 [main] yolopd 161 kill_pgrp: pid 161, signal -1
13:03:42 [proc] yolopd 161 wait_subproc: looping
13:03:42 [proc] yolopd 161 wait_subproc: done
13:03:42 [main] yolopd 161 _pinfo::exit: Calling ExitProcess 0
13:03:53 [unknown (0x6A)] yolopd 195 sig_send: sendsig 0xE8, pid 195, signal 30, 
its_me 1
13:03:53 [unknown (0x6A)] yolopd 195 sig_send: wakeup 0x140
13:03:53 [sig] yolopd 195 sig_handle: signal 30 processing
13:03:53 [sig] yolopd 195 sig_handle: signal 30, about to call 0x401088
13:03:53 [sig] yolopd 195 proc_subproc: args: 3, 1
13:03:53 [sig] yolopd 195 proc_subproc: clear waiting threads
13:03:53 [sig] yolopd 195 proc_subproc: finished clearing
13:03:53 [sig] yolopd 195 proc_subproc: returning 1
13:03:53 [sig] yolopd 195 _threadinfo::interrupt_setup: armed signal_arrived 0x60, sig 
30, res 1
13:03:53 [sig] yolopd 195 setup_handler: interrupted known cygwin routine
13:03:53 [sig] yolopd 195 setup_handler: signal 30 delivered
13:03:53 [sig] yolopd 195 sig_handle: returning 1
13:03:53 [sig] yolopd 195 wait_sig: signalled 0x140
13:03:53 [main] yolopd 195 reset_signal_arrived: reset signal_arrived
13:03:53 [main] yolopd 195 set_signal_mask: oldmask 0x0, newmask 0x2000, mask_bits 
0x0
13:03:53 [main] yolopd 195 set_signal_mask: not calling sig_dispatch_pending
13:03:53 [main] yolopd 195 set_signal_mask: oldmask 0x2000, newmask 0x0, mask_bits 
0x2000
13:03:53 [main] yolopd 195 set_signal_mask: oldmask 0x0, newmask 0x0, mask_bits 0x0
13:03:53 [main] yolopd 195 set_signal_mask: not calling sig_dispatch_pending
13:03:53 [main] yolopd 195 handle_sigsuspend: oldmask 0x0, newmask 0x0
13:03:53 [unknown (0x6A)] yolopd 195 sig_send: Waiting for pack.wakeup 0x140
13:03:53 [unknown (0x6A)] yolopd 195 sig_send: returning 0x0 from sending signal 30
13:04:24 [unknown (0x6A)] yolopd 195 sig_send: sendsig 0xE8, pid 195, signal 30, 
its_me 1
13:04:24 [unknown (0x6A)] yolopd 195 sig_send: wakeup 0x1E8
13:04:24 [sig] yolopd 195 sig_handle: signal 30 processing
13:04:24 [sig] yolopd 195 sig_handle: signal 

Re: signal delivery problem (with pthreads)

2004-08-27 Thread Christopher Faylor
On Fri, Aug 27, 2004 at 09:11:56PM +0300, Valery A. Frolov wrote:
In short:
First signal delivery on call of pthread_kill(tid, SIGUSR1) works fine
but second one delivers signal with _delay_ and _twice_, and then my
own daemon crash. This is on cygwin1.dll 1.5.10-3 and snapshot of
2004-08-21. But on cygwin1.dll 1.5.7-1 all works _fine_ and _long_ time.

In detail:
(Sorry for my bad English.)
(And sorry for long letter.)
(And much more sorry if this is not appropriate place to ask this question.)

Sorry, but if this is really a problem, you're going to have to provide a
simple test case which reproduces it.  Providing a description of the
symptoms is not going to do it and neither is unsolicited strace output.

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/