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

Orange3 version 3.29.3 crashes when using two monitor in Extend mode #5540

Closed
fahminlb33 opened this issue Aug 1, 2021 · 4 comments
Closed
Labels
bug report Bug is reported by user, not yet confirmed by the core team

Comments

@fahminlb33
Copy link

fahminlb33 commented Aug 1, 2021

I have a freshly installed Orange3 version 3.29.3 using Miniconda (conda 4.10.3). I'm using two monitor setup with integrated graphics from CPU. I have a somewhat unique situation with my Orange installation, it will always crash if I open it on my secondary monitor but it works properly if I open it on my primary monitor.

What's wrong?

Orange will always crash when I open some widget, for example Corpus Viewer or Line Chart. When I open those two widget when Orange is in my secondary monitor, Orange will crash. But if I open those widget while Orange is at my primary monitor, it works perfectly.

How can we reproduce the problem?

Reproducing the crashing:

  1. Plug a secondary monitor to your PC and set it to Extend mode
  2. Start orange using terminal orange-canvas in the second monitor (Orange has to be started in the second monitor for this crash to happen)
  3. Add Corpus Viewer or Line Chart to the workspace and open it
  4. The widget window will open with blank content and then crash.

The above situation will not happen if you use Duplicate mode with your secondary monitor.

What's your environment?

  • Operating system: Windows 10 21H1 Build 19043.1110
  • Orange version: 3.39.3
  • How you installed Orange: Using Miniconda conda install -c conda-forge orange3==3.93.3

Extra context

