python-dbus-next icon indicating copy to clipboard operation
python-dbus-next copied to clipboard

Cannot close underlying sockets

Open yurac opened this issue 3 years ago • 1 comments

I created several instances and got ResourceWarnings as follows: /usr/lib/python3.6/site-packages/dbus_next/introspection.py:172: ResourceWarning: unclosed <socket.socket fd=26, family=AddressFamily.AF_UNIX, type=2049, proto=0, raddr=/run/dbus/system_bus_socket>

Looking into the source code, it seems that there is no place that closes bus underlying sockets. There is the method disconnect() that calls shutdown() but not close(). There is the method _finalize(). However I am not sure how to use these. Close() is never called.

I am currently using the following, which is awkward and not sure if correct: bus.disconnect() bus._finalize() await bus.wait_for_disconnect() bus._sock.close()

Any idea how to correctly close sockets?

yurac avatar Oct 28 '22 13:10 yurac

From what I can tell, the socket should be closed after shutdown is called. https://stackoverflow.com/a/598759

I can submit a PR for this but I am slightly concerned that this project is dead/dying.

elParaguayo avatar Jan 07 '23 19:01 elParaguayo