libuv: Process hangs on the call to PowerRegisterSuspendResumeNotification on Windows

  • Version: 1.20.3
  • Platform: Windows 10 (x64) virtual machine
  • Environment: cmake launched from Jenkins, which runs as a system service

I’m using cmake and the process is hanging inside some code belonging to libuv: the uv__register_system_resume_callback function on the call to PowerRegisterSuspendResumeNotification.

The call stack is shown in the following screenshot from process explorer (note that the process had been stuck overnight for more than 10 hours at this point):

cmake_callstack

As shown in the following disassembly, the offset inside the cmake process corresponds to the uv__register_system_resume_callback function inside libuv:

cmake_hanging_func

The strange thing is that none of the documentation suggests that the PowerRegisterSuspendResumeNotification function should block, so I can’t see why it’s hanging. It seems to be stuck waiting on a mutex deep in the Kernel.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 20 (9 by maintainers)

Most upvoted comments

I’m seeing this too, on 64-bit Windows 7 Professional, virtualized on KVM, with no power management features exposed in ACPI.

@bzoz

  • OS Version: 64-bit Microsoft Windows 10 Professional, version 10.0.17134
  • Installed Software:
    • Trend anti-virus (IT provided)
    • ManageEngine (IT provided)
    • Jenkins Slave Agent + Java
    • Visual Studio
    • CMake
  • Virtualization: Running on VMWare vSphere 6 Enterprise (ESXi 6.0.0 build-5224934)