Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-10078

Reactos hangs if a gui thread hangs

    XMLWordPrintable

Details

    • New Feature
    • Resolution: Cannot Reproduce
    • Major
    • None
    • Win32SS
    • None

    Description

      This is a ridiculous bug. I'm not sure if it is reported elsewhere but I keep running on it and I'm losing patience. This is a terrible regression and should be fixed asap. To replicate: use process hacker to suspend notepad. then move the window of process hacker over notepad. Then the gui of every application stops working. Just like win98 hanged if something hanged. This is a joke. I got a backtrace of how this hangs:

             Priority 13 BasePriority 13 PriorityDecrement 0
              ChildEBP RetAddr  
              ef32e754 8048fd72 nt!KiSwapContext+0x19
              ef32e7bc f75137e1 nt!KeWaitForMultipleObjects+0x6b2 (FPO: [Non-Fpo]) (CONV: stdcall) [c:\users\john\repos\ros-trunk\ntoskrnl\ke\wait.c @ 834]
              ef32e848 f750e1bd win32k!co_MsqSendMessage+0x6a1 (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\msgqueue.c @ 1213]
              ef32e8bc f750b4ca win32k!co_IntSendMessageTimeoutSingle+0x4ed (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\message.c @ 1430]
              ef32e8f0 f750b47e win32k!co_IntSendMessageTimeout+0x3a (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\message.c @ 1477]
              ef32e918 f751d353 win32k!co_IntSendMessage+0x2e (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\message.c @ 1270]
              ef32e950 f751e224 win32k!co_IntUpdateWindows+0xc3 (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\painting.c @ 537]
              ef32e968 f751c187 win32k!UserUpdateWindows+0x64 (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\painting.c @ 607]
              ef32e97c f7518fb4 win32k!co_UserRedrawWindow+0x217 (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\painting.c @ 983]
              ef32eac4 f74efe05 win32k!DefWndDoSizeMove+0xaa4 (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\nonclient.c @ 470]
              ef32eaec f74ef21b win32k!DefWndHandleSysCommand+0xe5 (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\defwnd.c @ 125]
              ef32ebe0 f7509d4a win32k!IntDefWindowProc+0x12b (FPO: [Non-Fpo]) (CONV: fastcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\defwnd.c @ 387]
              ef32ecf0 80505499 win32k!NtUserMessageCall+0x15a (FPO: [Non-Fpo]) (CONV: stdcall) [c:\users\john\repos\ros-trunk\win32ss\user\ntuser\message.c @ 2358]
       

      We are probably sending a message to the hanged window and then wait for it which doesn't return. As a result all gui threads just hang.

      Attachments

        1. nonclient.c.patch
          0.6 kB
        2. Screenshot7.png
          Screenshot7.png
          67 kB
        3. Screenshot8.png
          Screenshot8.png
          67 kB
        4. Screenshot9.png
          Screenshot9.png
          68 kB
        5. suspended.patch
          11 kB
        6. test.tgz
          36 kB

        Issue Links

          Activity

            People

              bug zilla Bug Zilla
              Smiley Giannis Adamopoulos
              Votes:
              4 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: