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

Crash after searching for emotes in a special channel #3526

Closed
4 tasks done
Mm2PL opened this issue Jan 18, 2022 · 1 comment · Fixed by #3527
Closed
4 tasks done

Crash after searching for emotes in a special channel #3526

Mm2PL opened this issue Jan 18, 2022 · 1 comment · Fixed by #3527
Assignees
Labels
bug Something isn't working as intended, or works in a confusing/unintuitive way for the user crash

Comments

@Mm2PL
Copy link
Collaborator

Mm2PL commented Jan 18, 2022

Checklist

  • I'm reporting a problem with Chatterino
  • I've verified that I'm running the most recent nightly build or stable release
  • I've looked for my problem on the wiki
  • I've searched the issues and pull requests for similar looking reports

Describe your issue

To reproduce:

  • open an emote popup in /live, /watching, /whispers, /mentions. Default: Ctrl+E
  • type something
  • oops your Chatterino crashed
Backtrace
Core was generated by `bin/chatterino'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f003f210424 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
[Current thread is 1 (Thread 0x7f003b7df840 (LWP 591460))]
(gdb) bt
#0  0x00007f003f210424 in pthread_mutex_lock () at /usr/lib/libpthread.so.0
#1  0x0000562d8fe3b7c7 in __gthread_mutex_lock(__gthread_mutex_t*) (__mutex=0x6f8) at /usr/include/c++/11.1.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749
#2  0x0000562d8fe3bef8 in std::mutex::lock() (this=0x6f8) at /usr/include/c++/11.1.0/bits/std_mutex.h:100
#3  0x0000562d8fe7e052 in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7ffecffe44d0, __m=...) at /usr/include/c++/11.1.0/bits/std_mutex.h:229
#4  0x0000562d8ffbcdce in chatterino::Atomic<std::shared_ptr<chatterino::EmoteMap const> >::get() const (this=0x6f8) at /home/mm2pl/git/ch2dev/src/common/Atomic.hpp:23
#5  0x0000562d901362a3 in chatterino::TwitchChannel::bttvEmotes() const (this=0x0) at /home/mm2pl/git/ch2dev/src/providers/twitch/TwitchChannel.cpp:550
#6  0x0000562d9026b04b in chatterino::EmotePopup::filterEmotes(QString const&) (this=0x562d92ddb020, searchText=...) at /home/mm2pl/git/ch2dev/src/widgets/dialogs/EmotePopup.cpp:424
#7  0x0000562d9027541c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (chatterino::EmotePopup::*)(QString const&)>::call(void (chatterino::EmotePopup::*)(QString const&), chatterino::EmotePopup*, void**) (f=
    (void (chatterino::EmotePopup::*)(chatterino::EmotePopup * const, const QString &)) 0x562d9026acb0 <chatterino::EmotePopup::filterEmotes(QString const&)>, o=0x562d92ddb020, arg=0x7ffecffe47e0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
#8  0x0000562d90274537 in QtPrivate::FunctionPointer<void (chatterino::EmotePopup::*)(QString const&)>::call<QtPrivate::List<QString const&>, void>(void (chatterino::EmotePopup::*)(QString const&), chatterino::EmotePopup*, void**) (f=
    (void (chatterino::EmotePopup::*)(chatterino::EmotePopup * const, const QString &)) 0x562d9026acb0 <chatterino::EmotePopup::filterEmotes(QString const&)>, o=0x562d92ddb020, arg=0x7ffecffe47e0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
#9  0x0000562d902735c9 in QtPrivate::QSlotObject<void (chatterino::EmotePopup::*)(QString const&), QtPrivate::List<QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x562d936ab100, r=0x562d92ddb020, a=0x7ffecffe47e0, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:418
#10 0x00007f003f4e25d3 in  () at /usr/lib/libQt5Core.so.5
#11 0x00007f00401da0e7 in QLineEdit::textChanged(QString const&) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007f003f4e261f in  () at /usr/lib/libQt5Core.so.5
#13 0x00007f00401e53ea in QWidgetLineControl::textChanged(QString const&) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007f00401e90a1 in QWidgetLineControl::finishChange(int, bool, bool) () at /usr/lib/libQt5Widgets.so.5
#15 0x00007f00401ebeef in QWidgetLineControl::processKeyEvent(QKeyEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007f00401dd5c0 in QLineEdit::keyPressEvent(QKeyEvent*) () at /usr/lib/libQt5Widgets.so.5
#17 0x00007f00400d8970 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f00400a21a6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#19 0x00007f00400a7257 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#20 0x00007f003f4b19ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#21 0x00007f00400f840b in  () at /usr/lib/libQt5Widgets.so.5
#22 0x00007f00400a21a6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#23 0x00007f003f4b19ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#24 0x00007f003fa00bc4 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /usr/lib/libQt5Gui.so.5
#25 0x00007f003f9eb5e5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#26 0x00007f003a0bad90 in  () at /usr/lib/libQt5XcbQpa.so.5
#27 0x00007f003de69fd3 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#28 0x00007f003dec0049 in  () at /usr/lib/libglib-2.0.so.0
#29 0x00007f003de67545 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#30 0x00007f003f4fcc8a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#31 0x00007f003f4a9bab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#32 0x00007f003f4b53e7 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#33 0x0000562d8fe3313d in chatterino::Application::run(QApplication&) (this=0x7ffecffe5290, qtApp=...) at /home/mm2pl/git/ch2dev/src/Application.cpp:177
#34 0x0000562d8fe70be3 in chatterino::runGui(QApplication&, chatterino::Paths&, chatterino::Settings&) (a=..., paths=..., settings=...) at /home/mm2pl/git/ch2dev/src/RunGui.cpp:243
#35 0x0000562d8fe20e7e in main(int, char**) (argc=1, argv=0x7ffecffeab18) at /home/mm2pl/git/ch2dev/src/main.cpp:90

Lesson learned: don't paste your back traces as raw markdown or else you will necrobump a lot of issues xd

Screenshots

2022-01-18.22-00-50.mp4

OS and Chatterino Version

I'm running commit 1d272c3 on Arch Linux

@Mm2PL Mm2PL added bug Something isn't working as intended, or works in a confusing/unintuitive way for the user crash labels Jan 18, 2022
@Mm2PL Mm2PL self-assigned this Jan 18, 2022
@kornes
Copy link
Contributor

kornes commented Jan 18, 2022

beside fixing the crash, would be cool to make chat input/emote picker appear disabled and non clickable for all readonly channels

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as intended, or works in a confusing/unintuitive way for the user crash
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants