hluk / CopyQ

Clipboard manager with advanced features
GNU General Public License v3.0
8.35k stars 432 forks source link

copyq Crashes when I start or stop using multiple monitors #1301

Open zainengineer opened 4 years ago

zainengineer commented 4 years ago

Describe the bug I am using copyq on macbook. I use a hub which connects to two monitors. When I connect that hub with my macbook using thunderbolt, copyQ crashes (or exits not sure).

I installed copyq using brew

To Reproduce Steps to reproduce the behavior:

  1. start copyQ (minimized) on macbook
  2. connect to multiple monitors

Expected behavior CopyQ will continue to work.

Version, OS and Environment (Get details from copyq version command if possible.) -v3.9.3

Additional context Same happens when I go back from multiple monitors to just laptop screen

Here are logs from copyq 'copy(info("log"))'


less +F /Users/zain/Library/Application\ Support/copyq/copyq/copyq.log

CopyQ Note [2020-01-30 18:53:05.769] <Client-33641>: Ended activity
CopyQ Note [2020-01-30 19:01:21.023] <Client-34197>: Ended activity
CopyQ ERROR [2020-01-30 19:12:59.082] <Client-79133>: Connection lost!
CopyQ Note [2020-01-30 19:12:59.085] <Client-79133>: Ended activity
CopyQ Note [2020-01-30 19:13:05.298] <Client-35444>: Ended activity
CopyQ Note [2020-01-30 19:13:05.764] <Client-35446>: Ended activity
CopyQ Note [2020-01-31 11:13:57.647] <Client-35445>: Ended activity
CopyQ Note [2020-01-31 11:13:57.678] <Client-36334>: Ended activity
CopyQ Note [2020-01-31 11:13:57.688] <monitorClipboard-35443>: Ended activity
CopyQ Note [2020-01-31 11:13:57.739] <Server-35438>: Ended activity
CopyQ Note [2020-01-31 11:14:02.585] <Client-36364>: Ended activity

note that I took out the thunder bolt and put my computer and closed my laptop screen at the end of my work day around 2020-01-30 19:12

And started my laptop and started my copyq at 11:13 today 2020-01-31 11:13

yarinm commented 4 years ago

+1

Happens to me as well

sitaktif commented 4 years ago

I have two monitors that use individually for my 15" Macbook Pro 2018 (Radeon Pro 560X 4 GB graphics). They're in different rooms, both 27in.

The older one (DisplayPort "1.0" using a USB-C adapter, 2560 x 1440) doesn't trigger the behaviour.

The newer one ("native" USB C DisplayPort 1.2 with power, 4K UHD 3840 x 2160) makes CopyQ fail in the same way as above (same logs).

Anything else I can provide to help ?

hluk commented 4 years ago

Can you get some crash report or stacktrace for CopyQ on macOS?

Also, make sure you are using latest CopyQ version (3.10.0 currently).

hluk commented 4 years ago

Ah, this is quite possibly a Qt bug: https://bugreports.qt.io/browse/QTBUG-80193

sitaktif commented 4 years ago

make sure you are using latest CopyQ version (3.10.0 currently).

Yes, that's with 3.10.0 👍

CopyQ Clipboard Manager v3.10.0 Qt: 5.13.2 Compiler: GCC Arch: x86_64-little_endian-lp64 OS: macOS 10.15

