quotient-im / Quaternion

A Qt-based IM client for Matrix
https://matrix.org/ecosystem/clients/quaternion/
GNU General Public License v3.0
645 stars 108 forks source link

Quaternion freezes on start on M1 Mac after brew install #759

Closed jakecoppinger closed 3 years ago

jakecoppinger commented 3 years ago

Description

Quaternion freezes on start on an M1 MacbookPro after brew install quaternion. I'm not sure if this platform has been tested yet - just wanted to let you know in case you didn't :) Please let me know if I'm doing something silly.

Steps to reproduce

Version information

KitsuneRal commented 3 years ago

There doesn't seem to be anything silly per se. Can you start the application from the terminal window? It should write some things there as it runs.

aaronraimist commented 3 years ago

I think this is probably a Qt bug. When 0.0.9.4e is run with env QT_LOGGING_RULES="*.debug=true" on an M1 Mac it gets stuck in a loop like this when it says "Application Not Responding":

qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow"))>
qt.qpa.drawing: [QNSView displayLayer] QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow")
qt.qpa.drawing: QCocoaWindow::handleExposeEvent QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClassWindow") QRegion(0,0 282x247) isExposed true
qt.qpa.backingstore: Flushing QRegion(0,0 282x247) of <QNSView: 0x7f9415e0c490; QCocoaWindow(0x7f9415e0c320, window=QWidgetWindow(0x7f9415e0bdf0, name="LoginDialogClass^C

When 0.0.9.4e is built with Qt 5.15.2 it works fine on an M1 Mac. 0.0.95-beta4 also works. So depending on the ETA for 0.0.95 stable we can either wait for that or build 0.0.9.4f for Mac and get that into Homebrew.

KitsuneRal commented 3 years ago

Thanks for the investigation. I intend to make 0.0.95 beta 5 today; apparently I should switch CI to 5.15.2 before that. If there’s nothing wrong with the beta the release is likely to follow in 2-3 weeks.

jakecoppinger commented 3 years ago

Thanks very much for investigating, sorry about not getting back to you on running from the terminal.

KitsuneRal commented 3 years ago

Does the .dmg at https://github.com/quotient-im/Quaternion/actions/runs/658939586 work fine?

triallax commented 3 years ago

I am facing this same issue on an Intel Mac. I was going to try the DMG that @KitsuneRal posted, but it doesn't seem to be available anymore. Building from source works fine.

aaronraimist commented 3 years ago

@mhmdanas what version are you using when you reproduce the bug? 0.0.9.4 with any letter after it is quite old at this point. This bug should be fixed in the current release candidate 0.0.95 RC2.

triallax commented 3 years ago

Indeed, the version that is live on Homebrew is 0.0.9.4e. I'll give the RC a try.

Edit: it works now. Thank you!