Ticket #283 (new defect)

Opened 3 years ago

Last modified 3 years ago

Swish keeps freezing explorer

Reported by: anonymous Owned by: alamaison
Priority: critical (affects core workflow) Milestone:
Component: undefined Version: 0.8.2
Keywords: Cc:

Description

Seems like a good product but Explorer keeps freezing and I've yet to manage to edit any SFTP connection I've added...

Change History

comment:1 Changed 3 years ago by alamaison

  • Priority changed from major (affects peripheral workflow) to critical (affects core workflow)

We need more information than this to diagnose the problem.

  • Version of Swish?
  • Version of Windows?
  • 32bit or 64bit
  • Does Explorer ever recover from a 'freeze'?
  • Does it only happen when you are using Swish?
  • Can you list the exact steps you take that produce a freeze, so that we can reproduce it?
  • You mention editing the connections. Is that related to Explorer freezing, or is that a separate problem.

comment:2 Changed 3 years ago by GreenReaper

I'm not the guy above, but it's happening here, too. Vista SP2 32-bit, on a quad-core machine. Creating a connection to a machine on the local network (192.168.0.x) works, but double-clicking to connect to it gets a "Not responding" immediately. There does not appear to be any recovery.

It has occasionally gotten to the point at which it pops up a dialog asking me whether I want to accept the server's key, but usually freezes before then.

I even had it connecting at one point but then it blocked at entering the password. The suggests some kind of race condition or misuse of handles (see the stacktraces below; it looks like it's trying to get a lock to create a dialog).

The user above was probably expecting to be able to edit using a similar dialog to that which they created it with. This doesn't seem to be possible in the current version. Incidentally, just right-clicking on the connection (which is what you might do to get an edit option) seems to try to open it which is not particularly expected.

There are two threads with the Swish DLL within them:

"BrowserNewThreadProc?"

ntdll.dll!_KiFastSystemCallRet@0()

ntdll.dll!_NtWaitForSingleObject@12() + 0xc bytes
kernel32.dll!_WaitForSingleObjectEx@12() + 0x84 bytes
kernel32.dll!_WaitForSingleObject@8() + 0x12 bytes
shell_folder-com_dll.dll!0ce49f47()
[Frames below may be incorrect and/or missing, no symbols loaded for shell_folder-com_dll.dll]
shell_folder-com_dll.dll!0ce4c376()
shell_folder-com_dll.dll!0ce75fc0()
shell_folder-com_dll.dll!0ce4bfbc()
shell_folder-com_dll.dll!0ce3f068()
shell_folder-com_dll.dll!0cea3d78()
shlwapi.dll!_IUnknown_SetSite@8() - 0x578d bytes
shell32.dll!ExplorerCommandItem::Init() + 0x88 bytes
shell32.dll!CFolderBandModuleInner::_UpdateButton() + 0x5a bytes
shell32.dll!CFolderBandModuleInner::_CreateButtons() + 0x9b bytes
shell32.dll!CFolderBandModuleInner::_RefreshButtons() + 0x1f bytes
shell32.dll!CFolderBandModuleInner::s_WndProc() - 0x19aa4 bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3 bytes
user32.dll!_DispatchMessageWorker@8() + 0x19e bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
shell32.dll!_SHProcessMessagesUntilEventEx@16() + 0xab bytes
shell32.dll!_SHProcessMessagesUntilEvent@12() + 0x18 bytes
shell32.dll!CDefView::_InvokeEnumOperation() + 0x157 bytes
shell32.dll!CDefView::_InvokeFirstEnumOperation() + 0x18 bytes
shell32.dll!CDefView::CreateViewWindow3() + 0x355 bytes
shdocvw.dll!FileCabinet_CreateViewWindow2() - 0x15ff bytes
shdocvw.dll!CBaseBrowser2::CreateViewWindow?() + 0x93 bytes
browseui.dll!CCommonBrowser::CreateViewWindow?() + 0x26 bytes
browseui.dll!CShellBrowser2::CreateViewWindow?() + 0x2b bytes
shdocvw.dll!CBaseBrowser2::_CreateNewShellView() + 0x241 bytes
shdocvw.dll!CBaseBrowser2::_CreateNewShellViewPidl() + 0xa1 bytes
shdocvw.dll!CBaseBrowser2::_NavigateToPidl() + 0x12b bytes
browseui.dll!CCommonBrowser::_NavigateToPidl() + 0x23 bytes
browseui.dll!CShellBrowser2::_NavigateToPidl() + 0x23 bytes
shdocvw.dll!CBaseBrowser2::_OnGoto() + 0xcc bytes
shdocvw.dll!CBaseBrowser2::WndProcBS() - 0xf8f9 bytes
browseui.dll!CCommonBrowser::WndProcBS() + 0x26 bytes
browseui.dll!CShellBrowser2::WndProcBS() + 0xa57 bytes
browseui.dll!IEFrameWndProc() + 0x59 bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3 bytes
user32.dll!_DispatchMessageWorker@8() + 0x19e bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
browseui.dll!CBrowserFrame::FrameMessagePump?() + 0xa6 bytes
browseui.dllBrowserThreadProc() + 0x5e bytes
browseui.dllBrowserNewThreadProc() + 0x43 bytes
kernel32.dll!@BaseThreadInitThunk@12?() + 0x12 bytes
ntdll.dll___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll__RtlUserThreadStart@8() + 0x1b bytes

"WrapperThreadProc?"

ntdll.dll!_KiFastSystemCallRet@0()

user32.dll!_NtUserCallHwndParamLock@12() + 0xc bytes
user32.dll!_InternalDialogBox@24() + 0x6d bytes
user32.dll!_DialogBoxIndirectParamAorW@24() + 0x36 bytes
user32.dll!_DialogBoxIndirectParamW@20() + 0x1b bytes
shell_folder-com_dll.dll!0ce966c5()
[Frames below may be incorrect and/or missing, no symbols loaded for shell_folder-com_dll.dll]
shell_folder-com_dll.dll!0ce99100()
kernel32.dll!_HeapFree@12() + 0x14 bytes

comment:3 Changed 3 years ago by GreenReaper

  • Version set to 0.8.2

comment:4 Changed 3 years ago by GreenReaper

Oh, and here's a major clue: opening the connection by expanding the tree view on the left doesn't trigger this bug. And if you click the item you just created and wait for the browser bar to update with "Remove this connection" before double-clicking, it works, too.

It looks like the issue is that it's trying update the browser bar at the same time as it's showing the dialog and this causes a deadlock. Again, check your handles.

Note: See TracTickets for help on using tickets.