#729392 segfault when reading an image

Package:
python-taurus
Source:
taurus
Submitter:
Picca Frédéric-Emmanuel
Date:
2013-11-13 19:36:04 UTC
Severity:
important
#729392#5
Date:
2013-11-12 15:45:44 UTC
From:
To:
When using taurus image, I get a segfault

picca@mordor:~$ taurusimage sys/tg_test/1/float_image
Erreur de segmentation

here the backtrace obtained with valgrind

==14170== Invalid read of size 4
==14170==    at 0x9CDB964: QMetaObject::indexOfSignal(char const*) const (in /usr/lib/i386-linux-gnu/libQtCore.so.4.8.6)
==14170==    by 0x9A71A5F: qpycore_qobject_emit(QObject*, char const*, _object*) (in /usr/lib/python2.7/dist-packages/PyQt4/QtCore.so)
==14170==    by 0x9A480A1: meth_QObject_emit (qobject.sip:569)
==14170==    by 0x8151710: PyEval_EvalFrameEx (ceval.c:4021)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==14170==
==14170==
==14170== Process terminating with default action of signal 11 (SIGSEGV)
==14170==  Access not within mapped region at address 0x0
==14170==    at 0x9CDB964: QMetaObject::indexOfSignal(char const*) const (in /usr/lib/i386-linux-gnu/libQtCore.so.4.8.6)
==14170==    by 0x9A71A5F: qpycore_qobject_emit(QObject*, char const*, _object*) (in /usr/lib/python2.7/dist-packages/PyQt4/QtCore.so)
==14170==    by 0x9A480A1: meth_QObject_emit (qobject.sip:569)
==14170==    by 0x8151710: PyEval_EvalFrameEx (ceval.c:4021)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==    by 0x8189971: PyEval_EvalCodeEx (ceval.c:3253)
==14170==    by 0x8151AC3: PyEval_EvalFrameEx (ceval.c:4117)
==14170==  If you believe this happened as a result of a stack
==14170==  overflow in your program's main thread (unlikely but
==14170==  possible), you can try to increase the size of the
==14170==  main thread stack using the --main-stacksize= flag.
==14170==  The main thread stack size used in this run was 8388608.

#729392#10
Date:
2013-11-12 17:58:03 UTC
From:
To:
here the traceback from gdb

