dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.2k stars 1.57k forks source link

pub failing when using google_oauth2_client package #15709

Closed markhats closed 9 years ago

markhats commented 10 years ago

When using the google_oauth2_client package (http://pub.dartlang.org/packages/google_oauth2_client) pub get/upgrade now seems to fail. This worked until recently.

I have attached the output from "pub --verbose get".


Attachment: pub.zip (951.91 KB)

markhats commented 10 years ago

Actually, this may be an interaction between the google_oauth2_client and polymer packages. Adding one or the other is fine but adding both causes the failure.

DartBot commented 10 years ago

This comment was originally written by @Fox32


I have the same problem but with the combination of spectre and polymer. This user has the same issue, too: https://github.com/johnmccutchan/spectre/issues/129

DartBot commented 10 years ago

This comment was originally written by @Fox32


I attached my pub upgrade -v output.

At the end it ouptuts:

ERR : Package 'polymer' has no versions that match >=0.9.0 <0.10.0 derived from:     | - 'projectz' depends on version any     | - 'spectre' depends on version >=0.9.0 <0.10.0

But there are versions of polymer that match >=0.9.0 <0.10.0 . One intresting thing is the package observe, that occures very often in the output.


Attachment: pub_upgrade.log (194.74 KB)

DartBot commented 10 years ago

This comment was originally written by everton.ma...@gmail.com


I'm hitting this pub get error as well.

How to reproduce:

C:\tmp\devel>git clone https://github.com/johnmccutchan/spectre C:\tmp\devel>cd spectre

C:\tmp\devel\spectre>c:\dart\dart-sdk\bin\pub get Resolving dependencies..................................................................... Incompatible version constraints on 'polymer':

'polymer' depends on version >=0.9.0 <0.10.0 C:\tmp\devel\spectre>

System is: Windows 7 on 64-bit Dart Editor version 1.1.0.dev_04_00 (DEV) Dart SDK version 1.1.0-dev.4.0

pubspec.yaml is:

name: spectre version: 0.7.0 author: John McCutchan <john@johnmccutchan.com> description: Graphics Library homepage: https://github.com/johnmccutchan/spectre documentation: http://johnmccutchan.github.io/spectre/ environment:   sdk: '>=1.0.0 <2.0.0' dependencies:   asset_pack:     git: https://github.com/johnmccutchan/asset_pack.git   logging: '>=0.9.0 <0.10.0'   polymer: '>=0.9.0 <0.10.0'   path: '>=0.9.0 <0.10.0'   vector_math:     git: https://github.com/johnmccutchan/vector_math.git dev_dependencies:   browser: '>=0.9.0 <0.10.0'   game_loop:     git: https://github.com/johnmccutchan/game_loop.git   hop: '>=0.28.1+2'   unittest: '>=0.9.0 <0.10.0'

Reported here: https://github.com/johnmccutchan/spectre/issues/129

nex3 commented 10 years ago

The "incompatible version constraints" error is different. That's like a real version conflict that's being reported incorrectly. The reporting issue has been fixed, but I'm unsure if the fix has made it into a released SDK yet.

The "connection closed" error is trickier. Mark, does this reproduce in an empty project with just polymer and google_oauth2_client in the pubspec?


Added Area-Pub, Triaged labels.

markhats commented 10 years ago

Yes it does seem to.

munificent commented 10 years ago

I'm not sure exactly which constraint is the ultimate cause of the conflict, but I did figure out that if I remove the version constraints on:

  logging: any # '>=0.9.0 <0.10.0'   polymer: any # '>=0.9.0 <0.10.0'   path: any # '>=0.9.0 <0.10.0' dev_dependencies:   hop: any # '>=0.28.1+2'   unittest: any # '>=0.9.0 <0.10.0'

Then pub is able to find a good set of dependencies for spectre. My guess is that it's stuck on an older version of hop or maybe unittest, that eventually ends up forcing a version of barback too old to work with your current SDK.

To fix this, I think spectre just needs to upgrade itself to newer versions of its dependencies. Because pub uses barback, your Dart SDK will require certain versions of it. As you upgrade to newer Dart SDKs, that forces you to upgrade your dependencies if they ultimately end up depending on barback (which polymer does).

munificent commented 10 years ago

I'm going to close this bug out. I think there are a few things going on here:

  1. You're getting a connection closed error. That, I believe, is just a transient networking error, and not a bug in the pub code.
  2. The error message is confusing/wrong. This was a result of two bugs that are fixed on bleeding edge now.
  3. There's some nasty dependency constraint in spectre's graph that's forcing it to do a ton of backtracking. This isn't a bug, it's just pub struggling to find a good solution to a hard problem. Upgrading spectre to use newer versions of its dependencies should help.

So, I could be wrong, but I don't think there's anything here we need to take action on (that we haven't already). If I missed something, though, please do let me know.


Added WontFix label.

markhats commented 10 years ago

So does an empty project with just polymer and google_oauth2_client in the pubspec work for you? I'm still getting the same issue with this, and have been consistently for a few days, so I can't see it being a transient networking issue.

Or is this what has been fixed on bleeding edge?

DartBot commented 10 years ago

This comment was originally written by @zoechi


The same for me with dart-polymer-dart-examples which has a dependency on google_oauth2_client. I suspect their 'path' dependency '<=0.10.0'. I have posted an issued for google_oauth2_client to publish an updated release.

DartBot commented 10 years ago

This comment was originally written by everton.ma...@gmail.com


I can consistently reproduce the "connection closed" error as well:

C:\tmp\devel\eraseme\empty>c:\dart\dart-sdk\bin\pub get Resolving dependencies.......................................................... ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ .......Connection closed before full header was received. C:\tmp\devel\eraseme\empty>

How to reproduce:

1) Create a new app with Dart Editor 2) Add the dependencies:

