[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #40044] Octave is unresponsive after gnuplot c
From: |
John W. Eaton |
Subject: |
[Octave-bug-tracker] [bug #40044] Octave is unresponsive after gnuplot crashes with segfault |
Date: |
Thu, 8 Mar 2018 16:39:41 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 |
Update of bug #40044 (project octave):
Severity: 4 - Important => 3 - Normal
Summary: *** glibc detected *** gnuplot: double free or
corruption (fasttop): 0x08d72878 *** => Octave is unresponsive after gnuplot
crashes with segfault
_______________________________________________________
Follow-up Comment #6:
The test script causes gnuplot to crash. Octave doesn't know that's happened,
so it continues on. In __gnuplot_draw_axes__, there is a call to
gnuplot_term = __gnuplot_get_var__ (axis_obj.parent, "GPVAL_TERM");
In __gnuplot_get_var__, Octave creates a fifo file and sends a request to
gnuplot that is never answered.
I'm not sure how to detect this situation and work around it. The development
version of Octave is not responding to Ctrl-C in this case because it is stuck
in a system call:
#0 0x00007ffff47134bd in open64 () at ../sysdeps/unix/syscall-template.S:84
#1 0x00007ffff46ab293 in __GI__IO_file_open (address@hidden,
filename=<optimized out>, posix_mode=<optimized out>, address@hidden,
read_write=8, address@hidden)
at fileops.c:229
#2 0x00007ffff46ab433 in _IO_new_file_fopen (address@hidden,
address@hidden "/tmp/oct-YXP99N", mode=<optimized
out>, address@hidden "rb",
address@hidden) at fileops.c:336
#3 0x00007ffff469f5b4 in __fopen_internal (filename=0x7fffffff8480
"/tmp/oct-YXP99N", mode=0x7fffffff8460 "rb", is32=1) at iofopen.c:86
#4 0x00007ffff7558725 in do_stream_open (fid=<synthetic pointer>: <optimized
out>, arch="native", mode_arg="r", name="/tmp/oct-YXP99N") at
/home/jwe/src/octave/libinterp/corefcn/file-io.cc:450
#5 do_stream_open (fcn=0x7ffff7901fe7 "fopen", fid=<synthetic pointer>:
<optimized out>, tc_arch=..., tc_mode=..., tc_name=...) at
/home/jwe/src/octave/libinterp/corefcn/file-io.cc:476
and the interrupt signal just sets a flag that the interpreter checks. So we
don't break out of the system call.
This is happening here:
stopped in:
--> __gnuplot_get_var__ at line 76
[/home/jwe/src/octave/scripts/plot/util/private/__gnuplot_get_var__.m]
__gnuplot_draw_axes__ at line 38
[/home/jwe/src/octave/scripts/plot/util/private/__gnuplot_draw_axes__.m]
__gnuplot_draw_figure__ at line 164
[/home/jwe/src/octave/scripts/plot/util/private/__gnuplot_draw_figure__.m]
__gnuplot_drawnow__ at line 86
[/home/jwe/src/octave/scripts/plot/util/__gnuplot_drawnow__.m]
surfc at line 89
[/home/jwe/src/octave/scripts/plot/draw/surfc.m]
foo at line 19
[/net/buserror/scratch/jwe/build/octave/foo.m]
Since the test code would probably work if gnuplot didn't fail, and because
both the fltk and qt plotting widgets work with this code, I'm lowering the
priority to normal.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?40044>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Octave-bug-tracker] [bug #40044] Octave is unresponsive after gnuplot crashes with segfault,
John W. Eaton <=