jeff.hykinJ

Deno.run Strange Issue

I use
Deno.run
  • stdout/signals/etc a lot, but this behavior is beyond my current debugging abilities
have a command
nix eval ...
which works fine in a python subshell, and on the commandline. However, Deno.run with piped stdout makes it hang indefinitely. To be explicit, in this block:
process.status().then(callback).catch(callback)
the callback doesn't run until a
.kill()
is used (SIGHUP/SIGINT/SIGKILL). Tested on Deno 1.29.4 and Deno 1.22.0 for good measure.

What is even more strange is trying to bypass the problem with hackery also fails.
All of these round-about execution methods (translated to Deno.run) also hang indefinitely:

  • bash -c '[command]'
  • bash ./file_with_command.sh
  • bash -i ./file_with_command.sh
In particular the
bash -i
method not only hangs, but also exclusively makes it so that ctrl+C, ctrl+D, and even ctrl+Z are ignored; I have to kill the deno process from another termial.

Env:
bash -c env
prints out the EXACT same env vars for Deno/Python/CLI
Cwd: deno/python/cli all have the same working directory
Interactivity: running it with
deno repl
has been the same as
deno run

Piping:
Manually closing the stdout pipe doesn't work/help.
Removing
stdout: 'piped'
, makes command not-hang (but defeats the point).
Adding
stderr: 'piped'
still causes a hang.

I don't even know what else could be possibly causing a difference (Deno & Python code attached as comments)
Was this page helpful?