Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible pseudo-terminal descriptors leak #642

Open
destitutus opened this issue Nov 30, 2023 · 0 comments
Open

Possible pseudo-terminal descriptors leak #642

destitutus opened this issue Nov 30, 2023 · 0 comments

Comments

@destitutus
Copy link

Environment details

  • OS:
    Distributor ID: Ubuntu

  • OS version:
    Description: Ubuntu 22.04.3 LTS
    Release: 22.04
    Codename: jammy

  • node-pty version:
    1.0.0

Issue description

After spawning two terminals and closing the first, the number of terminals used by the system does not decrease.

sudo /sbin/sysctl -a | grep kernel.pty

# or

ls -al /dev/pts | wc -l

Code to reproduce

import * as os from 'node:os'
import * as pty from 'node-pty'


function runTestShell() {
  const ptyProcess = pty.spawn('bash', [], {
    name: 'xterm-color',
    cols: 80,
    rows: 30
  })

  ptyProcess.onData((data) => {
    process.stdout.write(data)
  })
  ptyProcess.write('tty\n')
  return ptyProcess
}

const p1 = runTestShell()
const p2 = runTestShell()

setTimeout(() => {
  console.log('destroy!')
  p1.destroy()
}, 5000)

Ways to check.

  1. Check the count of resources with sudo /sbin/sysctl -a | grep kernel.pty.nr
  2. Run js script and check the count of resources before calling destroy on p1
  3. Check the count of resources after calling destroy on p1
  4. Check the count of resources after script termination
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant