I have configured vsftpd with the "text_userdb_names=YES" option, which is expected to put user and group names into the listing. The server is configured with nscd and ldap. The users are chrooted into a 'general root' directory, but that doesn't affect the result (not chrooting still fails).
The problem: obvious timeouts and unsuccessful resolving of 'group names'. The 'ls' output contains correct usernames but instead of a groupname there is a number.
The new vsftpd uses a clone() with CLONE_NEWNET parameter instead of fork(). This puts the process accessing the files into a separate networking environment that cannot access any network. Neither the nscd unix socket, nor the ldap servers. If you strace the process, you will see only errors trying to access the servers:
Solution: set the following undocumented parameter in the vsftpd.conf:
isolate_network=NO
This will revert vsftpd to use the fork() and everything works perfectly.
Additional note: In the chroot environment one should use nscd (you have to mount --bind /var/run/nscd into /chroot/var/run/nscd). It doesn't help.