uvloop icon indicating copy to clipboard operation
uvloop copied to clipboard

TimerHandle.when() segfaults if called after callback

Open j0x539 opened this issue 3 years ago • 1 comments

  • uvloop version: uvloop==0.16.0
  • Python version: 3.10.4
  • Platform: Linux-5.17.5-200.fc35.x86_64-x86_64-with-glibc2.34
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: Yes
  • Does uvloop behave differently from vanilla asyncio? How?: It segfaults.

Calling when() on a TimerHandle object after callback has been executed causes a core dump.

import uvloop
import asyncio


async def main():
    loop = asyncio.get_running_loop()
    timer = loop.call_later(0.1, lambda: None) # call any function
    await asyncio.sleep(0.2)
    timer.when() # segfault happens here
    
uvloop.install()
asyncio.run(main())

j0x539 avatar May 13 '22 16:05 j0x539

Thanks for the report and the PR! This is now fixed in c39afff.

fantix avatar Jul 16 '22 21:07 fantix

This is now included in 0.17.0.

fantix avatar Sep 15 '22 01:09 fantix