bugGNU Octave - Bugs: bug #46234, setting MarkerFaceColor causes...

 
 

bug #46234: setting MarkerFaceColor causes octave to crash

Submitter:  None
Submitted:  Sat 17 Oct 2015 07:16:47 AM UTC
   
 
Category:  Plotting Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Works For Me Assigned to:  None
Originator Name:  Ben Stanley Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 4.0.0
Operating System:  * GNU/Linux Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 22 Feb 2016 11:20:08 PM UTC, comment #11: 

I installed using the HWE updates using the instructions here:
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
Then I tested the Ubuntu packaged
octave-4.0.0-3ubuntu2~octave~trusty3

I ran the test case
plot([0 1],[0 1],'ko','MarkerFaceColor','y');

Result:
The plot is produced as expected, with no crash.

The HWE updates have fixed the problem.

Thanks for your help!

Anonymous
Mon 22 Feb 2016 12:10:41 AM UTC, comment #10: 

No response to request for followup details in a couple months, closing report.

Mike Miller <mtmiller>
Group Member
Mon 23 Nov 2015 06:59:26 PM UTC, comment #9: 

The referenced Ubuntu bug is likely a bug in the Mesa library and not in Octave. The stacktrace shows that the crash comes from an assertion failure in the Intel Mesa driver. Is the bug resolved when Mesa is updated to a newer version? Try updating to the HWE updates if you are using Ubuntu 14.04.

Mike Miller <mtmiller>
Group Member
Sat 21 Nov 2015 07:17:19 AM UTC, comment #8: 

It seems I'm late to the party. This bug is reported here:

https://bugs.launchpad.net/ubuntu/+source/octave/+bug/1313952

Anonymous
Sat 21 Nov 2015 03:24:54 AM UTC, comment #7: 

I must apologise for being too busy to test this until just now...

Here is the backtrace you requested:

>> [Thread 0x7fffd1df0700 (LWP 12677) exited]

plot([0 1],[0 1],'ko','MarkerFaceColor','y')   ;

