YARN's container-executor.c uses fts(3) to implement the recursive deletion of directories in delete_path(). However fts(3) isn't available everywhere (e.g. Solaris) as it came originally from BSD and isn't a POSIX API. There is an equivalent POSIX API, nftw(3) that's more widely available, including BSD, OSX, Linux and Solaris.

fts(3) is an iterative API whereas nftw(3) is callback-based but the two APIs provide broadly equivalent functionality.

I have a patch that implements delete_path() using either fts(3) as at present, or nftw(3). I can provide that as-is but I'm wondering if it wouldn't be better to just switch over to the POSIX nftw(3) API rather than having to do compile-time probing. It would be less code and in case of changes/bugs in the deletion logic, only one thing to change rather than two.

Thoughts?

--
Alan Burlison
--

Reply via email to