GNU bug report logs - #25912
2.1.7 segfaults on cygwin

Previous Next

Package: guile;

Reported by: szgyg <szgyg <at> ludens.elte.hu>

Date: Wed, 1 Mar 2017 11:05:02 UTC

Severity: normal

Found in version 2.1.7

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Andy Wingo <wingo <at> pobox.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#25912: closed (2.1.7 segfaults on cygwin)
Date: Tue, 14 Mar 2017 11:36:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 14 Mar 2017 12:35:34 +0100
with message-id <87a88o8515.fsf <at> pobox.com>
and subject line Re: bug#25912: 2.1.7 segfaults on cygwin
has caused the debbugs.gnu.org bug report #25912,
regarding 2.1.7 segfaults on cygwin
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
25912: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25912
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: szgyg <szgyg <at> ludens.elte.hu>
To: bug-guile <at> gnu.org
Subject: 2.1.7 segfaults on cygwin
Date: Wed, 1 Mar 2017 11:27:09 +0100
I got two identical segfaults from make -j2 on 32-bit cygwin, and
three identical segfaults from make -j3 on 64-bit at the same point.

Any idea?

-----------------

Making all in bootstrap
make[2]: Entering directory '/home/szgyg/usr/src/CYGPORT/guile2-2.1.7-0.i686/build/bootstrap'
  BOOTSTRAP GUILEC ice-9/eval.go
wrote `ice-9/eval.go'
  BOOTSTRAP GUILEC ice-9/psyntax-pp.go
  BOOTSTRAP GUILEC language/cps/intmap.go
*** starting debugger for pid 5024, tid 4568
*** starting debugger for pid 5060, tid 1904

----------------

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 5024.0x11d8]
vm_regular_engine (thread=0x20081e40, vp=0x200f0f78, registers=0x22c480,
    resume=0) at /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c:1840
1840          *dst_loc = src;

(gdb) info locals
src = 0x7ff800d8
dst_loc = 0x7ff8d00c
op = 63
jump_table_ = {0x64b956d1 <vm_regular_engine+145>,
[...]

(gdb) print *dst_loc
$3 = (void *) 0x0

(gdb) print *dst_loc = src
Cannot access memory at address 0x7ff8d00c

(gdb) print argv[13]
$16 = 0x612eba68 "language/cps/intmap.go"

---------------------

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 5060.0x770]
vm_regular_engine (thread=0x20081e40, vp=0x200f0f78, registers=0x22c480,
    resume=0) at /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c:1840
1840          *dst_loc = src;

(gdb) info locals
src = 0x7ff800d8
dst_loc = 0x7ff8d00c
op = 63
jump_table_ = {0x64b956d1 <vm_regular_engine+145>,
[...]

(gdb) print argv[13]
$6 = 0x612eba68 "ice-9/psyntax-pp.go"

-----------------------

Making all in bootstrap
make[2]: Entering directory '/home/szgyg/usr/src/CYGPORT/guile/guile2-2.1.7-0.x86_64/build/bootstrap'
  BOOTSTRAP GUILEC ice-9/eval.go
wrote `ice-9/eval.go'
  BOOTSTRAP GUILEC ice-9/psyntax-pp.go
  BOOTSTRAP GUILEC language/cps/intmap.go
*** starting debugger for pid 9848, tid 6772
  BOOTSTRAP GUILEC language/cps/intset.go
*** starting debugger for pid 6600, tid 376
*** starting debugger for pid 10136, tid 9064

--------------------------

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 6600.0x178]
vm_regular_engine (thread=0x600091e00, vp=0x600131f30, registers=0x1, resume=0)
    at /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c:1840
1840    /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c: No such file or directory.
(gdb)

(gdb) info locals
src = 0x6fffffd0128
dst_loc = 0x6fffffdd010
op = 63
jump_table_ = {0x4236bece4 <vm_regular_engine+180>, 0x4236bed84 <vm_regular_engine+340>,
[...]

------------------------

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 9848.0x1a74]
vm_regular_engine (thread=0x600091e00, vp=0x600130f30, registers=0x1, resume=0)
    at /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c:1840
1840    /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c: No such file or directory.

(gdb) info locals
src = 0x6fffffd0128
dst_loc = 0x6fffffdd010
op = 63
jump_table_ = {0x4236bece4 <vm_regular_engine+180>, 0x4236bed84 <vm_regular_engine+340>,
[...]

-------------------------

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 10136.0x2368]
vm_regular_engine (thread=0x600091e00, vp=0x600131f30, registers=0x1, resume=0)
    at /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c:1840
1840    /usr/src/debug/guile2-2.1.7-0/libguile/vm-engine.c: No such file or directory.

(gdb) info locals
src = 0x6fffffd0128
dst_loc = 0x6fffffdd010
op = 63
jump_table_ = {0x4236bece4 <vm_regular_engine+180>, 0x4236bed84 <vm_regular_engine+340>,
[...]

-----------------------

$ less -N +g1840 vm-engine.c
   1821   /* static-patch! _:24 dst-offset:32 src-offset:32
   1822    *
   1823    * Patch a pointer at DST-OFFSET to point to SRC-OFFSET.  Both offsets
   1824    * are signed 32-bit values, indicating a memory address as a number
   1825    * of 32-bit words away from the current instruction pointer.
   1826    */
   1827   VM_DEFINE_OP (63, static_patch, "static-patch!", OP3 (X32, LO32, L32))
   1828     {
   1829       scm_t_int32 dst_offset, src_offset;
   1830       void *src;
   1831       void** dst_loc;
   1832
   1833       dst_offset = ip[1];
   1834       src_offset = ip[2];
   1835
   1836       dst_loc = (void **) (ip + dst_offset);
   1837       src = ip + src_offset;
   1838       VM_ASSERT (ALIGNED_P (dst_loc, void*), abort());
   1839
   1840       *dst_loc = src;
   1841
   1842       NEXT (3);
   1843     }
   1844



[Message part 3 (message/rfc822, inline)]
From: Andy Wingo <wingo <at> pobox.com>
To: Mike Gran <spk121 <at> yahoo.com>
Cc: "25912 <at> debbugs.gnu.org" <25912-done <at> debbugs.gnu.org>
Subject: Re: bug#25912: 2.1.7 segfaults on cygwin
Date: Tue, 14 Mar 2017 12:35:34 +0100
On Fri 03 Mar 2017 15:32, Mike Gran <spk121 <at> yahoo.com> writes:

> I also can replicate the Cygwin problem as originally described.

I understand that with the fix in 2.1.8, that things are working
correctly now; closing the report.  Thanks for the sleuthing, szgyg and
Mike!

Andy


This bug report was last modified 8 years and 69 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.