I run some checks using memory dump and find out the following result. After some digging using the keyword NtUserGetHDevName (symbol name from memory dump) I stumbled upon this thread on Prusa repo (prusa3d/PrusaSlicer#2142). In the thread they have the same problem with two monitor and Nahimic drivers. I use two monitor and Nahimic driver, but I confirmed the problem is not with Nahimic driver (I tested it by disabling the service and uninstalling the driver).

To summarize, this might be a problem with Qt working on two monitor and probably not Nahimic driver.

*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** WARNING: Unable to verify checksum for _queue.pyd
*** WARNING: Unable to verify checksum for Qt5WebEngineCore_conda.dll

KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 2812

    Key  : Analysis.DebugAnalysisManager
    Value: Create

    Key  : Analysis.Elapsed.mSec
    Value: 64174

    Key  : Analysis.Init.CPU.mSec
    Value: 577

    Key  : Analysis.Init.Elapsed.mSec
    Value: 25729

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 108

    Key  : Timeline.OS.Boot.DeltaSec
    Value: 219241

    Key  : Timeline.Process.Start.DeltaSec
    Value: 402

    Key  : WER.OS.Branch
    Value: vb_release

    Key  : WER.OS.Timestamp
    Value: 2019-12-06T14:06:00Z

    Key  : WER.OS.Version
    Value: 10.0.19041.1

    Key  : WER.Process.Version
    Value: 3.9.6150.1013


NTGLOBALFLAG:  0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

APPLICATION_VERIFIER_FLAGS:  0

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 0000000000000000
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 0

FAULTING_THREAD:  0000197c

PROCESS_NAME:  python.exe

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE_STR:  80000003

STACK_TEXT:  
00000029`3cbe9e98 00007ff8`cd82dc37     : 00000000`00000001 00000000`00000000 00000000`00000000 00000000`00000000 : win32u!NtUserGetHDevName+0x14
00000029`3cbe9ea0 00007ff8`7e4d73f9     : 00000000`00000000 00007ff8`7e4d3748 00000000`00010034 00000000`00000020 : user32!GetMonitorInfoA+0x57
00000029`3cbe9f60 00007ff8`cd828958     : 00008028`34f48aff 00000000`00000000 00000000`00000000 00007ff8`29d90b30 : d3d9!MonitorEnumProc+0x59
00000029`3cbea020 00007ff8`ced90c54     : 00000000`00000000 00007ff8`cc872cca 00008028`34f48a4f 00007ff8`cd8143dd : user32!_ClientMonitorEnumProc+0x28
00000029`3cbea080 00007ff8`cc6e1984     : 00007ff8`7e4b4ecd 0000012c`fe501340 00000000`00000000 00007ff8`29d67aa0 : ntdll!KiUserCallbackDispatcherContinue
00000029`3cbea108 00007ff8`7e4b4ecd     : 0000012c`fe501340 00000000`00000000 00007ff8`29d67aa0 00007ff8`29d03e4c : win32u!NtUserEnumDisplayMonitors+0x14
00000029`3cbea110 00007ff8`29d0f17b     : 0000012c`fe4fdb34 00000000`00000000 00000000`005f0abe 0000012c`fe4fc960 : d3d9!CEnum::GetAdapterMonitor+0x7d
00000029`3cbea160 00007ff8`29d0d975     : 00000000`01011a3e 00000000`01011a3e 0000012c`eddc7530 00007ff8`29d90b30 : NahimicOSD!GetHotPatchInfo+0xc92b
00000029`3cbea1c0 00007ff8`29d0af72     : 0000012c`fe4fc960 0000012c`fe4fc960 00007ff8`29d90b30 00007ff8`cccb25a1 : NahimicOSD!GetHotPatchInfo+0xb125
00000029`3cbea200 00007ff8`cccb273e     : 00000000`00000000 00000000`00000000 0000012c`fdef6050 0000012c`fe023960 : NahimicOSD!GetHotPatchInfo+0x8722
00000029`3cbea270 00007ff8`11ff3621     : 00000000`00000000 00007ff8`a32a0000 0000012c`fe201990 00000000`00000000 : gdi32full!SwapBuffers+0x2e
00000029`3cbea2a0 00007ff8`121f444d     : 0000012c`e9733480 00000000`00000001 00000000`00000030 00000029`3cbea3f0 : Qt5Gui_conda!QOpenGLContext::swapBuffers+0x181
00000029`3cbea2f0 00007ff8`11a240dd     : 0000012c`f90730a0 0000012c`f92c0600 00000000`000001f4 00007ff8`00000001 : Qt5Gui_conda!QPlatformBackingStore::composeAndFlush+0xabd
00000029`3cbea4d0 00007ff8`11a21cdc     : 0000012c`f92c0600 0000012c`f90730a0 00000029`3cbea6e0 0000012c`f92c0600 : Qt5Widgets_conda!QWidgetPrivate::moveRect+0xcfd
00000029`3cbea590 00007ff8`11a215fa     : 00000029`3cbea750 00000029`3cbea750 00000029`3cbea6e0 00000000`00000008 : Qt5Widgets_conda!QApplication::windowIcon+0x321c
00000029`3cbea5e0 00007ff8`11a25a3d     : 0000012c`00000000 0000012c`f97f7c01 0000012c`00000000 00007ff8`268e5d1e : Qt5Widgets_conda!QApplication::windowIcon+0x2b3a
00000029`3cbea9e0 00007ff8`11a53257     : 00000000`00000000 00006cf5`f7dd5fff 0000012c`e38fc300 00000029`3cbeb440 : Qt5Widgets_conda!QWidget::size+0x50d
00000029`3cbeaa40 00007ff8`11a6851a     : 00000000`00000000 0000012c`fdce8a70 00000000`00000001 00007ff8`269c7516 : Qt5Widgets_conda!QWidgetPrivate::syncBackingStore+0x47
00000029`3cbeaa70 00007ff8`11a671fd     : 0000012c`fdce8a70 00000029`3cbeabd0 00000029`3cbeb440 00000029`3cbeb440 : Qt5Widgets_conda!QSizePolicy::QSizePolicy+0x205a
00000029`3cbeaad0 00007ff8`11a191cd     : 0000012c`e923aa90 0000012c`e739cfe0 0000012c`fdce8a70 00000029`3cbeb440 : Qt5Widgets_conda!QSizePolicy::QSizePolicy+0xd3d
00000029`3cbeac20 00007ff8`11a18097     : 00007ff8`11a00000 00000029`3cbead50 00000029`3cbeb440 00007ff8`269c1c72 : Qt5Widgets_conda!QApplicationPrivate::notify_helper+0x13d
00000029`3cbeac50 00007ff8`13b63225     : 00000000`00000000 0000012c`e97ba098 ffffffff`fffffffe 0000012c`e97ba080 : Qt5Widgets_conda!QApplication::notify+0x1ba7
00000029`3cbeb350 00007ff8`16eab459     : 00000000`00000001 0000012c`e417dbd0 0000012c`fdce8a70 0000012c`fdce8a70 : QtWidgets+0x33225
00000029`3cbeb390 00007ff8`11fb4a26     : 00000000`00000001 00007ff8`121ccf7b 00000000`00000001 00000000`00000000 : Qt5Core_conda!QCoreApplication::notifyInternal2+0xb9
00000029`3cbeb410 00007ff8`11fa0dab     : 00007ff8`12527c68 00000000`00000002 0000012c`fe1f9c70 00000000`00000001 : Qt5Gui_conda!QGuiApplicationPrivate::processExposeEvent+0x136
00000029`3cbeb4b0 00007ff8`11f9d621     : 00000000`00000001 00007ff8`12527c68 00000029`3cbeb5b1 00000000`005f0abe : Qt5Gui_conda!QWindowSystemInterface::sendWindowSystemEvents+0x9b
00000029`3cbeb4e0 00007ff8`156167ac     : 00000000`005f0abe 00007ff8`12527c68 0000012c`fe023640 00000000`00000000 : Qt5Gui_conda!QWindowSystemInterface::flushWindowSystemEvents+0x151
00000029`3cbeb530 00007ff8`156235d5     : ffffffff`fffffffe 0000012c`fdce8a70 00000000`005f0abe 00000000`00000000 : qwindows+0x67ac
00000029`3cbeb610 00007ff8`15624462     : 0000012c`e67a4ad0 00007ff8`ced09993 00000000`00000000 00000000`00000000 : qwindows+0x135d5
00000029`3cbeb770 00007ff8`cd80e858     : 00000000`005f0abe 00000000`00000001 00000000`00000000 00000000`00000000 : qwindows+0x14462
00000029`3cbeb8c0 00007ff8`cd80e3dc     : 00000000`00000000 00007ff8`156243c0 00000000`005f0abe 00007ff8`0000000f : user32!UserCallWinProcCheckWow+0x2f8
00000029`3cbeba50 00007ff8`cd820bc3     : 00000000`00000000 00000000`00000000 00000000`00000000 00000029`3cbebb38 : user32!DispatchClientMessage+0x9c
00000029`3cbebab0 00007ff8`ced90c54     : 00000000`00000000 00000b26`0d0f3f08 00000000`000001ce 00000000`00000000 : user32!_fnDWORD+0x33
00000029`3cbebb10 00007ff8`cc6e1704     : 00007ff8`cd80e2ea 00000000`00003dff 00007ff8`cd80a523 00000000`00000000 : ntdll!KiUserCallbackDispatcherContinue
00000029`3cbebb98 00007ff8`cd80e2ea     : 00000000`00003dff 00007ff8`cd80a523 00000000`00000000 0000012c`e4c23540 : win32u!NtUserDispatchMessage+0x14
00000029`3cbebba0 00007ff8`16ef522b     : 00007ff8`156243c0 00000000`00000001 0000012c`eddbfb38 0000012c`eddbfb00 : user32!DispatchMessageWorker+0x29a
00000029`3cbebc20 00007ff8`15672aa9     : 0000012c`eddc5830 00000000`00000000 0000012c`e923aa01 0000012c`f6ad8501 : Qt5Core_conda!QEventDispatcherWin32::processEvents+0x5db
00000029`3cbeed90 00007ff8`16ea77ab     : 00000000`00000000 00000029`00000014 0000012c`f6ad8560 0000012c`e417dc01 : qwindows!qt_plugin_query_metadata+0x1e99
00000029`3cbeedc0 00007ff8`16eaa39e     : 0000012c`e38fca60 00000000`00000000 00000000`00000000 00007ff8`16fb7010 : Qt5Core_conda!QEventLoop::exec+0x1fb
00000029`3cbeee40 00007ff8`13b62387     : 0000012c`e38a2440 0000012c`e38a2440 00007ff8`13ddeaf6 00007ff8`13ef5670 : Qt5Core_conda!QCoreApplication::exec+0x15e
00000029`3cbeeeb0 00007ff8`269078dd     : 0000012c`f46156d0 0000012c`e955bd50 00000000`00000000 00007ff8`26934115 : QtWidgets+0x32387
00000029`3cbeeee0 00007ff8`268c0d57     : 0000012c`e3d44040 00007ff8`269c0a99 0000012c`e38a2440 0000012c`e6e01ad0 : python39!PyCFunction_GetFlags+0xedd
00000029`3cbeef10 00007ff8`269c8b7f     : 00000029`3cbef050 00000029`3cbef0a0 0000012c`e38a2440 0000012c`e94e66b0 : python39!PyObject_MakeTpCall+0x147
00000029`3cbeef60 00007ff8`269c5698     : 00000000`000000a1 0000012c`e94e66b8 00000029`3cbef0a0 00000000`00000074 : python39!PyEval_GetFuncDesc+0x39f
00000029`3cbeefa0 00007ff8`269c74fa     : 00000000`03c9ecb0 0000012c`eeecff10 00000000`00000003 00000000`00000001 : python39!PyEval_EvalFrameDefault+0x3108
00000029`3cbef100 00007ff8`268c1304     : 0000012c`e38a2440 0000012c`e94e6330 0000012c`e94e6498 0000012c`e38a2440 : python39!PyEval_EvalFrameDefault+0x4f6a
00000029`3cbef1b0 00007ff8`269c0a99     : 0000012c`e3f83370 00000029`3cbef3e0 0000012c`e42c7106 00000000`00000000 : python39!PyFunction_Vectorcall+0x184
00000029`3cbef260 00007ff8`269c8b7f     : 00000029`3cbef3a0 00000000`00000083 0000012c`e392a910 00000029`3cbef2e0 : python39!PyOS_URandomNonblock+0x229
00000029`3cbef2a0 00007ff8`269c3495     : 00000000`00000083 0000012c`e392aa90 00000029`3cbef3e0 00000029`3cbef3e0 : python39!PyEval_GetFuncDesc+0x39f
00000029`3cbef2e0 00007ff8`269c74fa     : 0000012c`e42df230 0000012c`e3f843a0 00000000`00000040 00007ff8`26921c85 : python39!PyEval_EvalFrameDefault+0xf05
00000029`3cbef440 00007ff8`26a3a662     : 0000012c`e38a2440 0000012c`e392a910 0000012c`e392aa78 0000012c`e42df230 : python39!PyEval_EvalFrameDefault+0x4f6a
00000029`3cbef4f0 00007ff8`26a3a748     : 0000012c`e3f843a0 0000012c`e3f72d00 00007ff8`26b8f5d4 0000012c`e3f843a0 : python39!PyRun_FileExFlags+0x4f2
00000029`3cbef5a0 00007ff8`26a3a139     : 00000000`00000000 0000012c`e38a0170 0000012c`e414b1c8 00007ff8`26bbe5d8 : python39!PyRun_FileExFlags+0x5d8
00000029`3cbef5e0 00007ff8`26a3823f     : 00000000`00000001 00000000`ffffffff 0000012c`e3f72d00 0000012c`e3f77680 : python39!PyRun_StringFlags+0x209
00000029`3cbef650 00007ff8`26a38400     : 0000012c`e38a0170 0000012c`e38ab020 0000012c`00000001 00000029`3cbef820 : python39!PyRun_InteractiveOneFlags+0x60f
00000029`3cbef6f0 00007ff8`2682bf9d     : 0000012c`e38a0170 0000012c`e3fa5ec0 0000012c`e3fa5ea0 00000029`3cbef820 : python39!PyRun_SimpleFileExFlags+0x60
00000029`3cbef720 00007ff8`2682cc5d     : 0000012c`e38affe0 0000012c`e38affe0 00007ff8`26c2aac0 00000000`00000001 : python39!PyObject_GC_IsFinalized+0x958d
00000029`3cbef7f0 00007ff8`2682db92     : 00000029`3cbef900 00000029`3cbef900 00000000`00000000 00000000`00000000 : python39!PyObject_GC_IsFinalized+0xa24d
00000029`3cbef870 00007ff8`2682dc06     : 00000000`00000000 bc000400`00000000 00007ff6`79303278 00007ff6`79301dd9 : python39!Py_RunMain+0xc22
00000029`3cbef8e0 00007ff6`793014f8     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : python39!Py_Main+0x26
00000029`3cbef930 00007ff8`ce247034     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : python!OPENSSL_Applink+0x398
00000029`3cbef970 00007ff8`ced42651     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
00000029`3cbef9a0 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21


STACK_COMMAND:  ~0s; .ecxr ; kb

SYMBOL_NAME:  win32u!NtUserGetHDevName+14

MODULE_NAME: win32u

IMAGE_NAME:  win32u.dll

FAILURE_BUCKET_ID:  BREAKPOINT_80000003_win32u.dll!NtUserGetHDevName

OS_VERSION:  10.0.19041.1

BUILDLAB_STR:  vb_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  10.0.19041.1110

FAILURE_ID_HASH:  {e0b4ec90-6d57-8752-b67a-0e26c0df3fb2}

Followup:     MachineOwner
---------


@fahminlb33 fahminlb33 added the bug report Bug is reported by user, not yet confirmed by the core team label Aug 1, 2021
@fahminlb33 fahminlb33 changed the title Orange3 version 3.29.3 crashes when using two monitor setup Orange3 version 3.29.3 crashes when using two monitor in Extend mode Aug 1, 2021
@markotoplak
Copy link
Member

markotoplak commented Aug 3, 2021

Thanks for the in-depth report. Could you perhaps check which qt version do you have there? Look at pyqt and qt entries of conda list.

If you are willing to experiment - what happens if you try to use some other version of Qt? With conda-forge, you are most likely getting 5.12 (this is the same one we distribute in our official Windows packages).

Testing with Qt 5.15 would be ideal, but this may be difficult because official conda(-forge) packages past 5.12 do not exist yet.

@fahminlb33
Copy link
Author

I indeed have Qt 5.12.9. I'll try using pip to install latest version of Qt to see if the problem will be resolved.

image

@fahminlb33
Copy link
Author

Unfortunately after I upgraded PyQt5 using pip to version 5.15.2 Orange could not be started with the following error:

Warning: QT_DEVICE_PIXEL_RATIO is deprecated. Instead use:
   QT_AUTO_SCREEN_SCALE_FACTOR to enable platform plugin controlled per-screen factors.
   QT_SCREEN_SCALE_FACTORS to set per-screen DPI.
   QT_SCALE_FACTOR to set the application global scale factor.
QWidget: Must construct a QApplication before a QWidget

image

@janezd
Copy link
Contributor

janezd commented Aug 27, 2021

This seems to be a problem in Qt. We don't know how to (and probably cannot) fix it, sorry ...

@janezd janezd closed this as completed Aug 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug report Bug is reported by user, not yet confirmed by the core team
Projects
None yet
Development

No branches or pull requests

3 participants