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 |
Description
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)
Change History (14)
comment:1 Changed 7 months ago by ryandesign (Ryan Schmidt)
Owner: | set to mojca |
---|---|
Status: | new → assigned |
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...
Changed 7 months ago by programmingkidx
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 ... MAX_DEPTH_HASH = 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/Limit.pm lib/Storable/Limit.pm 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 Config_heavy.pl: 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
.
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.
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 build → perl5.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.
Please attach the main.log file so that we can see what happened.