No, each SSH instance starts its own Octave session. "Or do you mean each client is somehow connecting to a single instance of Octave that stays running in the background? " Yes, each client is running octave over SSH through PuTTY, using X11 forwarding to xming. "What do you mean by an "Octave server"? Is each client running its own instance of Octave over an SSH session? If so, then when Octave exits the gnuplot processes should be cleaned up." My apologies: Zombie processes are being left behind on my server when the clients are done with their Octave session. For clarity, is the bug that gnuplot figures are "crashing" (disappearing?), or that Octave is crashing, or that zombie processes are being left behind on your server when the clients are done with their Octave session?" The eventual fix for that bug may mean no more gnuplot processes left over, but that's not the real problem with your setup. There is already another bug about Octave creating zombie processes in a different way, so I'll close this bug as a duplicate of bug #37591. Fix that problem with your workflow and you won't have zombie processes on your system. Not used by this extension directly, but useful in tasks.json if its checked into repositories. Having leftover unused running Octave sessions seems more wasteful and serious to me than defunct gnuplot processes. This extension contributes the following settings: gnuplot.gnuplotPath: Path to the Gnuplot executable.
You should either arrange for your users to "close all" before exiting, or to actually exit Octave before closing putty, figure out how to make putty close the SSH session properly, or have a cleanup process on the server that takes care of leftover Octave processes that users have left behind after logging off. So I think this is only partly a bug in Octave, but the main issue you're having is that the connection is closed, killing gnuplot but not killing Octave. It was originally created to allow scientists and students to visualize mathematical functions and data interactively.
The source code is copyrighted but freely distributed (i.e., you don't have to pay for it).
But once Octave is killed, the zombies are taken care of by the system. Gnuplot is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other platforms. I can achieve the same result in a desktop session by simply plotting a gnuplot figure and then killing the gnuplot process outside of Octave. The reason for zombie processes is that the gnuplot process has exited (probably because gnuplot detected that your DISPLAY disconnected) but Octave is still running and has not cleaned up the child process resources that it spawned. Yes, this is the same behavior I observe (except I can't figure out how to close an SSH session while leaving the octave process running on the remote).