xtingray / tupitube.desk

TupiTube Desk Source Code
GNU General Public License v2.0
35 stars 12 forks source link

Paste Shape in next Frames Crashing Issue #77

Closed lxlalexlxl closed 8 months ago

lxlalexlxl commented 8 months ago

1) Start TupiTube and create new project. 2) Draw a rectangle. 3) Right click the rectangle and select "Copy" command. 4) Right click the rectangle and select "Paste in... - next 5 frames" command.

TupiTube crashes with addressing error message in terminal.

In this video this feature works fine: https://youtu.be/mFEhHdurico?t=612

TupiTube Desk 0.2.21 Linux Mint 21.2 Cinnamon

xtingray commented 8 months ago

Hi, I was trying to reproduce the bug with the latest version of TupiTube (0.2.21) but couldn't. Please, help me with these questions:

Thanks!

lxlalexlxl commented 8 months ago

Thanks for the answer,

* Are you using the official installer of TupiTube? Or did you compile the source code on your own?

I downloaded the file tupitube_0.2.21_linux_x64.sh from the TupiTube site. I am running the application using the tupitube.desk file.

* Is there a previous installation of Qt on your computer? Which version?  (qmake -version)

"qmake -version " outputs "Command not found".

* Could you run the application using gdb? In that way, we could trace the possible bug.

I can try, but I need a step-by-step instruction.

xtingray commented 8 months ago

Just to discard a possible cause of the issue, please run this command and show me the output: apt policy qt5-default

Now, about how to do the debugging of the installer. These are the steps:

lxlalexlxl commented 8 months ago

apt policy qt5-default output is (Ukrainian):

qt5-default: Встановлено: (відсутній) - Installed: (missing) Кандидат: (відсутній) - Candidate: (missing) Таблиця версій: - Version table:

xtingray commented 8 months ago

apt policy qt5-default output is (Ukrainian):

qt5-default: Встановлено: (відсутній) - Installed: (missing) Кандидат: (відсутній) - Candidate: (missing) Таблиця версій: - Version table:

Ok. This means that definitely there is no other Qt installation that could generate a conflict with the TupiTube installer. At this point, all we can do is focus on the output generated by the gdb tool when the app crashes, looking for some clue. Thanks.

lxlalexlxl commented 8 months ago

Debugger output:

Thread 1 "tupitube.bin" received signal SIGSEGV, Segmentation fault. 0x00007ffff7041748 in TupPaintArea::multipasteObject(int) () from ./lib/tupitube/libtupiworkspace.so.1 (gdb) bt

0 0x00007ffff7041748 in TupPaintArea::multipasteObject(int) ()

from ./lib/tupitube/libtupiworkspace.so.1

1 0x00007ffff7085acd in ?? () from ./lib/tupitube/libtupiworkspace.so.1

2 0x00007ffff26d5ddf in void doActivate(QObject*, int, void**) ()

from ./lib/qt/libQt5Core.so.5

3 0x00007ffff3b5d672 in QAction::triggered(bool) ()

from ./lib/qt/libQt5Widgets.so.5

4 0x00007ffff3b5fa9e in QAction::activate(QAction::ActionEvent) ()

from ./lib/qt/libQt5Widgets.so.5

5 0x00007ffff3ccf53a in QMenuPrivate::activateCausedStack(QVector<QPointer > const&, QAction*, QAction::ActionEvent, bool) ()

from ./lib/qt/libQt5Widgets.so.5

6 0x00007ffff3cd6666 in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) () from ./lib/qt/libQt5Widgets.so.5

7 0x00007ffff3cd77c0 in QMenu::mouseReleaseEvent(QMouseEvent*) ()

from ./lib/qt/libQt5Widgets.so.5

8 0x00007ffff3ba1740 in QWidget::event(QEvent*) ()

from ./lib/qt/libQt5Widgets.so.5

9 0x00007ffff3cd9cdb in QMenu::event(QEvent*) ()

from ./lib/qt/libQt5Widgets.so.5

10 0x00007ffff3b6343c in QApplicationPrivate::notify_helper(QObject, QEvent)

() from ./lib/qt/libQt5Widgets.so.5

11 0x00007ffff3b6a1f8 in QApplication::notify(QObject, QEvent) ()

--Type for more, q to quit, c to continue without paging-- qt/libQt5Widgets.so.5

12 0x00007ffff269d808 in QCoreApplication::notifyInternal2(QObject, QEvent) () from ./lib/qt/libQt5Core.so.5

13 0x00007ffff3b6953a in QApplicationPrivate::sendMouseEvent(QWidget, QMouseEvent, QWidget, QWidget, QWidget**, QPointer&, bool, bool) ()

from ./lib/qt/libQt5Widgets.so.5

14 0x00007ffff3bbacda in QWidgetWindow::handleMouseEvent(QMouseEvent*) () from ./lib/qt/libQt5Widgets.so.5

15 0x00007ffff3bbdcf3 in QWidgetWindow::event(QEvent*) () from ./lib/qt/libQt5Widgets.so.5

16 0x00007ffff3b6343c in QApplicationPrivate::notify_helper(QObject, QEvent) () from ./lib/qt/libQt5Widgets.so.5

17 0x00007ffff3b69f20 in QApplication::notify(QObject, QEvent) () from ./lib/qt/libQt5Widgets.so.5

18 0x00007ffff269d808 in QCoreApplication::notifyInternal2(QObject, QEvent) () from ./lib/qt/libQt5Core.so.5

19 0x00007ffff316f56d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from ./lib/qt/libQt5Gui.so.5

20 0x00007ffff3170955 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()

from ./lib/qt/libQt5Gui.so.5

