all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
@ 2017-10-19  1:18 C K Kashyap
  2017-10-19  3:34 ` Eli Zaretskii
  2017-10-20  1:37 ` 回复:Emacs " seagle0128
  0 siblings, 2 replies; 19+ messages in thread
From: C K Kashyap @ 2017-10-19  1:18 UTC (permalink / raw)
  To: help-gnu-emacs@gnu.org

[-- Attachment #1: Type: text/plain, Size: 674 bytes --]

Okay, I've narrowed it down.

If I just open the attached file (it's a unicode file) and do nothing but
C-g C-s a few times quickly, I run into the hang.

I'd appreciate it very much if someone could let me know how I could avoid
this hang or dig out more information.

Regards,
Kashyap

On Wed, Oct 18, 2017 at 11:24 AM, C K Kashyap <ckkashyap@gmail.com> wrote:

> Hi,
> I noticed that my emacs 25 hangs every time I try to do searches in quick
> successions in a json file (quite small file - about 20 lines). I cant do
> anything but kill emacs at this point.
> Has anyone else seen this? How can I debug this situation and get more
> information?
> Regards,
> Kashyap
>

[-- Attachment #2: servicelistpage.txt --]
[-- Type: text/plain, Size: 28 bytes --]

"hello":""

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-19  1:18 Emacs 25 hangs on windows arbitrarily during search of a unicode file C K Kashyap
@ 2017-10-19  3:34 ` Eli Zaretskii
  2017-10-28 11:05   ` Richard Copley
  2017-10-20  1:37 ` 回复:Emacs " seagle0128
  1 sibling, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-19  3:34 UTC (permalink / raw)
  To: help-gnu-emacs

> From: C K Kashyap <ckkashyap@gmail.com>
> Date: Wed, 18 Oct 2017 18:18:20 -0700
> 
> If I just open the attached file (it's a unicode file) and do nothing but
> C-g C-s a few times quickly, I run into the hang.
> 
> I'd appreciate it very much if someone could let me know how I could avoid
> this hang or dig out more information.

I can see it in Emacs 25.2, but not in the pretest of what will become
Emacs 26.1.  So one thing you could do is install that pretest, it's
available from alpha.gnu.org.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* 回复:Emacs 25 hangs on windows arbitrarily during search of a unicode  file
  2017-10-19  1:18 Emacs 25 hangs on windows arbitrarily during search of a unicode file C K Kashyap
  2017-10-19  3:34 ` Eli Zaretskii
@ 2017-10-20  1:37 ` seagle0128
  1 sibling, 0 replies; 19+ messages in thread
From: seagle0128 @ 2017-10-20  1:37 UTC (permalink / raw)
  To: C K Kashyap, help-gnu-emacs

   I perfer rg on Windows to search with emacs. Try it.
   Best Regards,
   Vincent Zhang

   -------- 原始邮件 --------
   主题:Re: Emacs 25 hangs on windows arbitrarily during search of a
   unicode
   file
   �件人:C K Kashyap
   收件人:help-gnu-emacs@gnu.org
   抄�:

     Okay, I've narrowed it down.
     If I just open the attached file (it's a unicode file) and do
     nothing but
     C-g C-s a few times quickly, I run into the hang.
     I'd appreciate it very much if someone could let me know how I could
     avoid
     this hang or dig out more information.
     Regards,
     Kashyap
     On Wed, Oct 18, 2017 at 11:24 AM, C K Kashyap wrote:
     > Hi,
     > I noticed that my emacs 25 hangs every time I try to do searches
     in quick
     > successions in a json file (quite small file - about 20 lines). I
     cant do
     > anything but kill emacs at this point.
     > Has anyone else seen this? How can I debug this situation and get
     more
     > information?
     > Regards,
     > Kashyap
     >


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-19  3:34 ` Eli Zaretskii
@ 2017-10-28 11:05   ` Richard Copley
  2017-10-28 11:31     ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-28 11:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs@gnu.org

[-- Attachment #1: Type: text/plain, Size: 1287 bytes --]

On 19 October 2017 at 04:34, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: C K Kashyap <ckkashyap@gmail.com>
>> Date: Wed, 18 Oct 2017 18:18:20 -0700
>>
>> If I just open the attached file (it's a unicode file) and do nothing but
>> C-g C-s a few times quickly, I run into the hang.
>>
>> I'd appreciate it very much if someone could let me know how I could avoid
>> this hang or dig out more information.
>
> I can see it in Emacs 25.2, but not in the pretest of what will become
> Emacs 26.1.  So one thing you could do is install that pretest, it's
> available from alpha.gnu.org.

I don't see a hang, I see an immediate segfault. I build emacs-26 myself.
The recipe from "emacs -Q servicelistpage.txt":
    Type C-g.

The crash occurs at -O1 and -O3. It does not occur at -O0. Attached is
a gdb backtrace (at -O1 -ggdb3). This is built with the 64-bit mingw-w64
toolchain from MSYS2, up to date as of now, from the fsf emacs-26
branch, with no local patches.

commit 68182a471007e4cb72efe53c38af9cb3aae332d2
Author: Eli Zaretskii <eliz@gnu.org>
Date:   Sat Oct 28 13:29:29 2017 +0300

git reset --hard origin/emacs-26
git clean -xfd
./autogen.sh
./configure --config-cache --with-modules --without-pop 'CFLAGS=-O1 -ggdb3'
make -j8 -Oline

See attached for the gdb session transcript.

[-- Attachment #2: backtrace.txt --]
[-- Type: text/plain, Size: 13135 bytes --]

$ gdb --quiet -ex run --args src/emacs.exe -Q "C:\Users\buster\AppData\Local\Temp\servicelistpage-1.txt"
Reading symbols from src/emacs.exe...done.
Starting program: C:\projects\emacs\src\emacs.exe -Q C:\Users\buster\AppData\Local\Temp\servicelistpage-1.txt
[New Thread 5480.0x1e9c]
[New Thread 5480.0x3bcc]
[New Thread 5480.0x1e04]
[New Thread 5480.0x38a4]
[New Thread 5480.0x28a0]
[New Thread 5480.0x2a2c]

Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007ffaa1b693a0 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) thread apply all bt full

Thread 6 (Thread 5480.0x2a2c):
#0  0x00007ffa9f001144 in win32u!NtUserGetMessage ()
   from C:\WINDOWS\System32\win32u.dll
No symbol table info available.
#1  0x00007ffaa1862dd6 in USER32!GetMessageW ()
   from C:\WINDOWS\System32\user32.dll
No symbol table info available.
#2  0x000000040017b2d7 in w32_msg_pump (msg_buf=msg_buf@entry=0x4bafec0)
    at w32fns.c:3255
        msg = {
          hwnd = 0x0,
          message = 0,
          wParam = 0,
          lParam = 0,
          time = 1213933250,
          pt = {
            x = 1136,
            y = 1066
          }
        }
        result = <optimized out>
        focus_window = <optimized out>
#3  0x000000040017b389 in w32_msg_worker (arg=<optimized out>)
    at w32fns.c:3478
        msg = {
          hwnd = 0x0,
          message = 0,
          wParam = 0,
          lParam = 0,
          time = 0,
          pt = {
            x = 0,
            y = 0
          }
        }
        dummy_buf = {
          next = 0x0,
          w32msg = {
            msg = {
              hwnd = 0x0,
              message = 0,
              wParam = 0,
              lParam = 0,
              time = 0,
              pt = {
                x = 0,
                y = 0
              }
            },
            dwModifiers = 0,
            rect = {
              left = 0,
              top = 0,
              right = 0,
              bottom = 0
            }
          },
          result = 0,
          completed = 0
        }
#4  0x00007ffaa0da2774 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\System32\kernel32.dll
No symbol table info available.
#5  0x00007ffaa1b30d51 in ntdll!RtlUserThreadStart ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#6  0x0000000000000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 5 (Thread 5480.0x28a0):
#0  0x00007ffaa1b65a24 in ntdll!ZwDelayExecution ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#1  0x00007ffa9e037287 in SleepEx () from C:\WINDOWS\System32\KernelBase.dll
No symbol table info available.
#2  0x00000004001a89c2 in timer_loop (arg=0x401adfd60 <real_itimer>)
    at w32proc.c:397
        sleep_time = <optimized out>
        handler = <optimized out>
        now = <optimized out>
        expire = <optimized out>
        reload = <optimized out>
        itimer = 0x401adfd60 <real_itimer>
        which = <optimized out>
        crit = 0x401adfca0 <crit_prof>
        hth = 0x0
#3  0x00007ffaa0da2774 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\System32\kernel32.dll
No symbol table info available.
#4  0x00007ffaa1b30d51 in ntdll!RtlUserThreadStart ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#5  0x0000000000000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 4 (Thread 5480.0x38a4):
#0  0x00007ffaa1b68c34 in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#1  0x00007ffaa1b01553 in ntdll!TpReleaseWork ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#2  0x00007ffaa0da2774 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\System32\kernel32.dll
No symbol table info available.
#3  0x00007ffaa1b30d51 in ntdll!RtlUserThreadStart ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#4  0x0000000000000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 3 (Thread 5480.0x1e04):
#0  0x00007ffaa1b68c34 in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#1  0x00007ffaa1b01553 in ntdll!TpReleaseWork ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#2  0x00007ffaa0da2774 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\System32\kernel32.dll
No symbol table info available.
#3  0x00007ffaa1b30d51 in ntdll!RtlUserThreadStart ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#4  0x0000000000000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 5480.0x3bcc):
#0  0x00007ffaa1b68c34 in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#1  0x00007ffaa1b01553 in ntdll!TpReleaseWork ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#2  0x00007ffaa0da2774 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\System32\kernel32.dll
No symbol table info available.
#3  0x00007ffaa1b30d51 in ntdll!RtlUserThreadStart ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#4  0x0000000000000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 1 (Thread 5480.0x1e9c):
#0  0x00007ffaa1b693a0 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#1  0x00007ffaa1ad8f27 in ntdll!RtlUnwindEx ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#2  0x00007ffaa0671f4a in msvcrt!_setjmpex ()
   from C:\WINDOWS\System32\msvcrt.dll
No symbol table info available.
#3  0x00000004000b1a9a in quit_throw_to_read_char (
    from_signal=from_signal@entry=false) at keyboard.c:10548
No locals.
#4  0x00000004000b3db5 in kbd_buffer_get_event (end_time=0x0,
    used_mouse_menu=0x0, kbp=<synthetic pointer>) at keyboard.c:3790
        obj = <optimized out>
#5  read_event_from_main_queue (used_mouse_menu=0x0, local_getcjmp=0xbff258,
    end_time=0x0) at keyboard.c:2151
        c = {
          i = 0
        }
        save_jump = {{
            Part = {0, 0}
          } <repeats 16 times>}
        kb = <optimized out>
#6  read_decoded_event_from_main_queue (used_mouse_menu=0x0, prev_event=...,
    local_getcjmp=0xbff258, end_time=0x0) at keyboard.c:2214
No locals.
#7  read_char (commandflag=120, commandflag@entry=1, map=..., map@entry=...,
    prev_event=..., used_mouse_menu=0x0, used_mouse_menu@entry=0xbff44b,
    end_time=end_time@entry=0x0) at keyboard.c:2802
        c = <optimized out>
        jmpcount = 0
        local_getcjmp = {{
            Part = {12579624, 17185452969}
          }, {
            Part = {12578304, 12579624}
          }, {
            Part = {17185461184, 17185861600}
          }, {
            Part = {534528, 3}
          }, {
            Part = {0, 0}
          }, {
            Part = {17180601996, 3843995738016}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }, {
            Part = {0, 0}
          }}
        save_jump = {{
            Part = {17185907520, 17185869328}
          }, {
            Part = {61768, 80389168}
          }, {
            Part = {2, 17185131016}
          }, {
            Part = {12579296, 0}
          }, {
            Part = {0, 17181005805}
          }, {
            Part = {0, 17185907520}
          }, {
            Part = {35840, 17188240544}
          }, {
            Part = {61768, 120}
          }, {
            Part = {17185131016, 12579296}
          }, {
            Part = {0, 17181009037}
          }, {
            Part = {0, 80389168}
          }, {
            Part = {1, 15}
          }, {
            Part = {5, 17188880288}
          }, {
            Part = {3002368, 17180939646}
          }, {
            Part = {0, 80389168}
          }, {
            Part = {0, 15}
          }}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = {
          i = 0
        }
        also_record = {
          i = 0
        }
        reread = false
        recorded = false
        polling_stopped_here = true
        orig_kboard = 0x1
#8  0x00000004000b61a3 in read_key_sequence (keybuf=keybuf@entry=0xbff580,
    bufsize=bufsize@entry=30, prompt=..., prompt@entry=...,
    dont_downcase_last=dont_downcase_last@entry=false,
    can_return_switch_frame=can_return_switch_frame@entry=true,
    fix_current_buffer=fix_current_buffer@entry=true,
    prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9147
        interrupted_kboard = 0x41c4c50
        interrupted_frame = 0x400a3fa20 <dumped_data+4594080>
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = <optimized out>
        new_binding = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = {
          i = 17188072051
        }
        first_event = {
          i = 0
        }
        first_unbound = 31
        mock_input = 0
        fkey = {
          parent = {
            i = 17187443171
          },
          map = {
            i = 17187443171
          },
          start = 0,
          end = 0
        }
        keytran = {
          parent = {
            i = 17186169491
          },
          map = {
            i = 17186169491
          },
          start = 0,
          end = 0
        }
        indec = {
          parent = {
            i = 17187443187
          },
          map = {
            i = 17187443187
          },
          start = 0,
          end = 0
        }
        shift_translated = false
        delayed_switch_frame = {
          i = 0
        }
        original_uppercase = {
          i = 0
        }
        original_uppercase_position = -1
        dummyflag = false
        starting_buffer = 0x4caa430
        fake_prefixed_keys = {
          i = 0
        }
#9  0x00000004000b6ee3 in command_loop_1 () at keyboard.c:1368
        cmd = <optimized out>
        keybuf = {{
            i = 0
          }, {
            i = 17181005805
          }, {
            i = 21392506257408078
          }, {
            i = 17185908864
          }, {
            i = 37184
          }, {
            i = 17188240544
          }, {
            i = 0
          }, {
            i = 120
          }, {
            i = 17185131016
          }, {
            i = 12580352
          }, {
            i = 17186479395
          }, {
            i = 17181009037
          }, {
            i = 1460728
          }, {
            i = 0
          }, {
            i = 17185861600
          }, {
            i = 1
          }, {
            i = 5
          }, {
            i = 37184
          }, {
            i = 0
          }, {
            i = 17186190821
          }, {
            i = 0
          }, {
            i = 17185861600
          }, {
            i = 3
          }, {
            i = 17187765203
          }, {
            i = 17185861600
          }, {
            i = 12580608
          }, {
            i = 0
          }, {
            i = 17181024997
          }, {
            i = 17185861600
          }, {
            i = 64312368
          }}
        i = <optimized out>
        prev_modiff = 0
        prev_buffer = 0x0
#10 0x0000000400115d7a in internal_condition_case (
    bfun=bfun@entry=0x4000b6aec <command_loop_1>, handlers=...,
    handlers@entry=..., hfun=hfun@entry=0x4000ad1bb <cmd_error>)
    at eval.c:1332
        val = {
          i = 17185954536
        }
        c = 0x3d55430
#11 0x00000004000a9a87 in command_loop_2 (ignore=...) at keyboard.c:1110
        val = <optimized out>
#12 0x0000000400115ceb in internal_catch (tag=..., tag@entry=...,
    func=func@entry=0x4000a9a63 <command_loop_2>, arg=arg@entry=...)
    at eval.c:1097
        val = {
          i = 17185954536
        }
        c = 0x3d552a0
#13 0x00000004000a99b4 in command_loop () at keyboard.c:1089
No locals.
#14 0x0000000000000000 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 11:05   ` Richard Copley
@ 2017-10-28 11:31     ` Eli Zaretskii
  2017-10-28 12:10       ` Richard Copley
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 11:31 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Richard Copley <rcopley@gmail.com>
> Date: Sat, 28 Oct 2017 12:05:28 +0100
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> 
> >> If I just open the attached file (it's a unicode file) and do nothing but
> >> C-g C-s a few times quickly, I run into the hang.
> >>
> >> I'd appreciate it very much if someone could let me know how I could avoid
> >> this hang or dig out more information.
> >
> > I can see it in Emacs 25.2, but not in the pretest of what will become
> > Emacs 26.1.  So one thing you could do is install that pretest, it's
> > available from alpha.gnu.org.
> 
> I don't see a hang, I see an immediate segfault. I build emacs-26 myself.
> The recipe from "emacs -Q servicelistpage.txt":
>     Type C-g.
> 
> The crash occurs at -O1 and -O3. It does not occur at -O0. Attached is
> a gdb backtrace (at -O1 -ggdb3). This is built with the 64-bit mingw-w64
> toolchain from MSYS2, up to date as of now, from the fsf emacs-26
> branch, with no local patches.

I have 26.0.90 compiled with -Og, and it is not reproducible on my
system.  Maybe it's something specific to the 64-bit build?  My builds
are 32-bit.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 11:31     ` Eli Zaretskii
@ 2017-10-28 12:10       ` Richard Copley
  2017-10-28 12:19         ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-28 12:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs@gnu.org

> Maybe it's something specific to the 64-bit build?

I suspect it might be the 64-bit specific alignment issue
discussed in this thread:
<http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00329.html>

I've downloaded the 32-bit pretest for now, as the build I
described is unusable, I'm sorry to report. It very frequently
crashes on C-g.

After repeating my recipe above with that build, the faulting
instruction in ntdll!RtlCaptureContext is

=> 0x00007ffaa1b693a0 <+384>:   movaps 0x60(%rax),%xmm0

... and %rax is 17185954536 decimal, 4005CDAE8 hex (not 16-byte
aligned).



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 12:10       ` Richard Copley
@ 2017-10-28 12:19         ` Eli Zaretskii
  2017-10-28 12:25           ` Richard Copley
  2017-10-28 12:29           ` Eli Zaretskii
  0 siblings, 2 replies; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 12:19 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Richard Copley <rcopley@gmail.com>
> Date: Sat, 28 Oct 2017 13:10:50 +0100
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> 
> > Maybe it's something specific to the 64-bit build?
> 
> I suspect it might be the 64-bit specific alignment issue
> discussed in this thread:
> <http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00329.html>
> 
> I've downloaded the 32-bit pretest for now, as the build I
> described is unusable, I'm sorry to report. It very frequently
> crashes on C-g.
> 
> After repeating my recipe above with that build, the faulting
> instruction in ntdll!RtlCaptureContext is
> 
> => 0x00007ffaa1b693a0 <+384>:   movaps 0x60(%rax),%xmm0
> 
> ... and %rax is 17185954536 decimal, 4005CDAE8 hex (not 16-byte
> aligned).

What variable is in RAX in that case?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 12:19         ` Eli Zaretskii
@ 2017-10-28 12:25           ` Richard Copley
  2017-10-28 12:31             ` Richard Copley
  2017-10-28 12:29           ` Eli Zaretskii
  1 sibling, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-28 12:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs@gnu.org

On 28 October 2017 at 13:19, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Richard Copley <rcopley@gmail.com>
>> Date: Sat, 28 Oct 2017 13:10:50 +0100
>> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
>>
>> > Maybe it's something specific to the 64-bit build?
>>
>> I suspect it might be the 64-bit specific alignment issue
>> discussed in this thread:
>> <http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00329.html>
>>
>> I've downloaded the 32-bit pretest for now, as the build I
>> described is unusable, I'm sorry to report. It very frequently
>> crashes on C-g.
>>
>> After repeating my recipe above with that build, the faulting
>> instruction in ntdll!RtlCaptureContext is
>>
>> => 0x00007ffaa1b693a0 <+384>:   movaps 0x60(%rax),%xmm0
>>
>> ... and %rax is 17185954536 decimal, 4005CDAE8 hex (not 16-byte
>> aligned).
>
> What variable is in RAX in that case?

I don't think I can see that from here. I might be missing something.
If it is an argument passed to ntdll!RtlCaptureContext, perhaps I
can work it out from the function signature and the disassembly.
Is that what you meant?

(If you would you like to work it out yourself, how can I help?)



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 12:19         ` Eli Zaretskii
  2017-10-28 12:25           ` Richard Copley
@ 2017-10-28 12:29           ` Eli Zaretskii
  1 sibling, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 12:29 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Sat, 28 Oct 2017 15:19:13 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > => 0x00007ffaa1b693a0 <+384>:   movaps 0x60(%rax),%xmm0
> > 
> > ... and %rax is 17185954536 decimal, 4005CDAE8 hex (not 16-byte
> > aligned).
> 
> What variable is in RAX in that case?

I'm guessing it's the jmp_buf from the longjmp call, and this is
probably some snafu related to the MinGW64's deviant _setjmp
machinery, sigh.  In which case please involve the MinGW64 developers
in this issue, and ask them to suggest a solution.

(And this discussion should have moved to bug-gnu-emacs ages ago.)

Thanks.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 12:25           ` Richard Copley
@ 2017-10-28 12:31             ` Richard Copley
  2017-10-28 12:49               ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-28 12:31 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs@gnu.org

On 28 October 2017 at 13:25, Richard Copley <rcopley@gmail.com> wrote:
> On 28 October 2017 at 13:19, Eli Zaretskii <eliz@gnu.org> wrote:
>> What variable is in RAX in that case?
>
> I don't think I can see that from here. I might be missing something.
> If it is an argument passed to ntdll!RtlCaptureContext, perhaps I
> can work it out from the function signature and the disassembly.
> Is that what you meant?
>
> (If you would you like to work it out yourself, how can I help?)

Sorry. It's the first field in the longjmp record.

(gdb) p $rax
$1 = 17185954536
(gdb) up
#1  0x00007ffaa1ad8f27 in ntdll!RtlUnwindEx ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) up
#2  0x00007ffaa0671f4a in msvcrt!_setjmpex ()
   from C:\WINDOWS\System32\msvcrt.dll
(gdb) up
#3  0x00000004000b1a9a in quit_throw_to_read_char (
    from_signal=from_signal@entry=false) at keyboard.c:10548
10548     sys_longjmp (getcjmp, 1);
(gdb) p &getcjmp
$2 = (sys_jmp_buf *) 0x4005cdae8 <main_thread+224>


(rax is 17185954536 = 4005CDAE8h).



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 12:31             ` Richard Copley
@ 2017-10-28 12:49               ` Eli Zaretskii
  2017-10-28 13:56                 ` bug#29040: " Richard Copley
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 12:49 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Richard Copley <rcopley@gmail.com>
> Date: Sat, 28 Oct 2017 13:31:57 +0100
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
> 
> (gdb) p $rax
> $1 = 17185954536

p/x $rax is usually more useful.

> (gdb) up
> #1  0x00007ffaa1ad8f27 in ntdll!RtlUnwindEx ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> (gdb) up
> #2  0x00007ffaa0671f4a in msvcrt!_setjmpex ()
>    from C:\WINDOWS\System32\msvcrt.dll
> (gdb) up
> #3  0x00000004000b1a9a in quit_throw_to_read_char (
>     from_signal=from_signal@entry=false) at keyboard.c:10548
> 10548     sys_longjmp (getcjmp, 1);
> (gdb) p &getcjmp
> $2 = (sys_jmp_buf *) 0x4005cdae8 <main_thread+224>
> 
> 
> (rax is 17185954536 = 4005CDAE8h).

So my guess was correct, and we should ask the MinGW64 developers for
advice about using longjmp.  Most probably, something in that area has
changed in recent releases of their runtime, because otherwise I
cannot explain to myself why these issues pop up only now.

Thanks.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 12:49               ` Eli Zaretskii
@ 2017-10-28 13:56                 ` Richard Copley
  2017-10-28 14:14                   ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-28 13:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs@gnu.org, 29040

Eli Zaretskii <eliz@gnu.org> wrote:

> (And this discussion should have moved to bug-gnu-emacs ages ago.)

#29040 (CC'd).

>> (gdb) p $rax
>> $1 = 17185954536
>
> p/x $rax is usually more useful.

Much better, thank you.

> So my guess was correct, and we should ask the MinGW64 developers for
> advice about using longjmp.  Most probably, something in that area has
> changed in recent releases of their runtime, because otherwise I
> cannot explain to myself why these issues pop up only now.

I thought Paul was of a differing opinion (see
<http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00482.html>)
but perhaps I'm mixing up different issues.

Do I take it we don't get to allocate the jmp_buf ourselves?

> Thanks.

Thanks.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 13:56                 ` bug#29040: " Richard Copley
@ 2017-10-28 14:14                   ` Eli Zaretskii
  2017-10-28 15:58                     ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 14:14 UTC (permalink / raw)
  To: Richard Copley; +Cc: 29040

> From: Richard Copley <rcopley@gmail.com>
> Date: Sat, 28 Oct 2017 14:56:15 +0100
> Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>, 29040@debbugs.gnu.org
> 
> > So my guess was correct, and we should ask the MinGW64 developers for
> > advice about using longjmp.  Most probably, something in that area has
> > changed in recent releases of their runtime, because otherwise I
> > cannot explain to myself why these issues pop up only now.
> 
> I thought Paul was of a differing opinion (see
> <http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00482.html>)
> but perhaps I'm mixing up different issues.

I'm not saying that this is a GCC bug.  But maybe you are right, and
the changes in d7038020 exposed this problem.  I would have thought it
was the other way around: the mis-alignment should have been fixed by
those changes, but the fact that the pretest doesn't have this problem
tells otherwise.

> Do I take it we don't get to allocate the jmp_buf ourselves?

It is a member of struct thread_state, and the struct itself should be
correctly aligned on the emacs-26 branch, AFAIU.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 14:14                   ` Eli Zaretskii
@ 2017-10-28 15:58                     ` Eli Zaretskii
  2017-10-28 16:16                       ` Richard Copley
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 15:58 UTC (permalink / raw)
  To: rcopley; +Cc: 29040

> Date: Sat, 28 Oct 2017 17:14:14 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 29040@debbugs.gnu.org
> 
> I'm not saying that this is a GCC bug.  But maybe you are right, and
> the changes in d7038020 exposed this problem.

Actually, I think it was caused by 015f0bb.  Does the patch below fix
the problem?  Please actually check the alignment of getcjmp, not just
that the crashes went away.

diff --git a/src/thread.c b/src/thread.c
index 6f12d79..2520771 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -26,7 +26,11 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #include "coding.h"
 #include "syssignal.h"
 
-static struct thread_state alignas (GCALIGNMENT) main_thread;
+#define COMMON_MULTIPLE(a, b) \
+  ((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
+#define THREAD_ALIGNMENT COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT)
+
+static struct thread_state alignas (THREAD_ALIGNMENT) main_thread;
 
 struct thread_state *current_thread = &main_thread;
 






^ permalink raw reply related	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 15:58                     ` Eli Zaretskii
@ 2017-10-28 16:16                       ` Richard Copley
  2017-10-28 16:41                         ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-28 16:16 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 29040

On 28 October 2017 at 16:58, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Sat, 28 Oct 2017 17:14:14 +0300
>> From: Eli Zaretskii <eliz@gnu.org>
>> Cc: 29040@debbugs.gnu.org
>>
>> I'm not saying that this is a GCC bug.  But maybe you are right, and
>> the changes in d7038020 exposed this problem.
>
> Actually, I think it was caused by 015f0bb.  Does the patch below fix
> the problem?  Please actually check the alignment of getcjmp, not just
> that the crashes went away.
>
> diff --git a/src/thread.c b/src/thread.c
> index 6f12d79..2520771 100644
> --- a/src/thread.c
> +++ b/src/thread.c
> @@ -26,7 +26,11 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
>  #include "coding.h"
>  #include "syssignal.h"
>
> -static struct thread_state alignas (GCALIGNMENT) main_thread;
> +#define COMMON_MULTIPLE(a, b) \
> +  ((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
> +#define THREAD_ALIGNMENT COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT)
> +
> +static struct thread_state alignas (THREAD_ALIGNMENT) main_thread;
>
>  struct thread_state *current_thread = &main_thread;

Looks good. There's no crash and getcjmp is aligned:

Thread 1 hit Breakpoint 3, quit_throw_to_read_char (
    from_signal=from_signal@entry=false) at keyboard.c:10548
10548     sys_longjmp (getcjmp, 1);
(gdb) p &getcjmp
$1 = (sys_jmp_buf *) 0x4005cdaf0 <main_thread+224>

My message to MinGW-W64 was held up for moderation. I have cancelled it.
Thanks.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 16:16                       ` Richard Copley
@ 2017-10-28 16:41                         ` Eli Zaretskii
  2017-10-29 18:10                           ` Richard Copley
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2017-10-28 16:41 UTC (permalink / raw)
  To: Richard Copley; +Cc: 29040

> From: Richard Copley <rcopley@gmail.com>
> Date: Sat, 28 Oct 2017 17:16:14 +0100
> Cc: 29040@debbugs.gnu.org
> 
> > Actually, I think it was caused by 015f0bb.  Does the patch below fix
> > the problem?  Please actually check the alignment of getcjmp, not just
> > that the crashes went away.
> >
> > diff --git a/src/thread.c b/src/thread.c
> > index 6f12d79..2520771 100644
> > --- a/src/thread.c
> > +++ b/src/thread.c
> > @@ -26,7 +26,11 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
> >  #include "coding.h"
> >  #include "syssignal.h"
> >
> > -static struct thread_state alignas (GCALIGNMENT) main_thread;
> > +#define COMMON_MULTIPLE(a, b) \
> > +  ((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
> > +#define THREAD_ALIGNMENT COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT)
> > +
> > +static struct thread_state alignas (THREAD_ALIGNMENT) main_thread;
> >
> >  struct thread_state *current_thread = &main_thread;
> 
> Looks good. There's no crash and getcjmp is aligned:
> 
> Thread 1 hit Breakpoint 3, quit_throw_to_read_char (
>     from_signal=from_signal@entry=false) at keyboard.c:10548
> 10548     sys_longjmp (getcjmp, 1);
> (gdb) p &getcjmp
> $1 = (sys_jmp_buf *) 0x4005cdaf0 <main_thread+224>

Thanks, I installed that.

If the problem doesn't come back, please close the bug.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-28 16:41                         ` Eli Zaretskii
@ 2017-10-29 18:10                           ` Richard Copley
  2017-11-01 19:16                             ` Richard Copley
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-10-29 18:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 29040

> If the problem doesn't come back, please close the bug.

Not sure yet. There was a crash, but no opportunity to attach
the debugger. I'm running in the debugger now but there has
not been another crash so far.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-10-29 18:10                           ` Richard Copley
@ 2017-11-01 19:16                             ` Richard Copley
  2017-11-02  7:39                               ` Richard Copley
  0 siblings, 1 reply; 19+ messages in thread
From: Richard Copley @ 2017-11-01 19:16 UTC (permalink / raw)
  To: Eli Zaretskii, GNU bug tracker automated control server; +Cc: 29040

tags 29040 fixed
close 29040
thanks

On 29 October 2017 at 18:10, Richard Copley <rcopley@gmail.com> wrote:
>> If the problem doesn't come back, please close the bug.
>
> Not sure yet. There was a crash, but no opportunity to attach
> the debugger. I'm running in the debugger now but there has
> not been another crash so far.

Seems fine now, probably I was mistaken.
Thanks very much.





^ permalink raw reply	[flat|nested] 19+ messages in thread

* bug#29040: Emacs 25 hangs on windows arbitrarily during search of a unicode file
  2017-11-01 19:16                             ` Richard Copley
@ 2017-11-02  7:39                               ` Richard Copley
  0 siblings, 0 replies; 19+ messages in thread
From: Richard Copley @ 2017-11-02  7:39 UTC (permalink / raw)
  To: Eli Zaretskii, GNU bug tracker automated control server; +Cc: 29040

On 1 November 2017 at 19:16, Richard Copley <rcopley@gmail.com> wrote:
> tags 29040 fixed
> close 29040
> thanks
>
> On 29 October 2017 at 18:10, Richard Copley <rcopley@gmail.com> wrote:
>>> If the problem doesn't come back, please close the bug.
>>
>> Not sure yet. There was a crash, but no opportunity to attach
>> the debugger. I'm running in the debugger now but there has
>> not been another crash so far.
>
> Seems fine now, probably I was mistaken.

Yes. I hadn't run "make install". I was still seeing the same crash, in my
previous build.





^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-11-02  7:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-19  1:18 Emacs 25 hangs on windows arbitrarily during search of a unicode file C K Kashyap
2017-10-19  3:34 ` Eli Zaretskii
2017-10-28 11:05   ` Richard Copley
2017-10-28 11:31     ` Eli Zaretskii
2017-10-28 12:10       ` Richard Copley
2017-10-28 12:19         ` Eli Zaretskii
2017-10-28 12:25           ` Richard Copley
2017-10-28 12:31             ` Richard Copley
2017-10-28 12:49               ` Eli Zaretskii
2017-10-28 13:56                 ` bug#29040: " Richard Copley
2017-10-28 14:14                   ` Eli Zaretskii
2017-10-28 15:58                     ` Eli Zaretskii
2017-10-28 16:16                       ` Richard Copley
2017-10-28 16:41                         ` Eli Zaretskii
2017-10-29 18:10                           ` Richard Copley
2017-11-01 19:16                             ` Richard Copley
2017-11-02  7:39                               ` Richard Copley
2017-10-28 12:29           ` Eli Zaretskii
2017-10-20  1:37 ` 回复:Emacs " seagle0128

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.