Opened 7 months ago

Last modified 5 days ago

#60747 assigned defect

perl5.28: build fails with 8 parallel jobs on Tiger i386

Reported by: programmingkidx Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version:
Keywords: tiger Cc: programmingkidx
Port: perl5.28


perl5.28 fails to build on Mac OS 10.4.11 (intel). This is the only info I could find:

:info:build Updating 'mktables.lst'
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3" && /usr/bin/make -j8 -w all 
:info:build Exit code: 2
:error:build Failed to build perl5.28: command execution failed
:debug:build Error code: CHILDSTATUS 14924 2
:debug:build Backtrace: command execution failed
:debug:build     while executing
:debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring"
:debug:build     invoked from within
:debug:build "command_exec -callback portprogress::target_progress_callback build"
:debug:build     (procedure "portbuild::build_main" line 8)
:debug:build     invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/main.log for details.

Attachments (1)

main.log (85.8 KB) - added by programmingkidx 7 months ago.

Download all attachments as: .zip

Change History (14)

comment:1 Changed 7 months ago by ryandesign (Ryan Schmidt)

Owner: set to mojca
Status: newassigned

Please attach the main.log file so that we can see what happened.

comment:2 Changed 7 months ago by kencu (Ken)

see also 60740

comment:3 Changed 7 months ago by programmingkidx

Hi Ken, I did see the ticket. I didn't see this kind of failure take place on my system.

I was trying to install the re2c port when I saw this error. perl5.28.3 was trying to be installed. Thing is I already have perl5.28.2 installed. I think a simple fix to this problem is to go back to using perl5.28.2. I think if I edit the perl5 portfile I can go back to version 5.28.2.

comment:4 Changed 7 months ago by kencu (Ken)

before you do that, please show us the log. It needs to be fixed for you, although holding back the version is a temporary step.

You will have to let normal processes work out sometimes for resolving these issues if you expect Ryan and others to look at these tickets and try to help you. Finding the right balance is the key.

So attach your log from the failed build so we can see it, please...

Last edited 7 months ago by kencu (Ken) (previous) (diff)

Changed 7 months ago by programmingkidx

Attachment: main.log added

comment:5 Changed 7 months ago by programmingkidx

Log is attached to the ticket.

comment:6 Changed 7 months ago by kencu (Ken)

Thanks. it is a bit of a strange error you're seeing, but then there are not too many people building Tiger software on an 8 core machine (not even me).

538	:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3/ext/Devel-Peek'
539	:info:build make: *** read jobs pipe: Resource temporarily unavailable.  Stop.
540	:info:build make: *** Waiting for unfinished jobs....

At first blush, I'm not exactly sure what this error is. To factor it, we're going to simplify things to remove some variables.

One common thing that happens is race conditions, where one part of the software build is looking for something, but it hasn't been finished being built yet by another part of the build. These are hard to debug, but easy to find once you think of them -- just disable that.

In your Portfile, put

use_parallel_build no

or, alternatively, you can set it perhaps more easily in /opt/local/etc/macports/macports.conf where you find line that specs the build jobs and set it to "1".

Once that is done, you should clean, and then try the build again:

sudo port clean perl5.28
sudo port -v build perl5.28

if it fails the same way again, then you know it's not that issue.

The next most common thing is the old /usr/bin/make on Tiger causes lots of problems. To fix that, install gmake (probably is installed} and then set the build to use it. In the portfile, put

build.cmd gmake

and then clean and try your build again.

If neither of those things gets past your error, put up a new log with the results of those mods, and we'll take a look.

I doubt you will be able to complete a build anyway, due to 60740 but at least you should be able to get to that error (which we have a fix for, just deciding how best to implement it).

comment:7 Changed 7 months ago by programmingkidx

It built! I just added "use_parallel_build no" to the portfile. Then did a clean and a build using the commands above.

Here are the last lines of the build:

Storable: determining recursion limit: 22784 too big, try less 22784 ...
MAX_DEPTH = 22783
Storable: determining recursion limit: 8000 passed, try more 8000 ...
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3/dist/Storable'
test -d lib/Storable || mkdir lib/Storable
cp dist/Storable/lib/Storable/ lib/Storable/
        Everything is up to date. Type '/usr/bin/make test' to run test suite.
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3'
--->  Patching s/-arch [a-z0-9_]+//g

I'm not 100% sure it installed. Here is the output of 'port installed | grep perl5.28'

  git @2.27.0_0+credential_osxkeychain+diff_highlight+doc+pcre+perl5_28 (active)
  ossp-uuid @1.6.2_11+perl5_28 (active)
  perl5 @5.26.1_0+perl5_28 (active)
  perl5.28 @5.28.2_2 (active)

Why does it still say 5.28.2_2 when 5.28.3 just finished installing?

comment:8 Changed 7 months ago by kencu (Ken)

yep, you got it. Glad that worked. Now then, what the heck is 60740 going to turn out to be? I'm more confused now...

Edit: now I'm not sure, actually. It should be perl5.28.3 right?

$ port -v installed perl5.28
The following ports are currently installed:
  perl5.28 @5.28.3_0+universal (active) platform='darwin 10' archs='i386 x86_64' date='2020-06-18T13:13:47-0700'

so I don't know what you built (as you edited the version in the portfile??). There's the downside of hacking -- sometimes, you don't know where you are :>

You will need to get yourself to a fresh perl5.28 Portfile, add your use_universal_build no and see if it builds perl5.28 @5.28.3.

Last edited 7 months ago by kencu (Ken) (previous) (diff)

comment:9 Changed 7 months ago by programmingkidx

I just ran your command "port -v installed perl5.28" and saw that perl5.28.3 is installed:

$ port -v installed perl5.28
The following ports are currently installed:
  perl5.28 @5.28.2_2 platform='darwin 8' archs='i386' date='2020-05-24T11:03:58-0400'
  perl5.28 @5.28.3_0 (active) platform='darwin 8' archs='i386' date='2020-07-01T20:12:17-0400'

comment:10 Changed 7 months ago by programmingkidx

As for #60740 if you want me to try anything please let me know. Thank you.

Last edited 2 months ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:11 Changed 7 months ago by programmingkidx

Cc: programmingkidx added

comment:12 Changed 5 days ago by ryandesign (Ryan Schmidt)

Keywords: tiger added
Summary: perl5.28 fails to buildperl5.28: build fails with 8 parallel jobs on Tiger i386

comment:13 Changed 5 days ago by kencu (Ken)

I have found that many ports don't build parallel on Tiger that do build parallel on newer systems, and as nobody will care enough to try to fix whatever is causing that (if it can be fixed) I just set my build jobs to "1" on all my Tiger machines in macports.conf, and never see these errors any longer.

Last edited 5 days ago by kencu (Ken) (previous) (diff)
Note: See TracTickets for help on using tickets.