Opened 11 years ago

Closed 11 years ago

#1138 closed defect (fixed)

crash on upload

Reported by: Thomas Siegmund Owned by: Chris Browet
Priority: major Milestone:
Component: merkaartor Version:
Keywords: Cc:

Description

Hi,

current Merkaartor, built from svn on linux x86_64 (QT4.4.1) tends to crash at the end of uploads:

QObject: Do not delete object, 'TagView?', during its event handler! ./update_merkaartor: line 7: 4046 Speicherzugriffsfehler ./binaries/debug/bin/merkaartor

I have seen this now three times since yesterday evening. Uploaded data seems to be OK.

Regards

Thomas

Change History (12)

comment:1 Changed 11 years ago by Chris Browet

A backtrace would be useful, if you can get one.

What is "./update_merkaartor: line 7: 4046 Speicherzugriffsfehler"?

comment:2 Changed 11 years ago by richardbrinkman@…

It not only crashes on upload but also (many times) when deleting roads or undoing changes. I've compiled it with NODEBUG=0 so I cannot provide you with a detailed tracelog. The only (terminal) output is "Segmentation fault".

comment:3 Changed 11 years ago by Chris Browet

Please recompile without the NODEBUG option (although NODEBUG=0 would mean DEBUG, normally).

You'll understand I cannot do much with the information provided...

comment:4 in reply to:  3 Changed 11 years ago by richardbrinkman@…

Also with debugging on I don't get a detailed tracelog. I now only gets the following terminal output: QObject: Do not delete object, 'SelectionList?', during its event handler! Segmentation fault when I try to remove 2 of the 3 point that are layed out on top of each other. When I remove them one by one Merkaartor does not crash.

comment:5 Changed 11 years ago by dantje

This might belong here. I was trying to change an intersection to a roundabout. I added extra nodes on all four incoming roads close to the center. Then I split all four roads to be able to delete the four "inner" ways.

I created a roundabout and connected the loose roads again. Upload went fine for a while but then I got this the bt below. On the server this resulted in some double roads.

(gdb) bt
#0  0x0000000000a423d0 in ?? ()
#1  0x0000000000431bf7 in RoadAddTrackPointCommand::buildDirtyList (
    this=0x17344b0, theList=@0x7fff6b5445f0) at Command/RoadCommands.cpp:56
#2  0x000000000041f40f in CommandList::buildDirtyList (this=0x1723fc0, 
    theList=@0x7fff6b5445f0) at Command/Command.cpp:189
#3  0x0000000000423fb9 in RemoveFeatureCommand::buildDirtyList (
    this=0x16f8950, theList=@0x7fff6b5445f0)
    at Command/DocumentCommands.cpp:177
#4  0x000000000041f40f in CommandList::buildDirtyList (this=0x16f0400, 
    theList=@0x7fff6b5445f0) at Command/Command.cpp:189
#5  0x000000000041f31b in CommandHistory::buildDirtyList (this=0xc04320, 
    theList=@0x7fff6b5445f0) at Command/Command.cpp:389
#6  0x00000000004c8262 in DirtyListVisit::runVisit (this=0x7fff6b5445f0)
    at Sync/DirtyList.cpp:148
#7  0x00000000004c8350 in DirtyListExecutor::executeChanges (
    this=0x7fff6b5445e0, aParent=0x7fff6b546380) at Sync/DirtyList.cpp:403
#8  0x00000000004d276b in syncOSM (theMain=0x7fff6b546380, 
    aWeb=@0x7fff6b544940, aUser=@0x7fff6b544930, aPwd=@0x7fff6b544920, 
    UseProxy=false, ProxyHost=@0x7fff6b544910, ProxyPort=0)
    at Sync/SyncOSM.cpp:26
#9  0x00000000004db092 in MainWindow::on_fileUploadAction_triggered (
    this=0x7fff6b546380) at MainWindow.cpp:705
#10 0x0000000000577933 in MainWindow::qt_metacall (this=0x7fff6b546380, 
---Type <return> to continue, or q <return> to quit---
    _c=QMetaObject::InvokeMetaMethod, _id=22, _a=0x7fff6b544b90)
    at tmp/moc_MainWindow.cpp:274
#11 0x00007f2e60d278b6 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#12 0x00007f2e614d3527 in QAction::triggered () from /usr/lib/libQtGui.so.4
#13 0x00007f2e614d3d30 in QAction::activate () from /usr/lib/libQtGui.so.4
#14 0x00007f2e614d577e in QAction::event () from /usr/lib/libQtGui.so.4
#15 0x00007f2e614d9acf in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#16 0x00007f2e614dbc85 in QApplication::notify () from /usr/lib/libQtGui.so.4
#17 0x00007f2e60d136b9 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#18 0x00007f2e6150d6cc in ?? () from /usr/lib/libQtGui.so.4
#19 0x00007f2e6150e734 in ?? () from /usr/lib/libQtGui.so.4
#20 0x00007f2e614dcc16 in QApplication::notify () from /usr/lib/libQtGui.so.4
#21 0x00007f2e60d136b9 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#22 0x00007f2e6153067c in ?? () from /usr/lib/libQtGui.so.4
#23 0x00007f2e6155fdb4 in ?? () from /usr/lib/libQtGui.so.4
#24 0x00007f2e61561fa0 in ?? () from /usr/lib/libQtGui.so.4
#25 0x00007f2e6153cd08 in QApplication::x11ProcessEvent ()
   from /usr/lib/libQtGui.so.4
#26 0x00007f2e615633d3 in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007f2e5ed1d3d4 in g_main_context_dispatch ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libglib-2.0.so.0
#28 0x00007f2e5ed206e5 in ?? () from /usr/lib/libglib-2.0.so.0
#29 0x00007f2e5ed20bcb in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#30 0x00007f2e60d3c9df in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#31 0x00007f2e6156320f in ?? () from /usr/lib/libQtGui.so.4
#32 0x00007f2e60d12b35 in QEventLoop::processEvents ()
   from /usr/lib/libQtCore.so.4
#33 0x00007f2e60d12c8b in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#34 0x00007f2e60d14cd9 in QCoreApplication::exec ()
   from /usr/lib/libQtCore.so.4
#35 0x00000000004d3070 in main (argc=1, argv=0x7fff6b5469e8) at Main.cpp:55

comment:6 Changed 11 years ago by dantje

More debug output:

