delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/05/24/08:18:04

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,SPF_NEUTRAL,TW_GJ,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
Message-ID: <4FBE26C8.1000008@cornell.edu>
Date: Thu, 24 May 2012 08:17:12 -0400
From: Ken Brown <kbrown AT cornell DOT edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: "emacs -nw" hangs in a terminal
References: <4FBA5FDA DOT 7080801 AT cornell DOT edu> <20120521162908 DOT GP7763 AT calimero DOT vinschen DOT de> <4FBA8EA0 DOT 4040905 AT cornell DOT edu> <20120522112828 DOT GA9200 AT calimero DOT vinschen DOT de> <4FBB7BA6 DOT 9000409 AT cornell DOT edu> <20120522134119 DOT GB9200 AT calimero DOT vinschen DOT de> <20120522134932 DOT GC9200 AT calimero DOT vinschen DOT de> <4FBCD166 DOT 8080101 AT cornell DOT edu> <20120523141538 DOT GI9200 AT calimero DOT vinschen DOT de> <4FBD08B0 DOT 50209 AT cornell DOT edu> <20120523160235 DOT GK9200 AT calimero DOT vinschen DOT de>
In-Reply-To: <20120523160235.GK9200@calimero.vinschen.de>
X-PMX-CORNELL-SPAM-CHECKED: Pawpaw
X-Original-Sender: kbrown AT cornell DOT edu - Thu May 24 08:17:30 2012
X-PMX-CORNELL-REASON: CU_White_List_Override
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------030501090402080501020108
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 5/23/2012 12:02 PM, Corinna Vinschen wrote:
> On May 23 11:56, Ken Brown wrote:
>> On 5/23/2012 10:15 AM, Corinna Vinschen wrote:
>>> On May 23 08:00, Ken Brown wrote:
>>> I don't know what this has to do with the longjmp, but the thread
>>> which gets crated right after pressing Ctrl-G is due to a select or
>>> poll call.  The descriptor is a pipe, fifo, or pty.
>>
>> After the longjmp, emacs has finished processing the C-g and goes
>> back into its idle loop, in which it repeatedly calls select.
>>
>> gdb doesn't normally show the threads created by select.  If it did,
>> it would always create voluminous output.  Can you infer anything
>> from the fact that it shows this one?
>>
>>> The problem with stackdumps is that the addresses only make sense
>>> for a single version of the Cygwin DLL.  If that's a self-built
>>> version, what does `addr2line -e /bin/cygwin1.dll 610CFA77' print?
>>> If it's 1.7.15, please install the cygwin-debug package and call
>>> the same addr2line.
>>>
>>> I assume the address corresponds to select.cc, line 625, but I'm
>>> quite busy with the pthread_cancel stuff, so I didn't look deeper
>>> into this problem.
>>
>> Yes, that's correct.  (I'm using the 20120516 snapshot.)
>>
>>>> eax=80106D50 ebx=34322D73 ecx=766231E7 edx=00000000 esi=00000001
>>>> edi=00000050
>>>> ebp=048FACC8 esp=048FACA0
>>>> program=C:\cygwin\home\kbrown\src\emacs\test-nox\src\emacs.exe, pid
>>>> 6492, thread pipesel
>>>                 ^^^^^^^
>>> Yes, that's exactly the created thread.  Do you happen to know what
>>> kind of descriptor has been given to select at this point?  Is that
>>> a pty master side perhaps?
>>
>> Based on the emacs code, I think that's right.  But maybe I need to
>> download the source for the snapshot I'm using (or build cygwin1.dll
>> myself) so that I can step through the first call to select after
>> the longjmp and see exactly where the crash is happening.
>
> That would be most helpful.  I don't grok this crash.  It's one of
> the "this should never possibly happen" kind...

I'm now using an unoptimized build of the 20120523 snapshot.  The gdb 
session is below.  I first started emacs and started the shell process; 
this guarantees that when emacs calls select, one of the descriptors is 
a pty master.  Then I attached gdb and put a breakpoint at the emacs 
function unwind_to_catch, which is triggered when I press C-g.  It took 
two presses of C-g to get the crash.  I think the rest is self-explanatory.

(gdb) b unwind_to_catch
Breakpoint 3 at 0x52aca2: file eval.c, line 1234.
(gdb) c
Continuing.
[Switching to Thread 860.0x2390]

Breakpoint 3, unwind_to_catch (catch=0x28a8d0, value=12929854) at 
eval.c:1234
1234      catch->val = value;
(gdb) b thread_pipe
Breakpoint 4 at 0x610d871a: file 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc, 
line 618.
(gdb) n
1237      set_poll_suppress_count (catch->poll_suppress_count);

[stepping through unwind_to_catch...]

1272      _longjmp (catch->jmp, 1);
(gdb)
[Switching to Thread 860.0x1d8c]

Breakpoint 4, thread_pipe (arg=0x80104d00)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:618
618       select_pipe_info *pi = (select_pipe_info *) arg;
(gdb) n
619       DWORD sleep_time = 0;
(gdb)
620       bool looping = true;
(gdb)
622       while (looping)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
625             if (s->startup == start_thread_pipe)
(gdb)
627                 if (peek_pipe (s, true))
(gdb)
629                 if (pi->stop_thread)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
625             if (s->startup == start_thread_pipe)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
636           if (!looping)
(gdb)
638           Sleep (sleep_time >> 3);
(gdb)
639           if (sleep_time < 80)
(gdb)
640             ++sleep_time;
(gdb)
641           if (pi->stop_thread)
(gdb)
622       while (looping)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
625             if (s->startup == start_thread_pipe)
(gdb)
627                 if (peek_pipe (s, true))
(gdb)
629                 if (pi->stop_thread)
(gdb)
631                     select_printf ("stopping");
(gdb)
632                     looping = false;
(gdb)
633                     break;
(gdb)
636           if (!looping)
(gdb)
637             break;
(gdb)
644       return 0;
(gdb)
645     }
(gdb)
cygthread::callfunc (this=0x6119e080, issimplestub=false)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/cygthread.cc:53
53      }
(gdb) c
Continuing.

Breakpoint 4, thread_pipe (arg=0x80104cf0)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:618
618       select_pipe_info *pi = (select_pipe_info *) arg;
(gdb) disable 4
(gdb) c
Continuing.
[Switching to Thread 860.0x2390]

Breakpoint 3, unwind_to_catch (catch=0x28a8d0, value=12996910) at 
eval.c:1234
1234      catch->val = value;
[stepping through unwind_to_catch...]
1272      _longjmp (catch->jmp, 1);
(gdb)
[New Thread 860.0x2280]      <<<<<<<<<<<<<<<<<<<<<<<<<<<
[Switching to Thread 860.0x2280]

Breakpoint 4, thread_pipe (arg=0x80104d00)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:618
618       select_pipe_info *pi = (select_pipe_info *) arg;
(gdb) n
619       DWORD sleep_time = 0;
(gdb)
620       bool looping = true;
(gdb)
622       while (looping)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
625             if (s->startup == start_thread_pipe)
(gdb)
627                 if (peek_pipe (s, true))
(gdb)
629                 if (pi->stop_thread)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
625             if (s->startup == start_thread_pipe)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
636           if (!looping)
(gdb)
638           Sleep (sleep_time >> 3);
(gdb)
639           if (sleep_time < 80)
(gdb)
640             ++sleep_time;
(gdb)
641           if (pi->stop_thread)
(gdb)
622       while (looping)
(gdb)
624           for (select_record *s = pi->start; (s = s->next); )
(gdb)
625             if (s->startup == start_thread_pipe)
(gdb)
627                 if (peek_pipe (s, true))
(gdb)

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 860.0x1d8c]
0x610d87df in thread_pipe (arg=0x80104cf0)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:638
638           Sleep (sleep_time >> 3);
(gdb) n

Program received signal SIGILL, Illegal instruction.
0x610d87df in thread_pipe (arg=0x80104cf0)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:638
638           Sleep (sleep_time >> 3);
(gdb) n

Program received signal SIGILL, Illegal instruction.
0x610d87df in thread_pipe (arg=0x80104cf0)
     at 
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:638
638           Sleep (sleep_time >> 3);
(gdb) n

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 860.0x2390]
0x76f3f8b1 in ntdll!RtlUpdateClonedSRWLock () from 
/c/windows/SysWOW64/ntdll.dll
(gdb) thread apply all bt full
[compressed output attached]

The stackdump this time contains only one line:

Exception: STATUS_PRIVILEGED_INSTRUCTION at eip=610D87DF

But the following was printed on the terminal:

eax=9FA8007D ebx=079ACE64 ecx=766231E7 edx=00000000 esi=00000000 
edi=00000000
ebp=079AACA8 esp=079AAC80 
program=C:\cygwin\home\kbrown\src\emacs\test-nox\src\emacs.exe, pid 
9636, thread pipesel
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
079AACA8  610D873E  (80104830, 00000000, 00000000, 00000000)
079AACE8  61003902  (611B048C, 00000000, 00000000, 00000000)
079AFF88  61003AC4  (6119E470, 079AFFD4, 76F59EF2, 6119E470)
079AFF94  74F6339A  (6119E470, 5A1FC24C, 00000000, 00000000)
079AFFD4  76F59EF2  (61083BE2, 6119E470, 00000000, 00000000)
Segmentation fault

$ addr2line -e /bin/cygwin1.dll 610D87DF
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/select.cc:638

$ addr2line -e /bin/cygwin1.dll 61003902
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/cygthread.cc:51

$ addr2line -e /bin/cygwin1.dll 61003AC4
/home/kbrown/src/cygwin/cygwin-20120523-1/src/cygwin-snapshot-20120523-1/winsup/cygwin/cygthread.cc:101

I still wonder why gdb shows the creation of that one pipesel thread 
that I marked.

Let me know if there's some other place I should be setting a breakpoint 
in order to track this down.

Ken

--------------030501090402080501020108
Content-Type: application/octet-stream;
 name="bt.out.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="bt.out.bz2"

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
ERFgOl7ZITN7P+9nBYf+LuSKcKEhiFz8+g==


--------------030501090402080501020108
Content-Type: text/plain; charset=us-ascii

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019