Closed Krakonos closed 9 years ago
Status changed from New to FeedbackSorry, I'm a bit behind on bugs.
Does this crash only happen in the situation you describe? It seem to happen very low in Qt's workflow to launch an http request (the "close changeset" one).
Or maybe is it after a failed upload in general?
Look suspiciously alike to #3060... and, AFAIK, you seem to be the only one to experience this...
The stack trace does look very similar - I'll see if I can confirm when I have a suitable edit with not too much work to lose!
My second paragraph still stands:
Now download the area containing the offending node (and way). You can't select the node (I'd love to be able to re-instate it, or better, have Merkaartor do that automatically), but you can delete the problematic way (or split it nearby and delete the section containing the node).
That workaround isn't exactly great, you'll agree.
Toby Speight wrote:
The stack trace does look very similar - I'll see if I can confirm when I have a suitable edit with not too much work to lose!
My second paragraph still stands:
Now download the area containing the offending node (and way). You can't select the node (I'd love to be able to re-instate it, or better, have Merkaartor do that automatically), but you can delete the problematic way (or split it nearby and delete the section containing the node).
That workaround isn't exactly great, you'll agree.
Definitely not, but the solution is not obvious, either. Would you be so kind as to open a separate ticket for this issue, please.
Chris Browet wrote:
Toby Speight wrote:
The stack trace does look very similar - I'll see if I can confirm when I have a suitable edit with not too much work to lose!
My second paragraph still stands:
Now download the area containing the offending node (and way). You can't select the node (I'd love to be able to re-instate it, or better, have Merkaartor do that automatically), but you can delete the problematic way (or split it nearby and delete the section containing the node).
That workaround isn't exactly great, you'll agree.
Definitely not, but the solution is not obvious, either.
OTOH... Am I right assuming that, in order to reproduce the bug, you have to delete a node outside of the "downloaded area" (i.e. the "red dot" zone)?If so, I could just forbid edition in this "unsafe" zone (as was requested a while back by someone). Or at least display a warning disclaiming Merkaartor's responsability in case of unsafe edition ;-)
The problems is that this node deletion could be buried under a number of subsequent edits, potentially dependdent on this one. So I cannot just make the node "reappear" in case of a deletion error.
OTOH... Am I right assuming that, in order to reproduce the bug, you have to delete a node outside of the "downloaded area" (i.e. the "red dot" zone)?
Yes, exactly - sorry if I wasn't clear enough to begin with.
If so, I could just forbid edition in this "unsafe" zone (as was requested a while back by someone). Or at least display a warning disclaiming Merkaartor's responsibility in case of unsafe edition ;-)
Yes, that would be very helpful. :-)
The problems is that this node deletion could be buried under a number of subsequent edits, potentially dependdent on this one. So I cannot just make the node "reappear" in case of a deletion error.
Agreed - and for the same reason, using Undo is often impractical, because of the amount of work that may need to be redone. OTOH, it's a lesson in "save often"...
Would you be so kind as to open a separate ticket for this issue, please.
For the crash? I've just attempted to repro that, and it didn't occur in my (single) test. So there's probably no need, and this ticket (on deleting out-of-area nodes) is the only one we need. :-) Perhaps it needs re-titling? I'm not sure I can do that - does it need an admin?
Subject changed from Crash after upload following off-area delete to Prevent or warns about editions out of the downloaded areaToby Speight wrote:
Would you be so kind as to open a separate ticket for this issue, please.
For the crash? I've just attempted to repro that, and it didn't occur in my (single) test. So there's probably no need, and this ticket (on deleting out-of-area nodes) is the only one we need. :-) Perhaps it needs re-titling? I'm not sure I can do that - does it need an admin?
Actually, I meant for the deletion. I'll change the title of this one.I'm not sure if you can re-title... There is a "Plus" besides "Change properties". There I can change the title and the initial report.As the owner of the ticket, I assume you can do it, too. Otherwise, please tell me...
Seems to be implemented in the current master.
I've found this to be very reproducible.
Select a way that's partly in the downloaded area, and has nodes in common with other ways that are not downloaded, and delete it. You can attempt to upload at this point, but the server will reject it, due to the attempt to remove nodes that are in use.
Now download the area containing the offending node (and way). You can't select the node (I'd love to be able to re-instate it, or better, have Merkaartor do that automatically), but you can delete the problematic way (or split it nearby and delete the section containing the node).
When you now upload (regardless of whether or not you attempted earlier), the upload succeeds, but then Merkaartor crashes thus (I've sanitised the auth string!):
0 malloc_consolidate (av=0x7ffff3969e40) at malloc.c:5145
1 0x00007ffff3681294 in _int_malloc (av=0x7ffff3969e40, bytes=65536) at malloc.c:4373
2 0x00007ffff3683970 in *__GI___libc_malloc (bytes=65536) at malloc.c:3661
3 0x00007ffff43c2c48 in QByteArray::realloc (this=0x37f1b78, alloc=) at tools/qbytearray.cpp:1412
4 0x00007ffff43c30b9 in QByteArray::resize (this=0x37f1b78, size=32768) at tools/qbytearray.cpp:1380
5 0x00007ffff487c517 in QRingBuffer::reserve (this=0x1d872ae0, bytes=144) at ../../include/QtCore/private/../../../src/corelib/tools/qringbuffer_p.h:158
6 0x00007ffff48780ee in QAbstractSocket::writeData (this=0x1987cbb0, data=0x1c53e738 "PUT /api/0.6/changeset/5375708/close HTTP/1.1\r\nHost: www.openstreetmap.org\r\nAuthorization: Basic xxxxxxxxxxxxxxxxxxxxxx\r\ncontent-length: 0\r\n\r\n", size=144) at socket/qabstractsocket.cpp:2184
7 0x00007ffff4446037 in QIODevice::write (this=0x1987cbb0, data=0x1c53e738 "PUT /api/0.6/changeset/5375708/close HTTP/1.1\r\nHost: www.openstreetmap.org\r\nAuthorization: Basic xxxxxxxxxxxxxxxxxxxxxx\r\ncontent-length: 0\r\n\r\n", maxSize=36028743711365120) at io/qiodevice.cpp:1359
8 0x00007ffff489491c in QSslSocket::writeData (this=0x193f29a0, data=0x1c53e738 "PUT /api/0.6/changeset/5375708/close HTTP/1.1\r\nHost: www.openstreetmap.org\r\nAuthorization: Basic xxxxxxxxxxxxxxxxxxxxxx\r\ncontent-length: 0\r\n\r\n", len=144) at ssl/qsslsocket.cpp:1785
9 0x00007ffff4446037 in QIODevice::write (this=0x193f29a0, data=0x1c53e738 "PUT /api/0.6/changeset/5375708/close HTTP/1.1\r\nHost: www.openstreetmap.org\r\nAuthorization: Basic xxxxxxxxxxxxxxxxxxxxxx\r\ncontent-length: 0\r\n\r\n", maxSize=36028743711365120) at io/qiodevice.cpp:1359
10 0x00007ffff4806a55 in QHttpPrivate::_q_slotConnected (this=0x1c520720) at access/qhttp.cpp:2608
11 0x00007ffff4809968 in QHttpPrivate::_q_slotSendRequest (this=0x1c520720) at access/qhttp.cpp:2512
12 0x00007ffff480c758 in QHttpNormalRequest::start (this=0x1b703560, http=0x1d5a6a68) at access/qhttp.cpp:274
13 0x00007ffff480eed3 in QHttpPrivate::_q_startNextRequest (this=0x1c520720) at access/qhttp.cpp:2407
14 0x00007ffff48115c5 in QHttpSetProxyRequest::start (this=, http=0x1d5a6a68) at access/qhttp.cpp:436
15 0x00007ffff480eed3 in QHttpPrivate::_q_startNextRequest (this=0x1c520720) at access/qhttp.cpp:2407
16 0x00007ffff480f4d1 in QHttp::qt_metacall (this=0x1d5a6a68, _c=QMetaObject::InvokeMetaMethod, _id=, _a=0x1cf719c0) at .moc/release-shared/moc_qhttp.cpp:128
17 0x00007ffff44bee89 in QObject::event (this=0x1d5a6a68, e=0x162fc600) at kernel/qobject.cpp:1248
18 0x00007ffff4cf432c in QApplicationPrivate::notify_helper (this=0xb4e420, receiver=0x1d5a6a68, e=0x162fc600) at kernel/qapplication.cpp:4302
19 0x00007ffff4cfa80b in QApplication::notify (this=0x7fffffffdd20, receiver=0x1d5a6a68, e=0x162fc600) at kernel/qapplication.cpp:4185
20 0x00007ffff44af15c in QCoreApplication::notifyInternal (this=0x7fffffffdd20, receiver=0x1d5a6a68, event=0x162fc600) at kernel/qcoreapplication.cpp:726
21 0x00007ffff44b2804 in QCoreApplication::sendEvent (receiver=0x0, event_type=, data=0xb4e5a0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=, data=0xb4e5a0) at kernel/qcoreapplication.cpp:1367
23 0x00007ffff44d8bd3 in QCoreApplication::sendPostedEvents (s=) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
24 postEventSourceDispatch (s=) at kernel/qeventdispatcher_glib.cpp:276
25 0x00007fffee84b6c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
26 0x00007fffee84f538 in ?? () from /lib/libglib-2.0.so.0
27 0x00007fffee84f6ec in g_main_context_iteration () from /lib/libglib-2.0.so.0
28 0x00007ffff44d8713 in QEventDispatcherGlib::processEvents (this=0xb4f960, flags=) at kernel/qeventdispatcher_glib.cpp:412
29 0x00007ffff4da414e in QGuiEventDispatcherGlib::processEvents (this=0x7ffff3969e40, flags=) at kernel/qguieventdispatcher_glib.cpp:204
30 0x00007ffff44ada82 in QEventLoop::processEvents (this=, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:149
31 0x00007ffff44ade5c in QEventLoop::exec (this=0x1d5a6ac8, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:201
32 0x0000000000663895 in Downloader::request (this=0x1d5a6a50, Method=..., URL=..., Data=...) at Sync/DownloadOSM.cpp:258
33 0x0000000000679a83 in DirtyListExecutorOSC::sendRequest (this=0x7fffffffbbb0, Method=..., URL=..., Data=..., Rcv=...) at Sync/DirtyListExecutorOSC.cpp:57
34 0x000000000067c626 in DirtyListExecutorOSC::stop (this=0x7fffffffbbb0) at Sync/DirtyListExecutorOSC.cpp:292
35 0x000000000067b2fe in DirtyListExecutorOSC::executeChanges (this=0x7fffffffbbb0, aParent=0x7fffffffdbc0) at Sync/DirtyListExecutorOSC.cpp:156
36 0x0000000000660346 in syncOSM (theMain=0x7fffffffdbc0, aWeb=..., aUser=..., aPwd=...) at Sync/SyncOSM.cpp:30
37 0x000000000053cdd0 in MainWindow::on_fileUploadAction_triggered (this=0x7fffffffdbc0) at MainWindow.cpp:1343
38 0x00000000007545f6 in MainWindow::qt_metacall (this=0x7fffffffdbc0, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0x7fffffffc180) at moc_MainWindow.cpp:382
39 0x00007ffff44c2346 in QMetaObject::activate (sender=0xc03750, m=, local_signal_index=, argv=0x31) at kernel/qobject.cpp:3295
40 0x00007ffff4cee132 in QAction::triggered (this=0x7ffff3969e40, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
41 0x00007ffff4cf01ab in QAction::activate (this=0xc03750, event=) at kernel/qaction.cpp:1255
42 0x00007ffff4cf1ab7 in QAction::event (this=0x7ffff3969e40, e=) at kernel/qaction.cpp:1181
43 0x00007ffff4cf432c in QApplicationPrivate::notify_helper (this=0xb4e420, receiver=0xc03750, e=0x7fffffffc6e0) at kernel/qapplication.cpp:4302
44 0x00007ffff4cfa80b in QApplication::notify (this=0x7fffffffdd20, receiver=0xc03750, e=0x7fffffffc6e0) at kernel/qapplication.cpp:4185
45 0x00007ffff44af15c in QCoreApplication::notifyInternal (this=0x7fffffffdd20, receiver=0xc03750, event=0x7fffffffc6e0) at kernel/qcoreapplication.cpp:726
46 0x00007ffff4d2ff26 in QCoreApplication::sendEvent (this=, e=0x7fffffffcc90) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
47 QShortcutMap::dispatchEvent (this=, e=0x7fffffffcc90) at kernel/qshortcutmap.cpp:879
48 0x00007ffff4d31d17 in QShortcutMap::tryShortcutEvent (this=0xb4e548, o=, e=0x7fffffffcc90) at kernel/qshortcutmap.cpp:364
49 0x00007ffff4cfc368 in QApplication::notify (this=0x7fffffffdd20, receiver=0xc4d190, e=0x7fffffffcc90) at kernel/qapplication.cpp:3748
50 0x00007ffff44af15c in QCoreApplication::notifyInternal (this=0x7fffffffdd20, receiver=0xc4d190, event=0x7fffffffcc90) at kernel/qcoreapplication.cpp:726
51 0x00007ffff4d9ed1a in QKeyMapper::sendKeyEvent (keyWidget=0xc4d190, grab=, type=QEvent::KeyPress, code=85, modifiers=, text=..., autorepeat=false, count=1, nativeScanCode=41, nativeVirtualKey=117, nativeModifiers=20) at kernel/qkeymapper_x11.cpp:1875
52 0x00007ffff4da1291 in QKeyMapperPrivate::translateKeyEvent (this=0x7fffffffd170, keyWidget=0xc4d190, event=, grab=false) at kernel/qkeymapper_x11.cpp:1845
53 0x00007ffff4d78a04 in QApplication::x11ProcessEvent (this=, event=0x7fffffffd840) at kernel/qapplication_x11.cpp:3406
54 0x00007ffff4da4552 in x11EventSourceDispatch (s=0xb535e0, callback=, user_data=) at kernel/qguieventdispatcher_glib.cpp:146
55 0x00007fffee84b6c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
56 0x00007fffee84f538 in ?? () from /lib/libglib-2.0.so.0
57 0x00007fffee84f6ec in g_main_context_iteration () from /lib/libglib-2.0.so.0
58 0x00007ffff44d8713 in QEventDispatcherGlib::processEvents (this=0xb4f960, flags=) at kernel/qeventdispatcher_glib.cpp:412
59 0x00007ffff4da414e in QGuiEventDispatcherGlib::processEvents (this=0x7ffff3969e40, flags=) at kernel/qguieventdispatcher_glib.cpp:204
60 0x00007ffff44ada82 in QEventLoop::processEvents (this=, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:149
61 0x00007ffff44ade5c in QEventLoop::exec (this=0x7fffffffdb60, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:201
62 0x00007ffff44b2aeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
63 0x000000000052ca85 in main (argc=1, argv=0x7fffffffe4b8) at Main.cpp:232