Skip to content

Segfault for boolean evaluation of expression with assumptions #28538

Closed
@sagetrac-tmonteil

Description

@sagetrac-tmonteil

As reported on this ask question:

sage: x, y = var('x, y')
sage: assume(x>0)
sage: assume(y>0)
sage: bool(y*(x-y)==0)

leads to (on my computer 8.9.rc1) a sequence of:

;;;
;;; Detected access to protected memory, also kwown as 'bus or segmentation fault'.
;;; Jumping to the outermost toplevel prompt
;;;

followed by a Segmentation fault crash of Sage.

Or (as reported, on 8.8):

RuntimeError: ECL says: C-STACK overflow at size 1048576. Stack can probably be resized. Proceed with caution.

Exchanging x and y works correctly:

sage: x, y = var('x, y')
sage: assume(x>0)
sage: assume(y>0)
sage: bool(x*(y-x)==0)
False

Upstream ticket: https://sourceforge.net/p/maxima/bugs/3583/

Depends on #30063

Upstream: Fixed upstream, in a later stable release.

CC: @rwst @kcrisman

Component: symbolics

Author: Thierry Monteil

Branch/Commit: cb70171

Reviewer: Matthias Koeppe

Issue created by migration from https://trac.sagemath.org/ticket/28538

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions