Opened 4 years ago
#13605 new Bugs
Filedescriptor leak in boost::process
| Reported by: | 4hopp | Owned by: | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | process |
| Version: | Boost 1.64.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
Hi,
I am using boost 1.64.0 on linux. I am using boost process to execute subprocesses. When, for some reason, the path does not point to a file, or when the file is not executable, then I keep leaking file descriptors.
Minimal example:
#include <boost/process.hpp>
#include <boost/process/extend.hpp>
#include <boost/filesystem.hpp>
#include <boost/asio.hpp>
#include <sys/prctl.h>
int main() {
namespace bp = boost::process;
namespace ex = bp::extend;
system("ls -l /proc/self/fd");
try {
boost::asio::io_service ios;
bp::child process ("/does/not/exist", ios);
process.wait();
} catch (const bp::process_error& e) {
// A process_error has been thrown - there is no file /does/not/exist
}
system("ls -l /proc/self/fd");
}
Example output:
total 0 lrwx------ 1 hopp hopp 64 Jun 14 12:04 0 -> /dev/pts/3 lrwx------ 1 hopp hopp 64 Jun 14 12:04 1 -> /dev/pts/3 lrwx------ 1 hopp hopp 64 Jun 14 12:04 2 -> /dev/pts/3 lr-x------ 1 hopp hopp 64 Jun 14 12:04 3 -> /proc/19629/fd total 0 lrwx------ 1 hopp hopp 64 Jun 14 12:04 0 -> /dev/pts/3 lrwx------ 1 hopp hopp 64 Jun 14 12:04 1 -> /dev/pts/3 lrwx------ 1 hopp hopp 64 Jun 14 12:04 2 -> /dev/pts/3 lr-x------ 1 hopp hopp 64 Jun 14 12:04 3 -> pipe:[82382] lr-x------ 1 hopp hopp 64 Jun 14 12:04 4 -> /proc/19632/fd
The file descriptor leaked by the example is 3 -> pipe:[82382]. Is this a bug or am I doing something wrong?
Note:
See TracTickets
for help on using tickets.
