Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paste Shape in next Frames Crashing Issue #77

Closed
lxlalexlxl opened this issue Nov 3, 2023 · 12 comments
Closed

Paste Shape in next Frames Crashing Issue #77

lxlalexlxl opened this issue Nov 3, 2023 · 12 comments

Comments

@lxlalexlxl
Copy link
Contributor

lxlalexlxl commented Nov 3, 2023

  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
Copy link
Owner

xtingray commented Nov 4, 2023

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:

  • Are you using the official installer of TupiTube? Or did you compile the source code on your own?
  • Is there a previous installation of Qt on your computer? Which version? (qmake -version)
  • Could you run the application using gdb? In that way, we could trace the possible bug.

Thanks!

@lxlalexlxl
Copy link
Contributor Author

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
Copy link
Owner

xtingray commented Nov 4, 2023

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:

  • Open a console and get into the folder of the TupiTube installer:
    cd TupiTube_Desk
  • Execute these commands:
    export TUPITUBE_HOME="."
    export TUPITUBE_SHARE="./share/tupitube"
    export TUPITUBE_LIB="./lib/tupitube:./lib/tupitube/raster"
    export TUPITUBE_PLUGIN="./lib/tupitube/plugins"
    export TUPITUBE_BIN="./bin"
    export LD_LIBRARY_PATH="./lib/qt:./lib/ffmpeg:./lib/quazip:./lib/libsndfile:./lib/ssl:${TUPITUBE_LIB}:${TUPITUBE_PLUGIN}:$LD_LIBRARY_PATH"
  • Execute the debugger:
    gdb ${TUPITUBE_BIN}/tupitube.bin
  • From the debugger prompt execute the command "run":
    (gdb) run
  • The TupiTube application will start. Follow the steps to reproduce the crash.
  • When the application crashes, go back to the gdb prompt and execute:
    (gdb) bt
    This command will print all the debugging information related to the error. That's the input I want to check.
  • To exit the gdb program:
    (gdb) quit
    Thanks.

@lxlalexlxl
Copy link
Contributor Author

apt policy qt5-default output is (Ukrainian):

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

@xtingray
Copy link
Owner

xtingray commented Nov 4, 2023

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
Copy link
Contributor Author

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(QFlagsQEventLoop::ProcessEventsFlag) () 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(QFlagsQEventLoop::ProcessEventsFlag) () from ./lib/qt/libQt5Core.so.5
#27 0x00007ffff269c21a in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () 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(QFlagsQEventLoop::ProcessEventsFlag) () 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(QFlagsQEventLoop::ProcessEventsFlag) () from ./lib/qt/libQt5Core.so.5
#52 0x00007ffff269c21a in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from ./lib/qt/libQt5Core.so.5
#53 0x00007ffff26a51d3 in QCoreApplication::exec() () from ./lib/qt/libQt5Core.so.5
#54 0x0000555555410d95 in main ()

@xtingray
Copy link
Owner

xtingray commented Nov 5, 2023

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
Copy link
Contributor Author

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
Copy link
Owner

xtingray commented Nov 5, 2023

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
Copy link
Contributor Author

This version seems to work fine. Thank you.

@xtingray
Copy link
Owner

xtingray commented Nov 6, 2023

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
Copy link
Owner

xtingray commented Nov 6, 2023

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 xtingray closed this as completed Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants