This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: make tests process failures using cross-test-ssh
- From: Steve Ellcey <sellcey at imgtec dot com>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 11 Feb 2016 10:12:05 -0800
- Subject: Re: make tests process failures using cross-test-ssh
- Authentication-results: sourceware.org; auth=none
- References: <1455142589 dot 29579 dot 39 dot camel at ubuntu-sellcey> <alpine dot DEB dot 2 dot 10 dot 1602102248440 dot 11453 at digraph dot polyomino dot org dot uk> <1455147723 dot 29579 dot 51 dot camel at ubuntu-sellcey> <alpine dot DEB dot 2 dot 10 dot 1602110031310 dot 11453 at digraph dot polyomino dot org dot uk>
- Reply-to: <sellcey at imgtec dot com>
On Thu, 2016-02-11 at 00:32 +0000, Joseph Myers wrote:
> On Wed, 10 Feb 2016, Steve Ellcey wrote:
>
> > > Try making the mounts use acdirmax=0,acdirmin=0 (I'm not sure why that
> > > should help with the precise symptoms you mention, but I've known it to
> > > help with some NFS coherency issues in testing in the past). (I'm
> > > assuming that the NFS file server is the system on which you're running
> > > "make check"; both systems using NFS from a third system may have other
> > > problems.)
> >
> > I am using NFS from a third system on both the host and target machines.
>
> I think that's very hard to make reliable, though setting NFS mount
> options on *both* systems to disable as much caching as possible (starting
> with acdirmax=0,acdirmin=0) may help.
I think the best way to make this more reliable is to do as much work as
possible when running a test on a single machine (either the host or the
target). So for instance, in localedata/gen-locale.sh we have:
generate_locale ()
{
charmap=$1
input=$2
out=$3
if ${localedef_before_env} ${run_program_env} I18NPATH=../localedata \
${localedef_after_env} --quiet -c -f $charmap -i $input \
${common_objpfx}localedata/$out
then
# The makefile checks the timestamp of the LC_CTYPE file,
# but localedef won't have touched it if it was able to
# hard-link it to an existing file.
touch ${common_objpfx}localedata/$out/LC_CTYPE
else
echo "Charmap: \"${charmap}\" Inputfile: \"${input}\"" \
"Outputdir: \"${out}\" failed"
exit 1
fi
}
If I understand things correctly the if statement is running 'locale'
on the target machine but the touch is being done on the host machine.
I would like to change this so that the touch is also done on the target
machine but I am not sure what macros I should use to in order to have
cross-test-ssh.sh run touch.
Likewise in gen-locales.mk I think I want the $(evaluate-test) part of
the command to be run on the target machine instead of the host machine
since the gen-locale.sh did all its real work on the target machine.
I think that with these two changes I can 'make tests' even with my
current NFS setup. But I can't seem to find the right magic to use
${run_program_env} or whatever I should be using to do the commands
remotely.
Steve Ellcey
sellcey@imgtec.com