arsv/perl-cross

possible race with pod2text?

kanavin opened this issue · 7 comments

We (the Yocto project) have hit another (seemingly quite rare) issue which seems like a race:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=13244

| Couldn't copy cpan/podlators/blib/script/pod2text to /home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/build-st-27300/tmp/work/core2-64-poky-linux/perl/5.28.1-r1/image/usr/bin/pod2text: No such file or directory
| Couldn't chmod 755 /home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/build-st-27300/tmp/work/core2-64-poky-linux/perl/5.28.1-r1/image/usr/bin/pod2text: No such file or directory
...
installman: Can't open cpan/podlators/blib/script/pod2text: No such file or directory
| ABORTED

Maybe pod2text wasn't properly generated at the compile stage? I'll ask to retrieve the log of that if it's possible.

arsv commented

No idea right away. Full log may help.

May be worth checking if pod2text is there at all at the end of the failed build.
If it fails to build, it's make all that should exit with error, not make install.

Yes, that's my thought as well. I have asked in the yocto bug to retrieve the compile log if/when the failure happens again, as it seems that's where the issue is.

Here's the compile log:
log.do_compile.txt

As you can see, pod2man is copied to the blib/scripts directory, but pod2text isn't. The Makefile does not reveal anything strange: it's fully formed for both.

arsv commented

That's really strange, but at least it narrows the problem down a bit.
make leaves cpan/podlators without installing pod2text and without reporting any errors there.
It is skipping at least one more command there, too.

I can't see anything wrong with the Makefile there either. I'll need to think on this.

Yes, I was also pulling my hair for an hour trying to see how this could happen. I have the build directory saved as well, so if you need anything from there let me know.

We're continuing to see this occasionally, it has happened on ubuntu 18.04 systems (both x86-64 and arm) and once on a 16.04 system. It is always pod2text where some of the commands just aren't run. Somehow in the last case I looked at, the manifypods target runs before pod2man in blib was generated too which hints at where dependencies are breaking down. I can't spot the issue in the Makefile but something odd is going on.