>> -num: ../../../../../../../src/mesa/drivers/dri/i965/brw_eu_emit.c:267: validate_reg: Assertion `execsize >= width' failed.


Program received signal SIGABRT, Aborted.
0x00007ffff45afcc9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0  0x00007ffff45afcc9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff45b30d8 in __GI_abort () at abort.c:89
#2  0x00007ffff45a8b86 in __assert_fail_base (
    fmt=0x7ffff46f9830 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=assertion@entry=0x7fffb6528558 "execsize >= width",
    file=file@entry=0x7fffb6527c00 "../../../../../../../src/mesa/drivers/dri/i965/brw_eu_emit.c", line=line@entry=267,
    function=function@entry=0x7fffb6528a2f "validate_reg") at assert.c:92
#3  0x00007ffff45a8c32 in __GI___assert_fail (
    assertion=0x7fffb6528558 "execsize >= width",
    file=0x7fffb6527c00 "../../../../../../../src/mesa/drivers/dri/i965/brw_eu_emit.c", line=267, function=0x7fffb6528a2f "validate_reg") at assert.c:101
#4  0x00007fffb63b678c in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fffb63b6f4b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#6  0x00007fffb63b7df8 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#7  0x00007fffb63a9f75 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#8  0x00007fffb63a42e6 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#9  0x00007fffb640367a in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#10 0x00007fffb63b3597 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#11 0x00007fffb6229d0b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#12 0x00007fffb6140a42 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#13 0x00007fffb6150f72 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
---Type <return> to continue, or q <return> to quit---
#14 0x00007ffff6eeb78d in opengl_renderer::draw_marker (this=0x7fffffffb0a0,
    x=0, y=0, z=0, lc=..., fc=...) at corefcn/gl-render.cc:3058
#15 0x00007ffff6edff3e in opengl_renderer::draw_line (this=0x7fffffffb0a0,
    props=...) at corefcn/gl-render.cc:1609
#16 0x00007ffff6ed7b4c in opengl_renderer::draw (this=0x7fffffffb0a0, go=...,
    toplevel=true) at corefcn/gl-render.cc:579
#17 0x00007ffff6ede86d in opengl_renderer::draw_axes_children (
    this=0x7fffffffb0a0, props=...) at corefcn/gl-render.cc:1417
#18 0x00007ffff6edee74 in opengl_renderer::draw_axes (this=0x7fffffffb0a0,
    props=...) at corefcn/gl-render.cc:1491
#19 0x00007ffff6ed7aa4 in opengl_renderer::draw (this=0x7fffffffb0a0, go=...,
    toplevel=false) at corefcn/gl-render.cc:577
#20 0x00007ffff7ad1346 in opengl_renderer::draw (this=0x7fffffffb0a0,
    hlist=..., toplevel=false) at ../libinterp/corefcn/gl-render.h:81
#21 0x00007ffff6ed86b8 in opengl_renderer::draw_figure (this=0x7fffffffb0a0,
    props=...) at corefcn/gl-render.cc:615
#22 0x00007ffff6ed79fc in opengl_renderer::draw (this=0x7fffffffb0a0, go=...,
    toplevel=true) at corefcn/gl-render.cc:575
#23 0x00007ffff7ab7762 in QtHandles::GLCanvas::draw (this=0x9d44b0, gh=...)
    at graphics/GLCanvas.cc:66
#24 0x00007ffff7aa5af7 in QtHandles::Canvas::canvasPaintEvent (this=0x9d44d8)
    at graphics/Canvas.cc:319
#25 0x00007ffff7ab7b22 in QtHandles::GLCanvas::paintGL (this=0x9d44b0)
---Type <return> to continue, or q <return> to quit---
    at graphics/GLCanvas.cc:147
#26 0x00007ffff3f5f760 in QGLWidget::glDraw() ()
   from /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
#27 0x00007ffff3f5d8e9 in QGLWidget::paintEvent(QPaintEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
#28 0x00007ffff3499300 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#29 0x00007ffff3f686b1 in QGLWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
#30 0x00007ffff3449e2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007ffff34504a0 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#32 0x00007ffff2f184dd in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#33 0x00007ffff3493a21 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#34 0x00007ffff3654b9b in QWidgetPrivate::repaint_sys(QRegion const&) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#35 0x00007ffff3488e47 in QWidgetPrivate::syncBackingStore() ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#36 0x00007ffff3498e7a in QWidget::event(QEvent*) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#37 0x00007ffff3f686b1 in QGLWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
#38 0x00007ffff3449e2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#39 0x00007ffff34504a0 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#40 0x00007ffff2f184dd in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#41 0x00007ffff2f1bb3d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#42 0x00007ffff2f45f83 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#43 0x00007fffed8bbe04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007fffed8bc048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007fffed8bc0ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007ffff2f457a1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#47 0x00007ffff34ebbe6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#48 0x00007ffff2f170af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#49 0x00007ffff2f173a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>---Type <return> to continue, or q <return> to quit---
) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#50 0x00007ffff2f1cb79 in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#51 0x00007ffff7a3296f in octave_start_gui (argc=10, argv=0x7fffffffc3c8,
    start_gui=false) at src/octave-gui.cc:197
#52 0x0000000000402919 in main (argc=10, argv=0x7fffffffc3c8) at main-gui.cc:43
(gdb)

It looks very much like a video driver problem.

Do you have any suggestions about where I should report that, and how I can work around it in the meantime?

Thanks,
Ben Stanley.

Anonymous
Mon 26 Oct 2015 03:06:36 AM UTC, comment #6: 

Thanks for the testing.  So it is not the ppa build.  Since you were able to compile pretty easily I think the next step is to build a version of Octave with debugging symbols and then run it under gdb to get a backtrace.

Quick instructions:


cd octave_build_directory
make clean
setenv CFLAGS "-g -O0 -pipe"
setenv CXXFLAGS "${CFLAGS}"
./configure --Whatever_options_you_want
make
./run-octave -g -f --no-gui


The above assumes you are using csh or tcsh--modify the setenv calls if you are using bash.  The final run-octave will invoke gdb automatically.  From within gdb do


run


which will eventually get you to an Octave prompt.  From there, execute the problem code that causes a segfault.  When the program segfaults it will drop you back to a gdb prompt.  Type


bt


to get a backtrace and then copy and paste that into the bug report.

Rik <rik5>
Group administrator
Sat 24 Oct 2015 10:54:08 PM UTC, comment #5: 

After building octave-4.0.0 according to the instructions in comment #4, and run octave as
ben@agama:~/octave-debugging/octave-4.0.0$ ./run-octave -cli
GNU Octave, version 4.0.0
Copyright (C) 2015 John W. Eaton and others.
<SNIP>
octave:1> plot([0 1],[0 1],'ko','MarkerFaceColor','y')
-num: ../../../../../../../src/mesa/drivers/dri/i965/brw_eu_emit.c:267: validate_reg: Assertion `execsize >= width' failed.
panic: Aborted -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Aborted (core dumped)
ben@agama:~/octave-debugging/octave-4.0.0$

