Bug report #6501

Crash when joining a shape file to a csv file

Added by Alister Hood about 8 years ago. Updated almost 8 years ago.

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.

Addresses.zip (1.63 KB) Alister Hood, 2012-10-13 01:57 AM

History

#1 Updated by Marco Hugentobler about 8 years ago

Could you share sample data?

#2 Updated by Marco Hugentobler about 8 years ago

  • Status changed from Open to Feedback

#3 Updated by Alister Hood about 8 years ago

#4 Updated by Marco Hugentobler about 8 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 8 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 8 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 8 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 8 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 8 years ago

  • Resolution set to fixed
  • Status changed from Resolved to Closed

Also available in: Atom PDF