21 0x00007ffff314c8ab in QWindowSystemInterface::sendWindowSystemEvents(QFlags) () from ./lib/qt/libQt5Gui.so.5

22 0x00007fffe766569a in xcbSourceDispatch(_GSource, int ()(void), void) () from ./lib/qt/libQt5XcbQpa.so.5

23 0x00007ffff771bd3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

24 0x00007ffff7771258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

25 0x00007ffff77193e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

26 0x00007ffff26f91cc in QEventDispatcherGlib::processEvents(QFlags) () from ./lib/qt/libQt5Core.so.5

27 0x00007ffff269c21a in QEventLoop::exec(QFlags) () from ./lib/qt/libQt5Core.so.5

28 0x00007ffff3cd43e4 in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>) () from ./lib/qt/libQt5Widgets.so.5

29 0x00007ffff3cd44db in QMenu::exec(QPoint const&, QAction*) () from ./lib/qt/libQt5Widgets.so.5

30 0x00007ffff7040670 in TupPaintArea::mousePressEvent(QMouseEvent*) () from ./lib/tupitube/libtupiworkspace.so.1

31 0x00007ffff3ba2181 in QWidget::event(QEvent*) () from ./lib/qt/libQt5Widgets.so.5

32 0x00007ffff3c4a21e in QFrame::event(QEvent*) () from ./lib/qt/libQt5Widgets.so.5

--Type for more, q to quit, c to continue without paging--

33 0x00007ffff3e8484b in QGraphicsView::viewportEvent(QEvent*) () from ./lib/qt/libQt5Widgets.so.5

34 0x00007ffff269d5a0 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject, QEvent) () from ./lib/qt/libQt5Core.so.5

35 0x00007ffff3b63412 in QApplicationPrivate::notify_helper(QObject, QEvent) () from ./lib/qt/libQt5Widgets.so.5

36 0x00007ffff3b6a1f8 in QApplication::notify(QObject, QEvent) () from ./lib/qt/libQt5Widgets.so.5

37 0x00007ffff269d808 in QCoreApplication::notifyInternal2(QObject, QEvent) () from ./lib/qt/libQt5Core.so.5

38 0x00007ffff3b6953a in QApplicationPrivate::sendMouseEvent(QWidget, QMouseEvent, QWidget, QWidget, QWidget**, QPointer&, bool, bool) ()

from ./lib/qt/libQt5Widgets.so.5

39 0x00007ffff3bbafe8 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () from ./lib/qt/libQt5Widgets.so.5

40 0x00007ffff3bbdcf3 in QWidgetWindow::event(QEvent*) () from ./lib/qt/libQt5Widgets.so.5

41 0x00007ffff3b6343c in QApplicationPrivate::notify_helper(QObject, QEvent) () from ./lib/qt/libQt5Widgets.so.5

42 0x00007ffff3b69f20 in QApplication::notify(QObject, QEvent) () from ./lib/qt/libQt5Widgets.so.5

43 0x00007ffff269d808 in QCoreApplication::notifyInternal2(QObject, QEvent) () from ./lib/qt/libQt5Core.so.5

44 0x00007ffff316f56d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from ./lib/qt/libQt5Gui.so.5

45 0x00007ffff3170955 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()

from ./lib/qt/libQt5Gui.so.5

46 0x00007ffff314c8ab in QWindowSystemInterface::sendWindowSystemEvents(QFlags) () from ./lib/qt/libQt5Gui.so.5

47 0x00007fffe766569a in xcbSourceDispatch(_GSource, int ()(void), void) () from ./lib/qt/libQt5XcbQpa.so.5

48 0x00007ffff771bd3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

49 0x00007ffff7771258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

50 0x00007ffff77193e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

51 0x00007ffff26f91cc in QEventDispatcherGlib::processEvents(QFlags) () from ./lib/qt/libQt5Core.so.5

52 0x00007ffff269c21a in QEventLoop::exec(QFlags) () from ./lib/qt/libQt5Core.so.5

53 0x00007ffff26a51d3 in QCoreApplication::exec() () from ./lib/qt/libQt5Core.so.5

54 0x0000555555410d95 in main ()

xtingray commented 8 months ago

Ok, it seems the problem is located within the method TupPaintArea::multipasteObject(int)

Now, to find the specific line where the crash occurs, I have prepared this installer with the debug option enabled: https://tupitube.com/tmp/TupiTube_Desk_0.2.21_x64.sh

So please, try it but just to trace the bug described in this report.

Note: When you execute the launch script, please redirect the output to a log file, like in this example: cd TupiTube_Desk ./tupitube.desk >& log.txt

I would like to check the messages stored in the log file when the crash happens. Thanks.

lxlalexlxl commented 8 months ago

OK. This version also stops working, but the window does not close, it just freezes. At the same time, a password request appears in the terminal. I am attaching the file obtained after forcefully closing the application.

log.txt.tar.gz

xtingray commented 8 months ago

Please, try this new installer again, and let me know if the application keeps crashing : https://tupitube.com/tmp/TupiTube_Desk_0.2.21_x64.sh

Thanks.

lxlalexlxl commented 8 months ago

This version seems to work fine. Thank you.

xtingray commented 8 months ago

The cause of the error was related to the option "Paste objects over mouse position". If it was enabled when you tried to paste an object on multiple frames, then the application crashed. Fortunately, I could find the bug and fix it with your help. Thanks.

xtingray commented 8 months ago

The cause of the error was related to the option "Paste objects over mouse position". If it was enabled when you tried to paste an object on multiple frames, then the application crashed. Fortunately, I could find the bug and fix it with your help. Thanks