Sorry. My bad :) After tracing postmaster as Alvaro suggested, I found the following fragment (one of thousand):
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0 stat64("/usr/share/zoneinfo/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Australia/Eucla", {st_mode=S_IFREG|0644, st_size=446, ...}) = 0 open("/usr/share/zoneinfo", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 24 getdents64(24, /* 70 entries */, 32768) = 2032 close(24) = 0 And then found a link /usr/share/zoneinfo/Australia/Australia to /usr/share/zoneinfo/Australia/Australia. Clearly, this isn't PostgreSQL fault. Removing that link solved it. Thanks a lot. A simple suggestion that would help in diagnostics: A message like 'too many dir entries demanded' is more useful if the path in question is shown. For example, a message like: *Too many dir entries demanded. The path is "/usr/share/zoneinfo/Australia/Australia/Australia/Australia/Eucla"* gives the exact clue on what's wrong and doesn't require developer's time. I'm really grateful for your help, Alexey On 29 September 2010 00:19, Tom Lane <t...@sss.pgh.pa.us> wrote: > Please trace the postmaster, not pg_ctl, as Alvaro suggested > (or else add the -f flag to the strace call). > > regards, tom lane > -- Alexey Parshin, http://www.sptk.net