Program received signal SIGSEGV, Segmentation fault.
0xb774a964 in QMetaObject::indexOfSignal(char const*) const () from /usr/lib/i386-linux-gnu/libQtCore.so.4
(gdb) bt
#0  0xb774a964 in QMetaObject::indexOfSignal(char const*) const () from /usr/lib/i386-linux-gnu/libQtCore.so.4
#1  0xb7a33a60 in qpycore_qobject_emit(QObject*, char const*, _object*) () from /usr/lib/python2.7/dist-packages/PyQt4/QtCore.so
#2  0xb7a0a0a2 in meth_QObject_emit (sipSelf=
    <LevelsHistogram(active_item=None, _active_xaxis=<Axis at remote 0x8bfa56c>, plot_id=None, items=[], filter=<StatefulEventFilter(plot=<...>, all_event_types=frozenset([]), states={0: {}}, state=0, max_state=0, cursors={}, events={}) at remote 0x8cb9bb4>, manager=None, axes_styles=[<AxeStyleParam(_ticks_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='FontParam', _size=7, _bold=False, _family=u'default', __choose=None) at remote 0x8d1e78c>, _DataSet__changed=False, _title_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='FontParam', _size=7, _bold=False, _family=u'default', __choose=None) at remote 0x8d1e7ec>, _DataSet__comment=None, _unit='', _DataSet__icon=u'', _color=u'black', _DataSet__title=u'Gauche', _title=u'') at remote 0x8d1e48c>, <AxeStyleParam(_ticks_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='F...(truncated),
    sipArgs=('2plot_labels_changed(PyQt_PyObject)', <LevelsHistogram(active_item=None, _active_xaxis=<Axis at remote 0x8bfa56c>, plot_id=None, items=[], filter=<StatefulEventFilter(plot=<...>, all_event_types=frozenset([]), states={0: {}}, state=0, max_state=0, cursors={}, events={}) at remote 0x8cb9bb4>, manager=None, axes_styles=[<AxeStyleParam(_ticks_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='FontParam', _size=7, _bold=False, _family=u'default', __choose=None) at remote 0x8d1e78c>, _DataSet__changed=False, _title_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='FontParam', _size=7, _bold=False, _family=u'default', __choose=None) at remote 0x8d1e7ec>, _DataSet__comment=None, _unit='', _DataSet__icon=u'', _color=u'black', _DataSet__title=u'Gauche', _title=u'') at remote 0x8d1e48c>, <AxeStyleParam(_ticks_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False...(truncated)) at /tmp/buildd/python-qt4-4.10.3/sip/QtCore/qobject.sip:569
#3  0x08151711 in call_function (oparg=<optimized out>, pp_stack=0xbfffdd6c) at ../Python/ceval.c:4021
#4  PyEval_EvalFrameEx (
    f=f@entry=Frame 0x8dee9bc, for file /usr/lib/python2.7/dist-packages/guiqwt/baseplot.py, line 279, in update_axis_style (self=<LevelsHistogram(active_item=None, _active_xaxis=<Axis at remote 0x8bfa56c>, plot_id=None, items=[], filter=<StatefulEventFilter(plot=<...>, all_event_types=frozenset([]), states={0: {}}, state=0, max_state=0, cursors={}, events={}) at remote 0x8cb9bb4>, manager=None, axes_styles=[<AxeStyleParam(_ticks_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='FontParam', _size=7, _bold=False, _family=u'default', __choose=None) at remote 0x8d1e78c>, _DataSet__changed=False, _title_font=<FontParam(_DataSet__changed=False, _DataSet__comment=None, _italic=False, _DataSet__icon=u'', _DataSet__title='FontParam', _size=7, _bold=False, _family=u'default', __choose=None) at remote 0x8d1e7ec>, _DataSet__comment=None, _unit='', _DataSet__icon=u'', _color=u'black', _DataSet__title=u'Gauche', _title=u'') at remote 0x8d1e48c>, <AxeStyleParam(_ticks_fo...(truncated), throwflag=throwflag@entry=0) at ../Python/ceval.c:2666
#5  0x08189972 in PyEval_EvalCodeEx (co=0x864da88,
    globals=globals@entry={'BasePlot': <PyQt4.QtCore.pyqtWrapperType at remote 0x8b9ba2c>, 'QSize': <PyQt4.QtCore.pyqtWrapperType at remote 0x8441744>, 'QwtLog10ScaleEngine': <PyQt4.QtCore.pyqtWrapperType at remote 0x8aab5b4>, 'CONF': <UserConfig(_optcre=<_sre.SRE_Pattern at remote 0x83aa1e0>, name='none', _defaults=<OrderedDict(_OrderedDict__root=[[...], [...], None], _OrderedDict__map={}) at remote 0xb5db5ecc>, raw=0, _dict=<type at remote 0x83a266c>, defaults={'plot': {'label/anchor': 'TL', 'shape/axes/border/sel_line/color': 'magenta', 'axis/title_font/bold': False, 'shape/imageborder/symbol/marker': 'NoSymbol', 'label/symbol/size': 0, 'marker/cursor/sel_line/width': <float at remote 0x837265c>, 'shape/axes/xarrow_brush/color': 'red', 'shape/average_cross_section/sel_symbol/facecolor': '#ff0000', 'shape/image_stats/sel_line/color': '#ff00dc', 'marker/selectpoint/sel_symbol/alpha': <float at remote 0x837267c>, 'shape/drag/sel_symbol/edgecolor': '#00aa00', 'legend/font/bold': False, 'label/font/italic': False, 'label/yg': <float at ...(truncated), locals=locals@entry=0x0, args=args@entry=0x8dea528, argcount=2, kws=0x8dea530, kwcount=0, defs=0x0, defcount=0,
    closure=0x0) at ../Python/ceval.c:3253
#6  0x08151ac4 in fast_function (nk=<optimized out>, na=<optimized out>, n=<optimized out>, pp_stack=0xbfffde9c, func=<function at remote 0x8c12a74>)
    at ../Python/ceval.c:4117

#729392#15
Date:
2013-11-12 17:45:51 UTC
From:
To:
I can trigger this bug with guiqwt

I attached a script which segfault.

#729392#20
Date:
2013-11-12 17:50:33 UTC
From:
To:
if I recompile python-qwt5-qt4 it works but I have this problem when installing
the rebuilt package

root@mordor:/var/cache/pbuilder/result# dpkg -i python-qwt5-qt4_5.2.1~cvs20091107+dfsg-6_i386.deb
dpkg : avertissement : dégradation (« downgrade ») de python-qwt5-qt4 depuis 5.2.1~cvs20091107+dfsg-6+b4 vers 5.2.1~cvs20091107+dfsg-6
(Lecture de la base de données... 289099 fichiers et répertoires déjà installés.)
Préparation du remplacement de python-qwt5-qt4 5.2.1~cvs20091107+dfsg-6+b4 (en utilisant python-qwt5-qt4_5.2.1~cvs20091107+dfsg-6_i386.deb) ...
Dépaquetage de la mise à jour de python-qwt5-qt4 ...
dpkg: des problèmes de dépendances empêchent la configuration de python-qwt5-qt4 :
 python-qt4 (4.10.3-2) casse python-qwt5-qt4 (<= 5.2.1~cvs20091107+dfsg-6) et est installé.
  La version de python-qwt5-qt4 à configurer est 5.2.1~cvs20091107+dfsg-6.
 python-sip (4.15.3-1) casse python-qwt5-qt4 (<< 5.2.1~cvs20091107+dfsg-6+b4) et est installé.
  La version de python-qwt5-qt4 à configurer est 5.2.1~cvs20091107+dfsg-6.

maybe only a new upload of python-qwt5-qt4 can fix this issue ?

#729392#25
Date:
2013-11-13 19:31:55 UTC
From:
To:
Hi,

I have obtained a better stacktrace and sent it to upstream (pyqt)
mailing list (as well as some debugging info), as it looks like a
pyqt/sip problem to me.

The breaks are correct, you need to keep the binNMU version suffix
when rebuilding.