This is the same crash as documented in comment #3.

I then tried
ben@agama:~/octave-debugging/octave-4.0.0$ ./run-octave -cli --debug
but that spewed useless output, instead of giving me something sensible.

Anonymous
Sat 24 Oct 2015 07:04:02 PM UTC, comment #4: 

Maybe there is something wrong with the ppa binary build.  Could you try building from source directly?  It should be easy on an Ubuntu system (I'm running back on 12.04).

The sources are available at ftp://ftp.gnu.org/gnu/octave.

Then


sudo apt-get build-dep octave
tar xf octave-XXX.tar.gz
cd octave-XXX
./configure --Whatever_Options_You_Like
make
./run-octave
# Now try your test code


Rik <rik5>
Group administrator
Sat 24 Oct 2015 02:05:35 PM UTC, comment #3: 

With the ubuntu ppa on linux mint I get the same crash on
plot([0 1],[0 1],'ko','MarkerFaceColor','y');

octave-cli gives a bit more info:

octave:1> plot([0 1],[0 1],'ko','MarkerFaceColor','y');
octave-cli: ../../../../../../../src/mesa/drivers/dri/i965/brw_eu_emit.c:267: validate_reg: Assertion `execsize >= width' failed.
panic: Aborted -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete

Anonymous
Fri 23 Oct 2015 11:54:11 PM UTC, comment #2: 

Responding to your questions:
1) video card is intel:
lspci
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)

Please find /var/log/Xorg.0.log and output from glxinfo attached.

2) The octave command

>> plot([0 1],[0 1],'ko')

works fine.

3) Patches work fine.

>> demo patch

runs to completion, and appears to work sensibly.

(file #35272, file #35273)

Anonymous
Fri 23 Oct 2015 04:19:20 PM UTC, comment #1: 

This is probably something with the actual hardware of your system and the interaction with OpenGL.  First, do you have a special video card like Nvidia?  Second, does normal plotting alone work?  For example


plot([0 1],[0 1],'ko'


Third, do patches work?  Try


demo patch



Rik <rik5>
Group administrator
Sat 17 Oct 2015 07:16:47 AM UTC, original submission:  

The following line causes octave-4.0.0 to crash:

plot([0 1],[0 1],'ko','MarkerFaceColor','y');

I am running on Ubuntu-14.04 using octave from the Ubuntu PPA at
https://launchpad.net/~octave/+archive/ubuntu/stable
I am using package
octave-4.0.0-3ubuntu2~octave~trusty3

>> ver

----------------------------------------------------------------------
GNU Octave Version: 4.0.0
GNU Octave License: GNU General Public License
Operating System: Linux 3.13.0-65-generic #106-Ubuntu SMP Fri Oct 2 22:08:27 UTC 2015 x86_64
----------------------------------------------------------------------
no packages installed.

------------- Reproduction -------------------
ben@agama:~$ octave
# GUI STARTS

>> plot([0 1],[0 1],'ko','MarkerFaceColor','y');

# PLOT WINDOW APPEARS MOMENTARILY, AXES APPEAR
# GUI VANISHES
octave exited with signal 6
ben@agama:~$
----------------------------------------------


Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #35272:  glxinfo.txt added by None (10KiB - text/plain)
file #35273:  Xorg.0.log added by None (21KiB - text/x-log)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-02-22 mtmiller StatusNeed Info Works For Me
        Open/ClosedOpen Closed
    2015-10-23 None Attached File- Added glxinfo.txt, #35272
        Attached File- Added Xorg.0.log, #35273
    2015-10-23 rik5 StatusNone Need Info

    Back to the top

    Powered by Savane 3.13-caa5.
    Corresponding source code