Follow-up Comment #7, bug #47261 (project findutils): I wrote a script to determine what all the stat() calls are looking at, and it turns out my guess was wrong. There are a lot of files that find doesn't find, and I doubt it's because they're not in the filesystem. E.g., all of /etc is missing.
There are the expectable differences in /proc. But other than that, the first run ends at: newfstatat(/sys/kernel/debug/tracing/events/task/task_newtask) newfstatat(/sys/kernel/debug/tracing/events/task/task_rename) newfstatat(/sys/kernel/debug/tracing/events/raw_syscalls) newfstatat(/sys/kernel/debug/tracing/events/raw_syscalls/sys_enter) newfstatat(/sys/kernel/debug/tracing/events/raw_syscalls/sys_exit) but the second run continues with: newfstatat(/sys/kernel/debug/tracing/options) newfstatat(/sys/kernel/debug/tracing/instances) newfstatat(/sys/kernel/debug/tracing/per_cpu) newfstatat(/sys/kernel/debug/tracing/per_cpu/cpu0) newfstatat(/sys/kernel/debug/tracing/trace_stat) newfstatat(/sys/kernel/debug/usb) and goes on to walk through /usr and /etc. Looking at the end of the first run shows no obvious reason why find would terminate prematurely. The script I used is: #! /bin/perl use strict; my($debug) = 0; my($cwd) = ''; my(@file); while (<>) { chomp; print "$_ = '$_' n" if $debug; if (m/^open("(.*)", O_[^)]+) += (d+)$/) { my($name) = $1; my($fd) = $2; $file[$fd] = &append($cwd, $name); print "$file[$fd] = '$file[$fd]'n" if $debug; } elsif (m/^openat([^,]+, "(.*)", O_[^)]+) += (d+)$/) { my($name) = $1; my($fd) = $2; $file[$fd] = &append($cwd, $name); print "$file[$fd] = '$file[$fd]'n" if $debug; } elsif (m/^fchdir((d+))/) { my($fd) = $1; $cwd = $file[$fd]; print "$cwd = '$cwd'n" if $debug; } elsif (m/^newfstatat([^,]+, "(.*)", {/) { my($name) = $1; $name = &append($cwd, $name); $name = '/' if $name eq ''; print "newfstatat(", $name, ")n"; } } sub append { my($cwd, $name) = @_; if ($name eq '.') { $name = $cwd; } elsif ($name eq '..') { $name = $cwd; $name =~ s%/[^/]*$%%; } elsif ($name !~ m%^/%) { $name = $cwd . '/' . $name; } elsif ($name eq '/') { $name = ''; } return $name; } _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?47261> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/