[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs-26 threads problem [win64]

From: Fabrice Popineau
Subject: Re: Emacs-26 threads problem [win64]
Date: Tue, 10 Oct 2017 20:57:20 +0200

2017-10-10 18:48 GMT+02:00 Eli Zaretskii <address@hidden>:
> Date: Tue, 10 Oct 2017 19:30:11 +0300
> From: Eli Zaretskii <address@hidden>
> Cc: address@hidden
> > From: Fabrice Popineau <address@hidden>
> > Date: Tue, 10 Oct 2017 18:13:19 +0200
> > Cc: Emacs developers <address@hidden>
> >
> > (gdb) p stack_pos
> > $3 = {__max_align_ll = 0, __max_align_ld = 3.587554638101247699761989924457637e-4943}
> What is &stack_pos, the address of stack_pos?  Is it properly aligned?

Also, this very snippet runs every time a non-main thread is run by
Emacs, and yet all of the 18 tests before this one succeeded for you.
What is different in this 19th test that it fails?

What does this test do exactly ? (Well I could read the code but ... doing many other things in parallel)

Because if I print &stack_pos, I get :

(gdb) run -batch --no-site-file --no-site-lisp -L ";../../emacs/test" -l ert -l src/thread-tests.el --eval "(ert-run-tests-batch-and-exit (quote (not (tag :expensive-test))))"
Starting program: /d/Source/emacs/build-emacs-26/src/emacs -batch --no-site-file --no-site-lisp -L ";../../emacs/test" -l ert -l src/thread-tests.el --eval "(ert-run-tests-batch-and-exit (quote (not (tag :expensive-test))))"
[New Thread 20864.0x60c]
[New Thread 20864.0x5bb4]
[New Thread 20864.0x3070]
[New Thread 20864.0x332c]
[New Thread 20864.0x512c]
Running 28 tests (2017-10-10 19:54:11+0100)
[New Thread 20864.0x42ec]
[Thread 20864.0x42ec exited with code 0]
[New Thread 20864.0x25e8]
stack_pos = 741feb0
stack_pos = 7c1feb0
   passed   1/28  thread-errors
[New Thread 20864.0x1118]
[Thread 20864.0x25e8 exited with code 0]
[Thread 20864.0x1118 exited with code 0]
stack_pos = 841feb0
   passed   2/28  thread-signal-early
   passed   3/28  thread-sticky-point
[New Thread 20864.0x562c]
stack_pos = 8c1feb0
   passed   4/28  threads-alive
   passed   5/28  threads-all-threads
[New Thread 20864.0x471c]
[Thread 20864.0x562c exited with code 0]
[Thread 20864.0x471c exited with code 0]
stack_pos = 941feb0
   passed   6/28  threads-basic
   passed   7/28  threads-condvar-mutex
   passed   8/28  threads-condvar-name
   passed   9/28  threads-condvar-name-2
   passed  10/28  threads-condvar-type
[New Thread 20864.0x2970]
[Thread 20864.0x2970 exited with code 0]
stack_pos = 9c1feb0
   passed  11/28  threads-condvar-wait
   passed  12/28  threads-condvarp
   passed  13/28  threads-condvarp-2
[New Thread 20864.0x16a0]
[Thread 20864.0x16a0 exited with code 0]
stack_pos = a41feb0
   passed  14/28  threads-io-switch
   passed  15/28  threads-is-one
[New Thread 20864.0x4e68]
[Thread 20864.0x4e68 exited with code 0]
stack_pos = ac1feb0
   passed  16/28  threads-join
   passed  17/28  threads-join-self
[New Thread 20864.0x63f4]
[Thread 20864.0x63f4 exited with code 0]
stack_pos = b41feb0
   passed  18/28  threads-let-binding
[New Thread 20864.0x4340]

Thread 15 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 20864.0x4340]
run_thread (state=0x400ae5e78 <dumped_data+4670360>) at ../../emacs/src/thread.c:702
702       self->m_stack_bottom = (char *) &stack_pos;

The value of stack_pos keeps  increasing. Isn't there some limit that is reached here ?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]