Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pub install finish with Out of Memory #10229

Closed
DartBot opened this issue Apr 26, 2013 · 7 comments
Closed

pub install finish with Out of Memory #10229

DartBot opened this issue Apr 26, 2013 · 7 comments
Assignees
Labels
P1 A high priority bug; for example, a single project is unusable or has many test failures

Comments

@DartBot
Copy link

DartBot commented Apr 26, 2013

This issue was originally filed by @davidB


What steps will reproduce the problem?

run "pub install" on my vdrones project (depends of fork existing lib)
The problem raise after appending "simple_audio".

What version of the product are you using? On what operating system?

➜ vdrones git:(master) ✗ dart --version
Dart VM version: 0.5.0.1_r21823 (Mon Apr 22 14:02:11 2013)
➜ vdrones git:(master) ✗ pub --version
Pub 0.5.0+1.r21823
➜ vdrones git:(master) ✗ uname -a
Linux dwaynebox4 3.8.7-1-ARCH #­1 SMP PREEMPT Sat Apr 13 09:01:47 CEST 2013 x86_64 GNU/Linux

I run pub --verbosity solver install >pub.log 2>pub.err


Attachments:
pubspec.yaml (985 Bytes)
pubspec.lock (2.16 KB)
pub.err (402 Bytes)
pub.log (447.46 KB)

@munificent
Copy link
Member

Set owner to @munificent.
Added Area-Pub, Accepted labels.

@munificent
Copy link
Member

It looks like the problem with your specific package graph is that you are depending on asset_pack both from git and using a path dependency. (Your pubspec has a git dependency and, I think, simple_audio has a path dependency.) My hunch is that there is no valid solution for your dependency graph because of this.

Unfortunately, the solver doesn't determine that efficiently. There's two problems here:

  1. It runs out of heap space trying to find a solution. It should be able to explore lots of solutions without burning heap space.
  2. It's trying a bunch of solutions that don't help and don't make sense. There's no point in trying every version of, for example, meta, when meta doesn't even depend on asset_pack which is the problematic package.

This is a bug in the solver, and I'll try to get a fix in.

In the meantime, you can avoid this by avoiding the source mismatch that you have on asset_pack. Everything that depends on that needs to get it from the same source.


Removed Priority-Medium label.
Added Priority-High label.

@DartBot
Copy link
Author

DartBot commented Apr 26, 2013

This comment was originally written by @davidB


I workaround it, by symlinking manually my local simple_audio.
I'd got the same issue with official simple_audio, because it depends on an other repo than my fork of asset_pack.

White the previous solver, I'd got an alert in this case.

Do you think it's possible (in this case) for dependencies definition of the root project override transitive one (IIRC maven and ivy apply this rule) ?

Thanks

@munificent
Copy link
Member

White the previous solver, I'd got an alert in this case.

Yes, this is what the new solver should be doing too. Your dependency graph is problematic, it's just failing to reach the failed state so that it can tell you that.

Do you think it's possible (in this case) for dependencies definition of the root project override transitive one (IIRC maven and ivy apply this rule) ?

Yes, see: https://code.google.com/p/dart/issues/detail?id=8566

@munificent
Copy link
Member

Added Started label.

@munificent
Copy link
Member

With this patch: https://codereview.chromium.org/14685002/

pub should now handle this case much better.


Added Fixed label.

@DartBot DartBot added Type-Defect P1 A high priority bug; for example, a single project is unusable or has many test failures labels May 1, 2013
@DartBot
Copy link
Author

DartBot commented Jun 5, 2015

This issue has been moved to dart-lang/pub#527.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 A high priority bug; for example, a single project is unusable or has many test failures
Projects
None yet
Development

No branches or pull requests

2 participants