-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Nitrooo/docker-py
#1Description
Hello.
It seems that in certain situations http socket isn't properly closed.
/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py:395: ResourceWarning: unclosed <socket.socket fd=7, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, raddr=/Users/stas/Library/Containers/com.docker.docker/Data/s60>
Python 3.5.1 on OSX.
Can be reproduced with following script:
import unittest
import docker
# Warning depends on code layout, so add here some ballast classes,
# probably that puts GC in specific position.
class A(object):
def __init__(self, node):
print('A')
class B(object):
def __init__(self, node):
print('B')
class C(object):
def __init__(self, node):
print('C')
class D(object):
def __init__(self, node):
print('D')
class E(object):
def __init__(self, node):
print('E')
class SingleNodePartition(object):
def __init__(self, node):
self.node = node
self.docker_api = docker.Client()
def container_exec(self, node, command):
exec_id = self.docker_api.exec_create(node, command, user='root')
output = self.docker_api.exec_start(exec_id)
def start(self):
self.container_exec(self.node, "ls")
self.container_exec(self.node, "ls")
self.container_exec(self.node, "ls")
self.container_exec(self.node, "ls")
class RecoveryTest(unittest.TestCase):
def test_node_partition(self):
failure = SingleNodePartition('node3')
failure.start()
if __name__ == '__main__':
unittest.main()
vangheem, avirshup, mattolenik, adamtheturtle, mateusz-ciesielski and 14 more
Metadata
Metadata
Assignees
Labels
No labels