prevent double free in cleanup code (#17968)
merge 3.3 (#17968)
- Issue #17977: The documentation for the cadefault argument's default value
  in urllib.request.urlopen() is fixed to match the code.
- Issue #17977: The documentation for the cadefault argument's default value
  in urllib.request.urlopen() is fixed to match the code.
Backout c89febab4648 following private feedback by Guido.
(Issue #17807: Generators can now be finalized even when they are part of a reference cycle)