Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2023 03:58:43 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 272670] lang/ecl: ECL crashes instead of signaling condition on stack overflow
Message-ID:  <bug-272670-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D272670

            Bug ID: 272670
           Summary: lang/ecl: ECL crashes instead of signaling condition
                    on stack overflow
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: olgeni@FreeBSD.org
          Reporter: kevinz5000@gmail.com
             Flags: maintainer-feedback?(olgeni@FreeBSD.org)
          Assignee: olgeni@FreeBSD.org
 Attachment #243557 text/plain
         mime type:

Created attachment 243557
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D243557&action=
=3Dedit
Minimal reproduction

ECL has a stack overflow detection mechanism that is supposed to signal a s=
tack
overflow condition to allow graceful recovery on stack overflow. This does =
not
appear to be working on the system I tested this on, using the ECL from lat=
est
packages.

Steps to reproduce:

1. Get stack-overflow.lisp (attached)

2. ecl --load stack-overflow.lisp

pid 23924 comm ecl has trashed its stack, killing
terminated by signal SIGILL (Illegal instruction)

I can't tell if this is the compiler stack canary, or the stack guard packa=
ges,
that is killing this process.

Re-running through truss seems to suggest that it's the OS killing it:

mmap(0x805b9b000,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE,3,0x0) =3D 34455793=
664
(0x805b9b000)
mmap(0x805bab000,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE,3,0x0) =3D 34455859=
200
(0x805bab000)
SIGNAL 11 (SIGSEGV) code=3DSEGV_ACCERR trapno=3D12 addr=3D0x7fffdfffe668
pid 23984 comm ecl has trashed its stack, killing
_umtx_op(0x80023c080,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x0,0x0) ERR#4 'Interrup=
ted
system call'

But I can't really tell and don't want to jump to conclusions.

> uname -a
FreeBSD foxtrot 13.1-RELEASE-p6 FreeBSD 13.1-RELEASE-p6 GENERIC amd64

> pkg info -f ecl
ecl-21.2.1_1
Name           : ecl
Version        : 21.2.1_1
Installed on   : Wed Mar 22 20:43:51 2023 PDT
Origin         : lang/ecl
Architecture   : FreeBSD:13:amd64
Prefix         : /usr/local
Categories     : lisp lang
Licenses       : LGPL20
Maintainer     : olgeni@FreeBSD.org
WWW            : https://common-lisp.net/project/ecl/main.html
Comment        : ANSI Common Lisp implementation
Options        :
        ASDF           : on
        DFFI           : on
        SAGE           : on
        SOCKETS        : on
        THREADS        : on
        X11            : off
Shared Libs required:
        libgmp.so.10
        libgc.so.1
        libgc-threaded.so.1
        libffi.so.8
        libatomic_ops.so.1
Shared Libs provided:
        libecl.so.21.2
Annotations    :
        FreeBSD_version: 1301000

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-272670-7788>