Skip to content

uvloop is broken for abstract sockets - create_unix_connection does not work for abstract sockets as libuv does not support them #528

@GrahamBarnett

Description

@GrahamBarnett
  • uvloop version: master
  • Python version: 3.10+
  • Platform: unix
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: yes
  • Does uvloop behave differently from vanilla asyncio? How?: yes

uvloop:
tr = UnixTransport.new(self, protocol, None, waiter, context)
tr.connect(path) <--- uses uv_pipe_connect which uses uv__strscpy which assumes zero terminated string

asyncio:
sock_connect -> getsockaddrarg (in socketmodule.c) which uses memcpy

I have raised this with libuv as issue: libuv/libuv#3911

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions