[GRASS-dev] [GRASS GIS] #3910: nviz: Switching to 3d view kills the wxGUI

GRASS GIS trac at osgeo.org
Sun Sep 22 11:10:19 PDT 2019


#3910: nviz: Switching to 3d view kills the wxGUI
---------------------------+---------------------------------
 Reporter:  neteler        |      Owner:  grass-dev@…
     Type:  defect         |     Status:  new
 Priority:  normal         |  Milestone:  7.8.1
Component:  wxGUI          |    Version:  git-releasebranch78
 Keywords:  nviz, python3  |        CPU:  Unspecified
 Platform:  Linux          |
---------------------------+---------------------------------
 (reported via a user)

 Switching to 3d view kills the GUI. When it goes to set up GLX, the X11
 Display object has random pointers instead of locking functions, so it
 segfaults. The dpy->lock pointer is invalid:

 {{{
 Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
 0x00007f1c1901d03d in XQueryExtension (dpy=dpy at entry=0x55feadc10810,
 name=name at entry=0x7f1c14aaf006 "GLX", major_opcode=major_opcode at entry=0
 x55feaf092f94, first_event=first_event at entry=0x7fffbb41b3d4,
     first_error=first_error at entry=0x55feaf092f98) at QuExt.c:43
 43          LockDisplay(dpy);
 (gdb) where
 #0  0x00007f1c1901d03d in XQueryExtension
     (dpy=dpy at entry=0x55feadc10810, name=name at entry=0x7f1c14aaf006
 "GLX", major_opcode=major_opcode at entry=0x55feaf092f94,
 first_event=first_event at entry=0x7fffbb41b3d4,
 first_error=first_error at entry=0x55feaf092f98) at QuExt.c:43
 #1  0x00007f1c14aaae8d in InitDisplayInfoEntry (dpy=0x55feadc10810) at
 libglxmapping.c:645
 #2  0x00007f1c14aaae8d in __glXLookupDisplay (dpy=<optimized out>,
 dpy at entry=0x55feadc10810) at libglxmapping.c:737
 #3  0x00007f1c14aa6e09 in glXQueryVersion (dpy=0x55feadc10810,
 major=0x7fffbb41b480, minor=0x7fffbb41b484) at libglx.c:1170
 #4  0x00007f1c14b798c5 in wxGLCanvasX11::GetGLXVersion() () at
 ../include/wx/utils.h:780
 #5  0x00007f1c14b79c95 in wxGLContext::wxGLContext(wxGLCanvas*,
 wxGLContext const*) (this=0x55feae041760, gc=0x55feaf0b8550, other=0x0)
 at ../src/unix/glx11.cpp:155
 #6  0x00007f1c14bead8d in sipwxGLContext::sipwxGLContext(wxGLCanvas*,
 wxGLContext const*) () at /usr/lib64/python3.7/site-
 packages/wx/_glcanvas.cpython-37m-x86_64-linux-gnu.so
 #7  0x00007f1c14beae9c in init_type_wxGLContext () at
 /usr/lib64/python3.7/site-packages/wx/_glcanvas.cpython-37m-x86_64-
 linux-gnu.so
 #8  0x00007f1c1a85f918 in sipSimpleWrapper_init () at
 /usr/lib64/python3.7/site-packages/wx/siplib.so
 #9  0x00007f1c228ee1c7 in type_call
     (kwds=<optimized out>,
 args=(<GLWindow(parent=<MapFrame(parent=<LayerTree(displayIndex=0,
 lmgr=<GMFrame(parent=None, baseTitle='GRASS GIS 7.8.0 Layer Manager',
 iconsize=(16, 16), displayIndex=1, currentPage=<Panel(maptree=<...>) at
 remote 0x7f1c05729550>, currentPageNum=0, workspaceFile=None,
 workspaceChanged=False, loadingWorkspace=False, cwdPath=None,
 _giface=<LayerManagerGrassInterface(lmgr=<...>,
 mapCreated=<Signal(_name='LayerManagerGrassInterface.mapCreated') at
 remote 0x7f1bc0bf4ed0>,
 updateMap=<Signal(_name='LayerManagerGrassInterface.updateMap') at
 remote 0x7f1bc0bf4fd0>) at remote 0x7f1bc0bf4e50>,
 _menuTreeBuilder=<LayerManagerMenuData(menustyle=1,
 model=<TreeModel(_root=<ModuleNode(label='root', data={},
 _children=[<ModuleNode(label='&File', data={},
 _children=[<ModuleNode(label='Workspace', data={},
 _children=[<ModuleNode(label='New', data={'label': 'New',
 'description': 'Create new workspace', 'handler': 'OnWorkspaceNew',
 'command': '', 'keywords': '', 'shortcut': 'Ctrl+N', 'wxId':
 <StandardID() at remote 0x7f1c180e2460>, '...(truncated),
 type=<optimized out>) at /usr/src/debug/python3-3.7.4-
 1.fc30.x86_64/Objects/typeobject.c:933
 #10 0x00007f1c228ee1c7 in _PyObject_FastCallKeywords
 (callable=<sip.wrappertype at remote 0x55feae190390>, stack=<optimized
 out>, nargs=<optimized out>, kwnames=<optimized out>)
     at /usr/src/debug/python3-3.7.4-1.fc30.x86_64/Objects/call.c:199
 #11 0x00007f1c228ef829 in call_function (pp_stack=0x7fffbb41b840,
 oparg=<optimized out>, kwnames=0x0) at /usr/src/debug/python3-3.7.4-
 1.fc30.x86_64/Python/ceval.c:4619
 #12 0x00007f1c2292ba02 in _PyEval_EvalFrameDefault (f=<optimized out>,
 throwflag=<optimized out>) at /usr/src/debug/python3-3.7.4-
 1.fc30.x86_64/Python/ceval.c:3093
 #13 0x00007f1c228dd080 in _PyEval_EvalCodeWithName
     (_co=<optimized out>, globals=<optimized out>, locals=<optimized
 out>, args=<optimized out>, argcount=<optimized out>,
 kwnames=0x7f1c0586a068, kwargs=0x7f1c0586a070, kwcount=<optimized out>,
 kwstep=2, defs=0x7f1bc18a6868, defcount=1, kwdefs=0x0, closure=0x0,
 name='__init__', qualname='GLWindow.__init__') at
 /usr/src/debug/python3-3.7.4-1.fc30.x86_64/Python/ceval.c:3930
 #14 0x00007f1c228de71e in _PyFunction_FastCallDict (func=<optimized
 out>, args=0x7fffbb41ba90, nargs=<optimized out>, kwargs=<optimized
 out>) at /usr/src/debug/python3-3.7.4-1.fc30.x86_64/Objects/call.c:367
 #15 0x00007f1c228b29c6 in _PyObject_Call_Prepend
     (callable=<function at remote 0x7f1bc18a8440>, obj=<optimized out>,
 args=(<MapFrame(parent=<LayerTree(displayIndex=0,
 lmgr=<GMFrame(parent=None, baseTitle='GRASS GIS 7.8.0 Layer Manager',
 iconsize=(16, 16), displayIndex=1, currentPage=<Panel(maptree=<...>) at
 remote 0x7f1c05729550>, currentPageNum=0, workspaceFile=None,
 workspaceChanged=False, loadingWorkspace=False, cwdPath=None,
 _giface=<LayerManagerGrassInterface(lmgr=<...>,
 mapCreated=<Signal(_name='LayerManagerGrassInterface.mapCreated') at
 remote 0x7f1bc0bf4ed0>,
 updateMap=<Signal(_name='LayerManagerGrassInterface.updateMap') at
 remote 0x7f1bc0bf4fd0>) at remote 0x7f1bc0bf4e50>,
 _menuTreeBuilder=<LayerManagerMenuData(menustyle=1,
 model=<TreeModel(_root=<ModuleNode(label='root', data={},
 _children=[<ModuleNode(label='&File', data={},
 _children=[<ModuleNode(label='Workspace', data={},
 _children=[<ModuleNode(label='New', data={'label': 'New',
 'description': 'Create new workspace', 'handler': 'OnWorkspaceNew',
 'command': '', 'keywords': '', 'shortcut': 'Ctrl+N', 'wxId':
 <StandardID() at remote 0x7f1c180e2460>, 'icon': ''},
 _chil...(truncated), kwargs={'giface':
 <LayerManagerGrassInterfaceForMapDisplay(_giface=<LayerManagerGrassInte
 rface(lmgr=<GMFrame(parent=None, baseTitle='GRASS GIS 7.8.0 Layer
 Manager', iconsize=(16, 16), displayIndex=1,
 currentPage=<Panel(maptree=<LayerTree(displayIndex=0, lmgr=<...>,
 notebook=<FlatNotebook(_bForceSelection=False, _nPadding=6, _nFrom=0,
 _pages=<PageContainer(_ImageList=None, _iActivePage=0,
 _pDropTarget=<FNBDropTarget(_parent=<...>,
 _dataobject=<CustomDataObject at remote 0x7f1c058f5910>) at remote
 0x7f1c058f57d0>, _nLeftClickZone=0, _iPreviousActivePage=-1,
 _pRightClickMenu=<Menu at remote 0x7f1c058f5550>, _nXButtonStatus=0,
 _nArrowDownButtonStatus=0, _pParent=<...>, _nRightButtonStatus=0,
 _nLeftButtonStatus=0, _nTabXButtonStatus=0, _nHoveringOverTabIndex=-1,
 _nHoveringOverLastTabIndex=-1, _setCursor=False,
 _pagesInfoVec=[<PageInfo(_strCaption='Display 1', _TabAngle=0,
 _ImageIndex=-1, _bEnabled=True, _pos=<Point at remote 0x7f1c057507d0>,
 _size=<Size at remote 0x7f1c05750870>, _region=<Region at remote
 0x7f1c0575b050>...(truncated)) at /usr/src/debug/python3-3.7.4-
 1.fc30.x86_64/Objects/call.c:908
 #16 0x00007f1c228ed2e3 in slot_tp_init
 }}}

 * GRASS GIS 7.8.0
 * System: Fedora 30, 64bit

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/3910>
GRASS GIS <https://grass.osgeo.org>



More information about the grass-dev mailing list