Opened 4 years ago

Last modified 2 years 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)

main.log (85.8 KB) - added by programmingkidx 4 years ago.

Download all attachments as: .zip

Change History (19)

comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to mojca
Status: newassigned

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

comment:2 Changed 4 years ago by kencu (Ken)

see also 60740

comment:3 Changed 4 years 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 4 years 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 4 years ago by kencu (Ken) (previous) (diff)

Changed 4 years ago by programmingkidx

Attachment: main.log added

comment:5 Changed 4 years ago by programmingkidx

Log is attached to the ticket.

comment:6 Changed 4 years 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 4 years 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 4 years 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 4 years ago by kencu (Ken) (previous) (diff)

comment:9 Changed 4 years 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 4 years ago by programmingkidx

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

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:11 Changed 4 years ago by programmingkidx

Cc: programmingkidx added

comment:12 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

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

comment:13 Changed 3 years 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 3 years ago by kencu (Ken) (previous) (diff)

comment:14 Changed 3 years ago by khepler

Just hit this on Leopard/ppc with both perl5.26 @5.26.3_6 and perl5.28 @5.28.3_0. Running the make manually with parallel jobs completed fine and in the case of 5.28 passed all but one of make test. But resuming the port operation failed in the same way even after that.

The make error was not at all informative, and I spent a lot of time trying to figure this out on my PowerMac G5 and Xserves. What tipped me off was that it built on my Powerbook G4. I’m not accustomed to parallel build failures with Macports.

comment:15 Changed 3 years ago by mascguy (Christopher Nielsen)

Is there a chance this could be due to the outdated Make, provided on older macOS releases?

It might be worth testing with our GMake port: Add a build dep on port:gmake, along with the following to use it:

build.cmd ${prefix}/bin/gmake

Last edited 3 years ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:16 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:17 Changed 3 years ago by kencu (Ken)

that's a good thought, Chris -- I think I tried that in years gone by, but always worth another attempt.

for a while some years ago I replaced the system gmake with a statically-built new one, but then I was rebuilding newer kernels on Tiger and the build failed; turned out the newer gmake was at fault.

comment:18 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy removed
Note: See TracTickets for help on using tickets.