Can you get some crash report or stacktrace for CopyQ on macOS?

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libqcocoa.dylib                 0x000000010a61bd47 0x10a610000 + 48455
1   libqcocoa.dylib                 0x000000010a61f77e 0x10a610000 + 63358
2   com.apple.SkyLight              0x00007fff5cd1e86e displayConfigFinalizedProc + 259
3   com.apple.SkyLight              0x00007fff5cd14286 CGSPostLocalNotification + 418
4   com.apple.SkyLight              0x00007fff5cd13e70 (anonymous namespace)::notify_datagram_handler(unsigned int, CGSDatagramType, void*, unsigned long, void*) + 93
5   com.apple.SkyLight              0x00007fff5cd17fac CGSDatagramReadStream::dispatch_next_main_queue_datagram() + 242
6   com.apple.SkyLight              0x00007fff5cf4a985 invocation function for block in CGSDatagramReadStream::dispatch_main_queue_datagrams_async(dispatch_queue_s*, CGSDatagramReadStream*) + 54
7   libdispatch.dylib               0x00007fff66038583 _dispatch_call_block_and_release + 12
8   libdispatch.dylib               0x00007fff6603950e _dispatch_client_callout + 8
9   libdispatch.dylib               0x00007fff66044bc4 _dispatch_main_queue_callback_4CF + 1105
10  com.apple.CoreFoundation        0x00007fff2ea2de00 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
11  com.apple.CoreFoundation        0x00007fff2e9edb8a __CFRunLoopRun + 2370
12  com.apple.CoreFoundation        0x00007fff2e9ecbd3 CFRunLoopRunSpecific + 499
13  com.apple.HIToolbox             0x00007fff2d54265d RunCurrentEventLoopInMode + 292
14  com.apple.HIToolbox             0x00007fff2d54239d ReceiveNextEventCommon + 600
15  com.apple.HIToolbox             0x00007fff2d542127 _BlockUntilNextEventMatchingListInModeWithFilter + 64
16  com.apple.AppKit                0x00007fff2bbb2ba4 _DPSNextEvent + 990
17  com.apple.AppKit                0x00007fff2bbb1380 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
18  com.apple.AppKit                0x00007fff2bba309e -[NSApplication run] + 658
19  libqcocoa.dylib                 0x000000010a644013 0x10a610000 + 213011
20  org.qt-project.QtCore           0x000000010860afef QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
21  org.qt-project.QtWidgets        0x00000001079f684e QDialog::exec() + 526
22  io.github.hluk.CopyQ            0x0000000106f91ec6 MainWindow::openPreferences() + 390
23  org.qt-project.QtCore           0x0000000108640cfb QMetaObject::activate(QObject*, int, int, void**) + 1435
24  org.qt-project.QtWidgets        0x00000001077f20d5 QAction::activate(QAction::ActionEvent) + 309
25  org.qt-project.QtCore           0x0000000108639a51 QObject::event(QEvent*) + 753
26  org.qt-project.QtWidgets        0x00000001077fb62d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
27  org.qt-project.QtWidgets        0x00000001077fca32 QApplication::notify(QObject*, QEvent*) + 594
28  io.github.hluk.CopyQ            0x0000000106ffcdd3 ApplicationExceptionHandler<(anonymous namespace)::ClipboardApplication>::notify(QObject*, QEvent*) + 19
29  org.qt-project.QtCore           0x000000010860fb74 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
30  org.qt-project.QtCore           0x0000000108610dae QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 878
31  libqcocoa.dylib                 0x000000010a644b29 0x10a610000 + 215849
32  libqcocoa.dylib                 0x000000010a645298 0x10a610000 + 217752
33  com.apple.CoreFoundation        0x00007fff2e9eeb21 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
34  com.apple.CoreFoundation        0x00007fff2e9eeac0 __CFRunLoopDoSource0 + 103
35  com.apple.CoreFoundation        0x00007fff2e9ee8d4 __CFRunLoopDoSources0 + 209
36  com.apple.CoreFoundation        0x00007fff2e9ed740 __CFRunLoopRun + 1272
37  com.apple.CoreFoundation        0x00007fff2e9ecbd3 CFRunLoopRunSpecific + 499
38  com.apple.HIToolbox             0x00007fff2d54265d RunCurrentEventLoopInMode + 292
39  com.apple.HIToolbox             0x00007fff2d5422a9 ReceiveNextEventCommon + 356
40  com.apple.HIToolbox             0x00007fff2d542127 _BlockUntilNextEventMatchingListInModeWithFilter + 64
41  com.apple.AppKit                0x00007fff2bbb2ba4 _DPSNextEvent + 990
42  com.apple.AppKit                0x00007fff2bbb1380 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
43  com.apple.AppKit                0x00007fff2bba309e -[NSApplication run] + 658
44  libqcocoa.dylib                 0x000000010a644013 0x10a610000 + 213011
45  org.qt-project.QtCore           0x000000010860afef QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
46  org.qt-project.QtCore           0x0000000108610182 QCoreApplication::exec() + 130
47  io.github.hluk.CopyQ            0x0000000106ff5d57 main + 3495
48  libdyld.dylib                   0x00007fff660927fd start + 1

Thread 1:: com.apple.CFSocket.private
0   libsystem_kernel.dylib          0x00007fff661db5be __select + 10
1   com.apple.CoreFoundation        0x00007fff2ea17d8a __CFSocketManager + 632
2   libsystem_pthread.dylib         0x00007fff66296e65 _pthread_start + 148
3   libsystem_pthread.dylib         0x00007fff6629283b thread_start + 15

Thread 2:: com.apple.NSEventThread
0   libsystem_kernel.dylib          0x00007fff661d325a mach_msg_trap + 10
1   libsystem_kernel.dylib          0x00007fff661d35d0 mach_msg + 60
2   com.apple.CoreFoundation        0x00007fff2e9eed0b __CFRunLoopServiceMachPort + 322
3   com.apple.CoreFoundation        0x00007fff2e9ed8e7 __CFRunLoopRun + 1695
4   com.apple.CoreFoundation        0x00007fff2e9ecbd3 CFRunLoopRunSpecific + 499
5   com.apple.AppKit                0x00007fff2bd55792 _NSEventThread + 132
6   libsystem_pthread.dylib         0x00007fff66296e65 _pthread_start + 148
7   libsystem_pthread.dylib         0x00007fff6629283b thread_start + 15

Thread 3:
0   libsystem_pthread.dylib         0x00007fff66292818 start_wqthread + 0

Thread 4:
0   libsystem_pthread.dylib         0x00007fff66292818 start_wqthread + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000600003644640  rbx: 0x0000000000001002  rcx: 0x0000000000000001  rdx: 0x000000008f857968
  rdi: 0x0000000000000000  rsi: 0x0000600000676ce0  rbp: 0x00007ffee8d41ea0  rsp: 0x00007ffee8d41d30
   r8: 0x00000000000001ff   r9: 0x00000000000007fb  r10: 0x0000000000002ce0  r11: 0x0000000000000020
  r12: 0x0000000000001002  r13: 0x0000600000518c60  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x000000010a61bd47  rfl: 0x0000000000010206  cr2: 0x0000000000000014

Logical CPU:     8
Error Code:      0x00000004 (no mapping for user data write)
Trap Number:     14

Ah, this is quite possibly a Qt bug

Nice... promising!

aviadavi commented 3 years ago

Any updates? I'm working with multiple monitors and copyQ crashes whenever i perform a snapshot
any alternatives for mac?

zainengineer commented 3 years ago

@aviadavi on my Mac chrome is always running, it helped me make a simple script which run in cron job and reload it if crashed. Does not reload it if computer is shutting down

in crontab -e I have

* * * * * /path/utils/mac/copyq/spawn.sh &> /tmp/copyq_reload.log

and content of spawn.sh is

if ps aux | grep "/Applications/CopyQ.app/Contents/MacOS/CopyQ" | grep -v grep
then
   echo "copyq already running"
else
   if ps aux | grep "Chrome" | grep -v grep
   then
      open /usr/local/bin/copyq
   else
      echo "Chrome is not running so assuming it is a shutdown"
   fi
fi