bug#35069: runtest takes too long on get_local_hostname

Jacob Bachmeyer <[email protected]> Mon, 01 Apr 2019 17:28:04 -0500
Newsgroups gmane.comp.sysutils.dejagnu.bugs
Message-ID <[email protected]>
Tom de Vries wrote:
> On 01-04-19 15:39, Andreas Schwab wrote:
>   
>> On Apr 01 2019, Tom de Vries <[email protected]> wrote:
>>     
>>> Usually the testsuite runs in 12 seconds, but sometimes it takes more
>>> than a minute (I managed to reproduce the same problem by running a
>>> single gcc testsuite test-case).
>>>
>>> I tracked this down to tcl info hostname taking a long time, when:
>>> - having a vpn session active, and
>>> - having no network connection
>>>       
>> Tcl calls gethostbyname on your hostname, so you should make sure that
>> it is resolvable (by adding it to /etc/hosts, for example, or installing
>> nss-myhostname).  That's probably a good idea anyway, since there may be
>> other programs trying to do that too.
>>     
> [...]
>
> FTR, I do consider this a workaround though. If my internet connection
> or configuration is broken in some way, I still expect say, ls to work
> reliably, with the same speed. And I would expect the same for dejagnu
> runtest (unless I would be testing network functionality, or remote
> boards or some such).
>   

I argue that this issue is an NSS configuration error rather than a bug 
in DejaGnu or even Tcl.  The issue seems to be that you had a NSS 
configuration that exhibits extremely poor performance in the situation 
you describe.  The solution is, of course, to fix your NSS configuration 
-- there is nothing DejaGnu can really do about this.

To use your example, ls(1) can only be expected to work reliably and 
quickly when the network is down if the UID/username map is stored 
locally, as is traditionally done on non-networked systems.  In 
networked environments where that mapping is stored in a central server, 
it is accepted that network failure causes other problems.

I had always understood that /etc/hosts should map a machine's own 
hostname to loopback and that omitting that record is a configuration error.

-- Jacob