llgoyal6/unclosed-resourcesv1.3.0Public
Unclosed resources
Answers one question about a codebase: where does it acquire an OS or database resource and not reliably release it? A leaked file handle or connection works fine until the day it does not, and then it surfaces as "too many open files" a long way from the line that caused it.
Read the full description
Covers Python open, socket, sqlite3.connect, requests.Session and subprocess.Popen; Go os.Open/Create/OpenFile, net.Dial and tls.Dial, sql.Rows from Query, and http.Response bodies from Get/Post and client.Do; JavaScript and TypeScript fs.openSync, fs.promises.open, createReadStream/createWriteStream, and a client checked out of a connection pool; and Java FileInputStream, FileOutputStream, FileReader, FileWriter, RandomAccessFile, Socket and JDBC Connection. Findings are ranked by consequence, because not all leaks matter equally: an acquisition inside a loop or a per-request handler is critical because it leaks per iteration or per request and will eventually exhaust the limit, an acquisition released only on the straight-line path is
Before you run it12 local tools
Everything here is checked on your machine when rote inspects the play. This page never learns what you have installed or which credentials you hold.
- ○bashlocal tool
Must be on your PATH when used. minimum version undeclared.
- ○python3local tool
Requires >=3.8.0. Run rote play inspect to check your host; unverified versions remain unknown.
- ○findlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○greplocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○xargslocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○sedlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○sortlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○wclocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○trlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○catlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○mktemplocal tooloptional
Must be on your PATH when used. minimum version undeclared.
- ○rmlocal tooloptional
Must be on your PATH when used. minimum version undeclared.
Inputs2, 1 required
rote asks for these before running and shows the defaults it will use.
- Root
rootDirectory tree whose source files should be audited for an unreleased resource
requiredstringexample.custom value allowed - Depth
depthHow many directory levels below root to search for source files
optionalstringdefault8example4custom value allowed
What it changes
No write operations are declared in this version's manifest.
Credentials remain in the recipient's local rote vault; this page and the publisher never receive them.
Runtime details
- rote CLIversion 0.62.0 or newer
- Servicesnone declared
- Digest
sha256:706db67dc377858212f5353d1abd45cba10fd141b64290f205b41b023d92e3ec - Archive size39956 bytes
- Published2026-09-04T04:33:17.832885+00:00
- Published withrote 0.78.0
Credential values and current readiness remain local. Opening this page never prompts for a credential, opens an authorization browser, or calls a service this play uses.
A play is a published, versioned automation package that runs on your own machine through rote, a free command-line tool. Opening this page installs nothing and runs nothing.