Opened 14 years ago

Closed 13 years ago

Last modified 13 years ago

#25833 closed defect (fixed)

computing large dependency trees takes longer than necessary

Reported by: celil.kj@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 2.0.0
Component: base Version: 1.9.1
Keywords: Cc: vinc17@…, drkp (Dan Ports), raphael-st (Raphael Straub), diannaxu@…
Port: geomview

Description

Installing geomview hangs with no furhter output and no indication what is going on. To reproduce the bug, type:

$ sudo port install geomview

and you will be stuck with the following output for hours

--->  Computing dependencies for geomview

Change History (15)

comment:1 Changed 14 years ago by danielluke (Daniel J. Luke)

Try running with -d to see what is going on:

sudo port -d install geomview

comment:2 Changed 14 years ago by celil.kj@…

I left it running, and it failed with this error code:

--->  Computing dependencies for geomviewError: Internal error: port lookup failed: too many nested evaluations (infinite loop?)
Error: Status 1 encountered during processing.

comment:3 Changed 14 years ago by celil.kj@…

Running with the '-d' option I get repetitive output like below:

DEBUG: Searching for dependency: cairo
DEBUG: Didn't find receipt, going to depspec regex for: cairo
DEBUG: Checking for conflicts against glib2
DEBUG: Searching for dependency: glib2-devel
DEBUG: Didn't find receipt, going to depspec regex for: glib2-devel
DEBUG: Searching for dependency: pkgconfig
DEBUG: Found Dependency: receipt exists for pkgconfig
DEBUG: Searching for dependency: autoconf
DEBUG: Found Dependency: receipt exists for autoconf
DEBUG: Searching for dependency: automake
DEBUG: Found Dependency: receipt exists for automake
DEBUG: Searching for dependency: libtool
DEBUG: Found Dependency: receipt exists for libtool
DEBUG: Searching for dependency: gettext

I am not sure if this is a bug in macports (an infinite loop maybe), or a bug in the geomview port.

comment:4 Changed 14 years ago by danielluke (Daniel J. Luke)

You need to include the full output if you want someone to help figure it out.

you can do:

sudo port clean geomview sudo port -d install geomview | tee build.txt

and upload the build.txt file if you would like.

Otherwise, there is probably a loop in the dependency graph (which is a bug in some port) and you might be able to figure out where it is based on the output (if you do figure it out on your own, please note the problem here so that it can get fixed).

comment:5 Changed 14 years ago by celil.kj@…

Thanks for your suggestions. Are you able to install geomview on your computer?

comment:6 Changed 14 years ago by jmroot (Joshua Root)

Probably a dupe of #25836.

comment:7 Changed 14 years ago by jmroot (Joshua Root)

Cc: vinc17@… dports@… raphael@… added

comment:8 Changed 14 years ago by vinc17@…

I've fixed #25836. Is the problem solved now?

comment:9 Changed 14 years ago by celil.kj@…

No, the problem isn't yet fixed. I tried

sudo port selfupdate
sudo port upgrade outdated
sudo port install geomview

and the port command still gets stuck.

comment:10 Changed 14 years ago by vinc17@…

So, the problem is not related to #25836. On my machine "sudo port -v install geomview" doesn't get stuck, but it takes 30 seconds before it starts displaying anything (using -n after "install" is faster, as port doesn't look at ports to upgrade).

comment:11 in reply to:  description ; Changed 13 years ago by diannaxu@…

Replying to celil.kj@…:

Installing geomview hangs with no furhter output and no indication what is going on. To reproduce the bug, type:

$ sudo port install geomview

and you will be stuck with the following output for hours

--->  Computing dependencies for geomview

I am having the exact same problem, now attempting to port geomview 1.9.4. This was on a brand new macbook air with near vanilla snow leopard (only software installed so far are Carbon Emacs and MacTex, both installed outside of macports, and geomview was the first port attempted).

comment:12 in reply to:  11 Changed 13 years ago by raphael-st (Raphael Straub)

Replying to diannaxu@…:

Replying to celil.kj@…:

Installing geomview hangs with no furhter output and no indication what is going on. To reproduce the bug, type:

$ sudo port install geomview

and you will be stuck with the following output for hours

I am having the exact same problem, now attempting to port geomview 1.9.4.

I cannot reproduce your problem here. Please try running

sudo port -d install geomview

to see what is going on.

comment:13 Changed 13 years ago by drkp (Dan Ports)

My guess is that what's going on here is that, due to a bug, dependency computation can take a very long time when there are lots of dependencies with many paths to each. This usually comes up when installing texlive +full on a system with no ports previously installed.

(See http://lists.macosforge.org/pipermail/macports-dev/2010-November/013219.html for more info about the bug. It was fixed in r73133, so the fix should be in the MacPorts 2.0.0 betas, but it's not in the stable release yet.)

My usual workaround is to explicitly install an intermediate dependency like texlive-bin first to help speed things along. Although if you've got MacTeX installed already you might not have been looking to install another texlive distribution. You may be able to accomplish that by putting /usr/texbin in your binpath in macports.conf, but I can't speak to how well that works.

comment:14 Changed 13 years ago by jmroot (Joshua Root)

Cc: diannaxu@… added
Component: portsbase
Milestone: MacPorts 2.0.0
Resolution: fixed
Status: newclosed
Summary: installing geomview hangscomputing large dependency trees takes longer than necessary

So, assuming fixed unless you can reproduce with 2.0 or trunk.

comment:15 Changed 13 years ago by diannaxu@…

Yes, installing texlive-bin as an intermediate dependency fixed the problem for me. I also installed mesa as another intermediate just for good measure. I did not try the putting /usr/texbin in the binpath route, I might try that if hard disk space becomes a problem and I can not tolerate two texlive distributions.

Note: See TracTickets for help on using tickets.