[..]
54	bool RoadAddTrackPointCommand::buildDirtyList(DirtyList& theList)
55	{
56		if (!theRoad->layer())
57			return theList.update(theRoad);
58		if (theRoad->layer()->isUploadable() && theTrackPoint->layer()->isUploadable())
59			return theList.update(theRoad);
60		else
(gdb) p theRoad
$4 = (class Road *) 0x15db350
(gdb) p theRoad->layer()

Program received signal SIGSEGV, Segmentation fault.
0x0000000000a423d0 in ?? ()
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on"
Evaluation of the expression containing the function (at 0xa423d0) will be abandoned.

x86_64 GNU/Linux, Qt version 4.4.1

comment:7 Changed 11 years ago by dantje

More crashing when trying to fix the results:

(gdb) bt
#0  0x00007f61499683f9 in QString::operator== () from /usr/lib/libQtCore.so.4
#1  0x0000000000422d4b in qStringComparisonHelper (s1=@0xe11960, s2=0x5825aa "") at /usr/include/qt4/QtCore/qstring.h:870
#2  0x0000000000422d79 in QString::operator== (this=0xe11960, s=0x5825aa "") at /usr/include/qt4/QtCore/qstring.h:873
#3  0x00000000004645e2 in MapFeature::id (this=0xfdd2f0) at Map/MapFeature.cpp:145
#4  0x0000000000420048 in Command::buildUndoList (this=0xc4a8d0, theListWidget=0xc30100) at Command/Command.cpp:63
#5  0x000000000041e692 in CommandHistory::buildUndoList (this=0xc04320, theList=0xc30100) at Command/Command.cpp:403
#6  0x000000000053a635 in DirtyDock::updateList (this=0xc27aa0) at DirtyDock.cpp:71
#7  0x00000000004db15f in MainWindow::on_fileUploadAction_triggered (this=0x7fff5423d080) at MainWindow.cpp:708
#8  0x0000000000577933 in MainWindow::qt_metacall (this=0x7fff5423d080, _c=QMetaObject::InvokeMetaMethod, _id=22, _a=0x7fff5423b890) at tmp/moc_MainWindow.cpp:274
#9  0x00007f6149a208b6 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#10 0x00007f614a1cc527 in QAction::triggered () from /usr/lib/libQtGui.so.4
#11 0x00007f614a1ccd30 in QAction::activate () from /usr/lib/libQtGui.so.4
#12 0x00007f614a1ce77e in QAction::event () from /usr/lib/libQtGui.so.4

comment:8 Changed 11 years ago by bernd@…

Another backtrace from a crash after upload. Build from r10486.

(gdb) where #0 0x0000000000000030 in ?? () #1 0x000000000041f6cd in CommandList::buildDirtyList (this=0x140b360, theList=@0x7fff82e0d160) at Command/Command?.cpp:189 #2 0x000000000041f5d9 in CommandHistory::buildDirtyList (this=0x9983c0, theList=@0x7fff82e0d160) at Command/Command?.cpp:389 #3 0x00000000004e437c in DirtyListVisit::runVisit (this=0x7fff82e0d160) at Sync/DirtyList?.cpp:148 #4 0x00000000004e4472 in DirtyListExecutor::executeChanges (this=0x7fff82e0d150, aParent=0x7fff82e0edd0) at Sync/DirtyList?.cpp:403 #5 0x00000000004f04d2 in syncOSM (theMain=0x7fff82e0edd0, aWeb=@0x7fff82e0d570, aUser=@0x7fff82e0d560, aPwd=@0x7fff82e0d550, UseProxy?=false, ProxyHost?=@0x7fff82e0d540, ProxyPort?=0)

at Sync/SyncOSM.cpp:26

#6 0x00000000004fadad in MainWindow::on_fileUploadAction_triggered (this=0x7fff82e0edd0) at MainWindow?.cpp:705 #7 0x00000000005ac7fb in MainWindow::qt_metacall (this=0x7fff82e0edd0, _c=QMetaObject::InvokeMetaMethod?, _id=22, _a=0x7fff82e0d710) at tmp/moc_MainWindow.cpp:274 #8 0x00007f477864b764 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #9 0x00007f4778de81c7 in QAction::triggered () from /usr/lib/libQtGui.so.4 #10 0x00007f4778de8990 in QAction::activate () from /usr/lib/libQtGui.so.4

comment:9 Changed 11 years ago by bernd@…

argh, I should remember that trac makes a mess out of that... Here's a better try:

(gdb) where
#0  0x0000000000000030 in ?? ()
#1  0x000000000041f6cd in CommandList::buildDirtyList (this=0x140b360, theList=@0x7fff82e0d160) at Command/Command.cpp:189
#2  0x000000000041f5d9 in CommandHistory::buildDirtyList (this=0x9983c0, theList=@0x7fff82e0d160) at Command/Command.cpp:389
#3  0x00000000004e437c in DirtyListVisit::runVisit (this=0x7fff82e0d160) at Sync/DirtyList.cpp:148
#4  0x00000000004e4472 in DirtyListExecutor::executeChanges (this=0x7fff82e0d150, aParent=0x7fff82e0edd0) at Sync/DirtyList.cpp:403
#5  0x00000000004f04d2 in syncOSM (theMain=0x7fff82e0edd0, aWeb=@0x7fff82e0d570, aUser=@0x7fff82e0d560, aPwd=@0x7fff82e0d550, UseProxy=false, ProxyHost=@0x7fff82e0d540, ProxyPort=0)
    at Sync/SyncOSM.cpp:26
#6  0x00000000004fadad in MainWindow::on_fileUploadAction_triggered (this=0x7fff82e0edd0) at MainWindow.cpp:705
#7  0x00000000005ac7fb in MainWindow::qt_metacall (this=0x7fff82e0edd0, _c=QMetaObject::InvokeMetaMethod, _id=22, _a=0x7fff82e0d710) at tmp/moc_MainWindow.cpp:274
#8  0x00007f477864b764 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#9  0x00007f4778de81c7 in QAction::triggered () from /usr/lib/libQtGui.so.4
#10 0x00007f4778de8990 in QAction::activate () from /usr/lib/libQtGui.so.4

comment:10 Changed 11 years ago by Chris Browet

Owner: changed from cbro@… to Chris Browet
Status: newassigned

comment:11 Changed 11 years ago by Chris Browet

(In [10516]) FIX : problems with deleted features in upload (refs #1138)

comment:12 Changed 11 years ago by Chris Browet

Resolution: fixed
Status: assignedclosed

It's hard to tell if the commit will solve all the problems here (as I'm not sure if there is one or more).

I will close this one for now, please reopen if you have other crashes on upload.

Note: See TracTickets for help on using tickets.