octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #54187] fail to close a busy figure and crash


From: anonymous
Subject: [Octave-bug-tracker] [bug #54187] fail to close a busy figure and crash octave
Date: Mon, 25 Jun 2018 23:19:45 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

URL:
  <http://savannah.gnu.org/bugs/?54187>

                 Summary: fail to close a busy figure and crash octave
                 Project: GNU Octave
            Submitted by: None
            Submitted on: Tue 26 Jun 2018 03:19:43 AM UTC
                Category: Plotting
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Segfault, Bus Error, etc.
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: address@hidden
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 4.4.0
        Operating System: GNU/Linux

    _______________________________________________________

Details:

When a figure is busy, closing it (e.g. click the "X" button, press Alt+F4, or
Ctrl+W, etc.) does not work.
What's more, in this case, if some code tries to close it, then octave would
crash with segfault.

This happens in octave 4.4.0; octave 4.2.x does not have this problem.  Is
this a regression ?

My environment is Debian GNU/Linux with LXDE desktop.

Here is an example how to reproduce this bug:
1) edit a function file tmp.m (see below);
2) start "octave" or "octave --gui";
3) run "tmp" at the octave prompt and we would see an image moving in a
figure;
4) NOW use mouse or shortcut key to close this figure (but this would FAIL);
5) THEN press Ctrl+C at the octave prompt to interrupt "tmp", this would run
the onCleanup code which tries to close the figure (but this would CRASH
octave with segfault)


address@hidden:~$  cat tmp.m 
function tmp
  a = imread('octave-sombrero.png');
  h = imshow(a);
  f = gcf();
  o = onCleanup(@() isfigure(f) && close(f));
  while (isfigure(f))
    a = shift(a,1);
    set(h,'cdata',a);
    drawnow;
    pause(0.01);
  end
end

address@hidden:~$  octave
GNU Octave, version 4.4.0
Copyright (C) 2018 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-pc-linux-gnu".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> tmp
^C
octave:1> fatal: caught signal Segmentation fault -- stopping myself...
Segmentation fault

address@hidden:~$  octave --gui
octave exited with signal 11

address@hidden:~$





    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?54187>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]