cygthread::cygthread() hang

Joe Buehler jbuehler@hekimian.com
Thu Apr 3 20:45:00 GMT 2003


Christopher,

Here's a trace of the hang occuring, if you have any ideas.

Emacs has a periodic timer going at all times.  It looks like maybe
the timer causes a SIGALRM during a blocking read, and that is killing
a cygthread that is in the middle of creation?

I checked for detach() being called by non-creator -- it does not happen.
At the moment I am adding more debugging output to try and see what is clobbering
cygthread->h.

   119 422018333 [main] emacs 757 readv: readv (6, 0x22A2D8, 1) blocking, sigcatchers 18

112206 422130539 [win] emacs 757 wndproc 275 WM_TIMER 1 0
   278 422130817 [win] emacs 757 kill: kill (757, 14)
   224 422131041 [win] emacs 757 sig_dispatch_pending: pending_signals 0
   148 422131189 [win] emacs 757 sig_dispatch_pending: no need to wake anything up
   148 422131337 [win] emacs 757 sig_send: pid 757, signal 14, its_me 1
   180 422131517 [win] emacs 757 sig_send: Waiting for thiscomplete 0x74

    13 422131530 [sig] emacs 757 wait_sig: awake
   275 422131805 [sig] emacs 757 wait_sig: processing signal 14
   160 422131965 [sig] emacs 757 wait_sig: Got signal 14
   145 422132110 [sig] emacs 757 sig_handle: signal 14
   156 422132266 [sig] emacs 757 sig_handle: signal 14, about to call 0x20125D64
   204 422132470 [sig] emacs 757 interruptible: pc 0x6108DE8E, h 0x61000000, interruptible 0, testvalid 0
   229 422132699 [sig] emacs 757 interruptible: pc 0x200A606E, h 0x20000000, interruptible 1, testvalid 0
   138 422132837 [sig] emacs 757 proc_subproc: args: 3, 1
   130 422132967 [sig] emacs 757 proc_subproc: clear waiting threads
   129 422133096 [sig] emacs 757 proc_subproc: finished clearing
   131 422133227 [sig] emacs 757 proc_subproc: returning 1
   135 422133362 [sig] emacs 757 interrupt_setup: armed signal_arrived 0x1B0, res 1
   179 422133541 [sig] emacs 757 setup_handler: signal successfully delivered
   140 422133681 [sig] emacs 757 setup_handler: returning 1
   127 422133808 [sig] emacs 757 sig_handle: returning 1
   140 422133948 [sig] emacs 757 wait_sig: looping

     6 422133954 [win] emacs 757 sig_send: returning 0 from sending signal 14
   280 422134234 [win] emacs 757 kill_worker: 0 = kill_worker (757, 14)

  4350 422138584 [main] emacs 757 __set_errno: void set_sig_errno(int):791 val 4
   322 422138906 [main] emacs 757 call_signal_handler_now: sa_flags 0x10000000
   162 422139068 [main] emacs 757 reset_signal_arrived: reset signal_arrived
   146 422139214 [main] emacs 757 set_process_mask: old mask = 0, new mask = 2000
   150 422139364 [main] emacs 757 sig_dispatch_pending: pending_signals 0
   132 422139496 [main] emacs 757 sig_dispatch_pending: no need to wake anything up
   171 422139667 [main] emacs 757 set_process_mask: old mask = 2000, new mask = 0
   144 422139811 [main] emacs 757 sig_dispatch_pending: pending_signals 0
   148 422139959 [main] emacs 757 sig_dispatch_pending: no need to wake anything up
   163 422140122 [main] emacs 757 __set_errno: ssize_t readv(int, const iovec*, int):490 val 0
   160 422140282 [main] emacs 757 sig_dispatch_pending: pending_signals 0
   140 422140422 [main] emacs 757 sig_dispatch_pending: no need to wake anything up
   144 422140566 [main] emacs 757 readv: readv (6, 0x22A2D8, 1) blocking, sigcatchers 18

97394 422237960 [win] emacs 757 wndproc 275 WM_TIMER 1 0
   277 422238237 [win] emacs 757 kill: kill (757, 14)
   208 422238445 [win] emacs 757 sig_dispatch_pending: pending_signals 0
   155 422238600 [win] emacs 757 sig_dispatch_pending: no need to wake anything up
   147 422238747 [win] emacs 757 sig_send: pid 757, signal 14, its_me 1
   193 422238940 [win] emacs 757 sig_send: Waiting for thiscomplete 0x74

     5 422238945 [sig] emacs 757 wait_sig: awake
   281 422239226 [sig] emacs 757 wait_sig: processing signal 14
   130 422239356 [sig] emacs 757 wait_sig: Got signal 14
   129 422239485 [sig] emacs 757 sig_handle: signal 14
   126 422239611 [sig] emacs 757 sig_handle: signal 14, about to call 0x20125D64
   200 422239811 [sig] emacs 757 interruptible: pc 0x6108DE8E, h 0x61000000, interruptible 0, testvalid 0
   238 422240049 [sig] emacs 757 interruptible: pc 0x200A606E, h 0x20000000, interruptible 1, testvalid 0
   140 422240189 [sig] emacs 757 proc_subproc: args: 3, 1
   128 422240317 [sig] emacs 757 proc_subproc: clear waiting threads
   128 422240445 [sig] emacs 757 proc_subproc: finished clearing
   127 422240572 [sig] emacs 757 proc_subproc: returning 1
   128 422240700 [sig] emacs 757 interrupt_setup: armed signal_arrived 0x1B0, res 1
   129 422240829 [sig] emacs 757 setup_handler: signal successfully delivered
   202 422241031 [sig] emacs 757 setup_handler: returning 1
   137 422241168 [sig] emacs 757 sig_handle: returning 1
   138 422241306 [sig] emacs 757 wait_sig: looping

     7 422241313 [win] emacs 757 sig_send: returning 0 from sending signal 14
   275 422241588 [win] emacs 757 kill_worker: 0 = kill_worker (757, 14)

  4467 422246055 [main] emacs 757 __set_errno: void set_sig_errno(int):791 val 4
   334 422246389 [main] emacs 757 call_signal_handler_now: sa_flags 0x10000000
   157 422246546 [main] emacs 757 reset_signal_arrived: reset signal_arrived
   149 422246695 [main] emacs 757 set_process_mask: old mask = 0, new mask = 2000
   151 422246846 [main] emacs 757 sig_dispatch_pending: pending_signals 0
   127 422246973 [main] emacs 757 sig_dispatch_pending: no need to wake anything up
   163 422247136 [main] emacs 757 set_process_mask: old mask = 2000, new mask = 0
   147 422247283 [main] emacs 757 sig_dispatch_pending: pending_signals 0
   161 422247444 [main] emacs 757 sig_dispatch_pending: no need to wake anything up
   152 422247596 [main] emacs 757 __set_errno: ssize_t readv(int, const iovec*, int):490 val 0
   160 422247756 [main] emacs 757 sig_dispatch_pending: pending_signals 0
   146 422247902 [main] emacs 757 sig_dispatch_pending: no need to wake anything up
   147 422248049 [main] emacs 757 readv: readv (6, 0x22A2D8, 1) blocking, sigcatchers 18
   469 422248518 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   211 422248729 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   170 422248899 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   191 422249090 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   168 422249258 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   165 422249423 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   166 422249589 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
   175 422249764 [main] emacs 757 cygthread::cygthread: waiting for (null)<0x0> to become active
-- 
Joe Buehler



More information about the Cygwin-developers mailing list