pubspec.yaml:

name: empty description: A sample web application dependencies:   browser: any   google_oauth2_client: '>=0.2.18'   polymer: any

3) Run pub get

System:

Dart Editor version 1.1.0.dev_04_00 (DEV) Dart SDK version 1.1.0-dev.4.0 Windows 7 on 64-bit

DartBot commented 10 years ago

This comment was originally written by everton.ma...@gmail.com


Reproduced with newer SDK:

C:\tmp\devel\eraseme\empty2>c:\dart\dart-sdk\bin\pub get Resolving dependencies.......................................................... ................................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ .................................Connection closed before full header was receiv edUncaught Error: FormatException: Couldn't parse VM stack trace line 'null'. Stack trace: null Stack Trace:

­0 Trace.Trace.parse (package:stack_trace/src/trace.dart:123)

­1 Trace.Trace.from.<anonymous closure> (package:stack_trace/src/trace.dart:97)

­2 LazyTrace._trace (package:stack_trace/src/lazy_trace.dart:23)

­3 LazyTrace.terse.<anonymous closure> (package:stack_trace/src/lazy_trace.dart:29)

­4 LazyTrace._trace (package:stack_trace/src/lazy_trace.dart:23)

­5 LazyTrace.frames (package:stack_trace/src/lazy_trace.dart:27)

­6 Chain.terse.<anonymous closure> (package:stack_trace/src/chain.dart:163)

­7 WhereIterator.moveNext (dart:_collection-dev/iterable.dart:416)

­8 IterableBase.isEmpty (dart:collection/iterable.dart:291)

­9 Chain.terse (package:stack_trace/src/chain.dart:168)

­10 PubCommand.run.handleError (file:///e:/b/build/slave/dart-editor-win-dev/build/dart/sdk/lib/_internal/pub/lib/src/command.dart:101)

­11 _invokeErrorHandler (dart:async/async_error.dart:10)

­12 _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:469)

­13 _rootRun (dart:async/zone.dart:683)

­14 _RootZone.run (dart:async/zone.dart:832)

­15 _Future._propagateToListeners (dart:async/future_impl.dart:445)

­16 _Future._completeError (dart:async/future_impl.dart:315)

­17 _Future._asyncCompleteError.<anonymous closure> (dart:async/future_impl.dart:367)

­18 _asyncRunCallback (dart:async/schedule_microtask.dart:18)

­19 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:119)

Unhandled exception: FormatException: Couldn't parse VM stack trace line 'null'. Stack trace: null

­0 _rootHandleUncaughtError.<anonymous closure>.<anonymous closure> (dart:async/zone.dart:677)

­1 _asyncRunCallback (dart:async/schedule_microtask.dart:18)

­2 _asyncRunCallback (dart:async/schedule_microtask.dart:21)

­3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:119)

C:\tmp\devel\eraseme\empty2>

Reproduced with same steps:

1) Create a new app with Dart Editor 2) Add the dependencies:

pubspec.yaml:

name: empty description: A sample web application dependencies:   browser: any   google_oauth2_client: '>=0.2.18'   polymer: any

3) Run pub get

System:

Dart Editor version 1.1.0.dev_05_00 (DEV) Dart SDK version 1.1.0-dev.5.0 Windows 7 on 64-bit

munificent commented 10 years ago

OK, this looks like it's still a real problem. Re-opening. Sorry for the pain. We'll see what we can figure out.


Added Triaged label.

nex3 commented 10 years ago

I can't reproduce this with the current bleeding-edge SDK (1.1.0-edge.31502). "pub get" completes successfully.

It's worth noting that the FormatException is a stack trace parse error caused by issue #15920. The "connection closed" error is real, though, and I'm not sure what would cause it for one user but not others.

munificent commented 10 years ago

Removed Priority-Unassigned label. Added Priority-Medium label.

DartBot commented 10 years ago

This comment was originally written by everton.marq...@gmail.com


I no longer hit this issue with build 31329.

nex3 commented 10 years ago

Added CannotReproduce label.

markhats commented 10 years ago

Confirmed, also works fine for me now on 31329.

DartBot commented 9 years ago

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