Adding a band during do_global_wiggle_all sometimes causes a hang

Started by Timo van der Laan

Timo van der Laan Lv 1

I routinely use adding a band to stop scripts in a decent state. (Modified the scripts to do that)

However sometimes this causes a hang in the game client.

infjamc Lv 1

And on a related note… removing bands while a global wiggle is in the process of being stopped may also cause the same result.

spmm Lv 1

agreed causes problems with some scripts, not all and not when just wiggling

spdenne Lv 1

I just got my client non-responsive, adding a band. Three active threads using roughly 10 million, 5 million, and half a million cycles per second respectively:

ntoskrnl.exe!memset+0x64a
ntoskrnl.exe!KeWaitForMultipleObjects+0xd52
ntoskrnl.exe!KeWaitForMutexObject+0x19f
ntoskrnl.exe!__misaligned_access+0xba4
ntoskrnl.exe!__misaligned_access+0x1821
ntoskrnl.exe!KeWaitForMultipleObjects+0xf5d
ntoskrnl.exe!KeWaitForMultipleObjects+0x26a
ntoskrnl.exe!NtWaitForSingleObject+0x40f
ntoskrnl.exe!IoReportTargetDeviceChange+0xe6d
ntoskrnl.exe!KeSynchronizeExecution+0x3a43
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x6c0
wow64cpu.dll!TurboDispatchJumpAddressEnd+0xf5
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x429
ntdll.dll!RtlIsDosDeviceName_U+0x24c87
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForMultipleObjects+0x15
kernel32.dll!WaitForMultipleObjectsEx+0x8e
kernel32.dll!WaitForMultipleObjects+0x18
dsound.dll+0x4280
dsound.dll+0x4fc3
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36

ntoskrnl.exe!memset+0x64a
ntoskrnl.exe!KeWaitForMultipleObjects+0xd52
ntoskrnl.exe!KeWaitForMutexObject+0x19f
ntoskrnl.exe!__misaligned_access+0xba4
ntoskrnl.exe!__misaligned_access+0x1821
ntoskrnl.exe!KeWaitForMultipleObjects+0xf5d
ntoskrnl.exe!KeWaitForMultipleObjects+0x26a
ntoskrnl.exe!NtWaitForSingleObject+0x40f
ntoskrnl.exe!IoReportTargetDeviceChange+0xe6d
ntoskrnl.exe!KeSynchronizeExecution+0x3a43
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x6c0
wow64cpu.dll!TurboDispatchJumpAddressEnd+0xf5
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x429
ntdll.dll!RtlIsDosDeviceName_U+0x24c87
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForMultipleObjects+0x15
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36

ntoskrnl.exe!memset+0x64a
ntoskrnl.exe!KeWaitForMultipleObjects+0xd52
ntoskrnl.exe!KeWaitForMutexObject+0x19f
ntoskrnl.exe!__misaligned_access+0xba4
ntoskrnl.exe!__misaligned_access+0x1821
ntoskrnl.exe!KeWaitForMultipleObjects+0xf5d
ntoskrnl.exe!KeWaitForMultipleObjects+0x26a
ntoskrnl.exe!NtWaitForSingleObject+0x40f
ntoskrnl.exe!IoReportTargetDeviceChange+0xe6d
ntoskrnl.exe!KeSynchronizeExecution+0x3a43
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x6c0
wow64cpu.dll!TurboDispatchJumpAddressEnd+0xf5
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x429
ntdll.dll!RtlIsDosDeviceName_U+0x24c87
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForMultipleObjects+0x15
kernel32.dll!WaitForMultipleObjectsEx+0x8e
kernel32.dll!WaitForMultipleObjects+0x18
dsound.dll+0x12da
dsound.dll+0x2e13
dsound.dll+0x2d94
dsound.dll+0x29ae
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36

spdenne Lv 1

My foldit app just hung again, with the same three threads using CPU, in dsound.dll+0x4f9d, WINMM.dll!timeEndPeriod+0x3f5, and dsound.dll!DirectSoundCreate+0x26664, and this time with a fourth thread at game_library.dll!library_main+0x261380

The circumstances were slightly different: this time I clicked on the cancel button to stop a script, while it s doing do_global_wiggle_backbone. The cursor has changed to the wait cursor, and CPU usage is really low (0.09, 0.04, and two <0.01%)

brow42 Lv 1

I've had many hangs, as spdenne says, almost always when I canceled a wiggle (no bands involved). First really noticed it during the recent Flu design puzzle after patching to the then-new main (up to 4 times in a day). Several of the hangs were during precise local wiggle, which is a really simple script. I couldn't see anything interesting in the log file.

Rav3n_pl Lv 1

Instead of updating dev/main just install 2 instances of foldit: one dev and second main. To copy solution between clients just share it to yourself.
I`m using windows dev and main and linux main on vm - not have "hanging" troubles.