On Tue, 08 Dec 2020 16:17:11 +0100, Steinar H. Gunderson wrote: > On Tue, Dec 08, 2020 at 04:14:32PM +0100, gregor herrmann wrote: > > It looks like changing the value to 131072 doesn't work. > > Hmm, perhaps one also needs to try raising rlim.rlim_max, which works since > we're root? What happens if you do something like > > rlim.rlim_cur = rlim.rlim_max = 131072;
This looks much better indeed :) With #v+ --- a/updatedb.cpp +++ b/updatedb.cpp @@ -743,8 +743,16 @@ rlimit rlim; if (getrlimit(RLIMIT_NOFILE, &rlim) != -1) { rlim_t wanted = std::max<rlim_t>(rlim.rlim_cur, 131072); - rlim.rlim_cur = std::min<rlim_t>(wanted, rlim.rlim_max); + rlim.rlim_cur = rlim.rlim_max = wanted; setrlimit(RLIMIT_NOFILE, &rlim); // Ignore errors. + + if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) { + fprintf(stderr, "Hint: getrlimit failed.\n"); + } else { + fprintf(stderr, "Hint: getrlimit: current limit is %lu, max limit is %lu.\n", + rlim.rlim_cur, rlim.rlim_max); + } + } conf_prepare(argc, argv); #v- I get: # /usr/sbin/updatedb.plocate Hint: getrlimit: current limit is 131072, max limit is 131072. # echo $? 0 Cheers, gregor -- .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06 `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe `- NP: Joe Cocker: Pardon Me Sir
signature.asc
Description: Digital Signature