Bug report #6501
Crash when joining a shape file to a csv file
Status: | Closed | ||
---|---|---|---|
Priority: | Severe/Regression | ||
Assignee: | - | ||
Category: | Vectors | ||
Affected QGIS version: | master | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | No | Resolution: | fixed |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 15721 |
Description
In QGIS 1.8 I can open a csv file and a shape file and use the "Joins" tab in the properties dialog of each layer to join the other layer to it.
In QGIS master I can join a csv file to a shape file, but if I try to join a shape file to a csv file it crashes.
I have only tested in Windows, with OSGeo4W builds.
History
#1 Updated by Marco Hugentobler about 12 years ago
Could you share sample data?
#2 Updated by Marco Hugentobler about 12 years ago
- Status changed from Open to Feedback
#3 Updated by Alister Hood about 12 years ago
- File Addresses.zip added
#4 Updated by Marco Hugentobler about 12 years ago
The join by attribute Address / Addresses works for me here without crash (kubuntu, developer version from yesterday). Didn't test on windows yet.
#5 Updated by Alister Hood about 12 years ago
I just built master on Arch, and it crashes there:
Debug: src/core/qgsvectorlayer.cpp: 796: (drawRendererV2) Total features processed 3 Debug: src/core/qgsmaprenderer.cpp: 513: (render) Layer rendered without issues Debug: src/core/qgsmaprenderer.cpp: 359: (render) Rendering at layer item owners20121014035344760 Debug: src/core/qgsmaprenderer.cpp: 367: (render) If there is a QPaintEngine error here, it is caused by an emit call Debug: src/core/qgsmaprenderer.cpp: 384: (render) layer owners: minscale:0 maxscale:1e+08 scaledepvis:0 extent:Empty Debug: src/core/qgscoordinatetransform.cpp: 450: (transformBoundingBox) Entering transformBoundingBox... Debug: src/core/qgscoordinatetransform.cpp: 498: (transformBoundingBox) Projected extent: 172.0680848364671363,-43.7086454622398648 : 172.1567415246000223,-43.6415194306657028 Debug: src/core/qgsmaprenderer.cpp: 403: (render) extent 1: 172.0680848364671363,-43.7086454622398648 : 172.1567415246000223,-43.6415194306657028 Debug: src/core/qgsmaprenderer.cpp: 404: (render) extent 2: Empty Debug: src/core/qgsmaprenderer.cpp: 513: (render) Layer rendered without issues Debug: src/core/qgsmaprenderer.cpp: 553: (render) Done rendering map layers Debug: src/core/qgsvectorlayer.cpp: 327: (drawLabels) Starting draw of labels: Addresses20121014035340652 Debug: src/core/qgscoordinatetransform.cpp: 450: (transformBoundingBox) Entering transformBoundingBox... Debug: src/core/qgscoordinatetransform.cpp: 498: (transformBoundingBox) Projected extent: 172.0680848364671363,-43.7086454622398648 : 172.1567415246000223,-43.6415194306657028 Debug: src/core/qgspallabeling.cpp: 1367: (drawLabeling) LABELING work: 0 ms ... labels# 0 Debug: src/core/qgspallabeling.cpp: 1520: (drawLabeling) LABELING draw: 0 ms Debug: src/core/qgsmaprenderer.cpp: 631: (render) Rendering completed in (seconds): 0.019 Debug: src/app/qgscustomization.cpp: 776: (customizeWidget) objectName = QgsVectorLayerPropertiesBase event type = 17 Debug: src/app/qgscustomization.cpp: 778: (customizeWidget) QgsVectorLayerProperties x QDialog Debug: src/app/qgscustomization.cpp: 776: (customizeWidget) objectName = QgsAddJoinDialogBase event type = 17 Debug: src/app/qgscustomization.cpp: 778: (customizeWidget) QgsAddJoinDialog x QDialog Debug: src/providers/ogr/qgsogrprovider.cpp: 782: (nextFeature) Feature is null Program received signal SIGSEGV, Segmentation fault. 0x0820d4ca in QgsLabelingGui::layerSettings() () (gdb) bt #0 0x0820d4ca in QgsLabelingGui::layerSettings() () #1 0x0820dfdb in QgsLabelingGui::apply() () #2 0x083db970 in ?? () #3 0xb49152a5 in QDialog::accepted() () from /usr/lib/libQtGui.so.4 #4 0xb4915388 in QDialog::done(int) () from /usr/lib/libQtGui.so.4 #5 0xb4913c2a in QDialog::accept() () from /usr/lib/libQtGui.so.4 #6 0xb49153ef in ?? () from /usr/lib/libQtGui.so.4 #7 0xb4efab76 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #8 0xb4826545 in QDialogButtonBox::accepted() () from /usr/lib/libQtGui.so.4 #9 0xb4826688 in ?? () from /usr/lib/libQtGui.so.4 #10 0xb4efab76 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #11 0xb4aed95d in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4 #12 0xb47f541d in ?? () from /usr/lib/libQtGui.so.4 #13 0xb47f5c6b in ?? () from /usr/lib/libQtGui.so.4 #14 0xb47f5f26 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #15 0xb44340cf in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #16 0xb47f52e2 in QAbstractButton::event(QEvent*) () from /usr/lib/libQtGui.so.4 #17 0xb4895fe8 in QPushButton::event(QEvent*) () from /usr/lib/libQtGui.so.4 #18 0xb43db02c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #19 0xb43e0512 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #20 0xb58d0ae1 in QgsApplication::notify(QObject*, QEvent*) () from /usr/lib/libqgis_core.so.1.9.0 #21 0xb4ee28fe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #22 0xb43dbe94 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4 #23 0xb4464395 in ?? () from /usr/lib/libQtGui.so.4 #24 0xb4463043 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #25 0xb448c664 in ?? () from /usr/lib/libQtGui.so.4 #26 0xb3a496e3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #27 0xb3a49a80 in g_main_context_iterate.isra.21 () from /usr/lib/libglib-2.0.so.0 #28 0xb3a49b61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #29 0xb4f1463f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #30 0xb448c24a in ?? () from /usr/lib/libQtGui.so.4 #31 0xb4ee13dc in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #32 0xb4ee16d1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #33 0xb4914b1d in QDialog::exec() () from /usr/lib/libQtGui.so.4 #34 0x0813d22e in QgisApp::showLayerProperties(QgsMapLayer*) () #35 0x0813d50c in QgisApp::layerProperties() () #36 0x083cdcef in QgisApp::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () #37 0xb4efab76 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #38 0xb43d400d in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4 #39 0xb43d42ac in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4 #40 0xb4880f85 in ?? () from /usr/lib/libQtGui.so.4 #41 0xb4888096 in ?? () from /usr/lib/libQtGui.so.4 #42 0xb4888fe5 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #43 0xb44340cf in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #44 0xb48894dc in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4 #45 0xb43db02c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #46 0xb43e0512 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #47 0xb58d0ae1 in QgsApplication::notify(QObject*, QEvent*) () from /usr/lib/libqgis_core.so.1.9.0 #48 0xb4ee28fe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #49 0xb43dbe94 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4 #50 0xb446423f in ?? () from /usr/lib/libQtGui.so.4 #51 0xb4463043 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #52 0xb448c664 in ?? () from /usr/lib/libQtGui.so.4 #53 0xb3a496e3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #54 0xb3a49a80 in g_main_context_iterate.isra.21 () from /usr/lib/libglib-2.0.so.0 #55 0xb3a49b61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #56 0xb4f14621 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #57 0xb448c24a in ?? () from /usr/lib/libQtGui.so.4 #58 0xb4ee13dc in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #59 0xb4ee16d1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #60 0xb4885887 in QMenu::exec(QPoint const&, QAction*) () from /usr/lib/libQtGui.so.4 #61 0x0837682f in QgsLegend::handleRightClickEvent(QTreeWidgetItem*, QPoint const&) () #62 0x083773a4 in QgsLegend::mousePressEvent(QMouseEvent*) () #63 0xb4434379 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #64 0xb483fc25 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4 #65 0xb48d0513 in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #66 0xb4970a7c in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #67 0xb49bb0f7 in QTreeView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #68 0xb48d2d06 in ?? () from /usr/lib/libQtGui.so.4 #69 0xb4ee2a6e in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #70 0xb43daffd in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #71 0xb43e0512 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #72 0xb58d0ae1 in QgsApplication::notify(QObject*, QEvent*) () from /usr/lib/libqgis_core.so.1.9.0 ---Type <return> to continue, or q <return> to quit--- #73 0xb4ee28fe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #74 0xb43dbe94 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4 #75 0xb4464395 in ?? () from /usr/lib/libQtGui.so.4 #76 0xb4463043 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #77 0xb448c664 in ?? () from /usr/lib/libQtGui.so.4 #78 0xb3a496e3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #79 0xb3a49a80 in g_main_context_iterate.isra.21 () from /usr/lib/libglib-2.0.so.0 #80 0xb3a49b61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #81 0xb4f14621 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #82 0xb448c24a in ?? () from /usr/lib/libQtGui.so.4 #83 0xb4ee13dc in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #84 0xb4ee16d1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #85 0xb4ee696a in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #86 0xb43d8eb4 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #87 0x081048b6 in main ()
#6 Updated by Alister Hood about 12 years ago
Marco Hugentobler wrote:
The join by attribute Address / Addresses works for me here without crash (kubuntu, developer version from yesterday). Didn't test on windows yet.
I'm not sure you understand my description of the problem. I can join the csv (Address field) to the shp (Addresses field). But it crashes if I try to join the shp (Addresses field) to the csv (Address field).
#7 Updated by Marco Hugentobler about 12 years ago
- Status changed from Feedback to Resolved
Ok, I see.
This was fixed in the meantime (the bugfix for #6502 fixed also this one).
#8 Updated by Werner Macho almost 12 years ago
Tested with provided data in both join directions and it works
As this works for me I think we could close this (as it still shows up in the list of blockers - but as resolved)
or is it meant to show up?
#9 Updated by Giovanni Manghi almost 12 years ago
- Resolution set to fixed
- Status changed from Resolved to Closed