[Bug 272670] lang/ecl: ECL crashes instead of signaling condition on stack overflow

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 23 Jul 2023 03:58:43 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272670

            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=243557&action=edit
Minimal reproduction

ECL has a stack overflow detection mechanism that is supposed to signal a stack
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 latest
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 packages,
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) = 34455793664
(0x805b9b000)
mmap(0x805bab000,65536,PROT_READ|PROT_WRITE,MAP_PRIVATE,3,0x0) = 34455859200
(0x805bab000)
SIGNAL 11 (SIGSEGV) code=SEGV_ACCERR trapno=12 addr=0x7fffdfffe668
pid 23984 comm ecl has trashed its stack, killing
_umtx_op(0x80023c080,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x0,0x0) ERR#4 'Interrupted
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

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