discovery.build( ) raises ResourceWarning: unclosed <ssl.SSLSocket fd=13, #618
Steps to reproduce
Instantiate a dataflow, v1b3 API with googleapis.discovery
Making sure to follow these steps will guarantee the quickest resolution possible.
The text was updated successfully, but these errors were encountered:
@berendo Thank you!
This is straightforward to reproduce:
from googleapiclient import discovery client = discovery.build("dataflow", "v1b3")
The request to fetch the discovery doc results in the ResourceWarning.
from googleapiclient import discovery import requests import httplib2 # Doesn't raise socket resource warning dataflow_discovery_doc = requests.get("https://dataflow.googleapis.com/$discovery/rest?version=v1b3").json() client = discovery.build_from_document(dataflow_discovery_doc) # Raises socket resource warning client = discovery.build("dataflow", "v1b3") # Function to retrieve public discovery doc doc = discovery._retrieve_discovery_doc("https://www.googleapis.com/discovery/v1/apis", httplib2.Http(), cache_discovery=False)
import httplib2 http = httplib2.Http() http.request("http://example.com")
I'm not sure if there's a good way to ask that the connection be closed in httplib2. I filed httplib2/httplib2#148 to ask the maintainers.
From similar discussions on requests (psf/requests#3912) it may be okay to let this be.
Apologies for leaving this unattended for so long.
f this is actively causing pain you can manually call the
from googleapiclient import discovery client = discovery.build("drive", "v3") client._http.http.close()
Ideally the library should clean up
🦕httplib2 leaves sockets open by default. This can lead to situations where programs run out of available sockets. httplib2 added a method last year to clean up connections. https://github.com/httplib2/httplib2/blob/9bf300cdc372938f4237150d5b9b615879eb51a1/python3/httplib2/__init__.py#L1498-L1506 This PR adds two ways to close http connections. The interface is intentionally similar to the proposed design for GAPIC clients. googleapis/gapic-generator-python#575
🤖I have created a release \*beep\* \*boop\* --- ### [1.12.2](https://www.github.com/googleapis/google-api-python-client/compare/v1.12.1...v1.12.2) (2020-09-23) ### Bug Fixes * add method to close httplib2 connections ([#1038](https://www.github.com/googleapis/google-api-python-client/issues/1038)) ([98888da](https://www.github.com/googleapis/google-api-python-client/commit/98888dadf04e7e00524b6de273d28d02d7abc2c0)), closes [#618](https://www.github.com/googleapis/google-api-python-client/issues/618) [/github.com/httplib2/httplib2/blob/9bf300cdc372938f4237150d5b9b615879eb51a1/python3/httplib2/__init__.py#L1498-L1506](https://www.github.com/googleapis//github.com/httplib2/httplib2/blob/9bf300cdc372938f4237150d5b9b615879eb51a1/python3/httplib2/__init__.py/issues/L1498-L1506) [googleapis/gapic-generator-python#575](https://www.github.com/googleapis/gapic-generator-python/issues/575) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please).