s-ludwig / sdlang-org

https://sdlang.org website contents
15 stars 5 forks source link

Can't build - Dub stuck in dependencyresolver #5

Closed CyberShadow closed 7 years ago

CyberShadow commented 7 years ago

Cloning the repository and running dub (version 1.1.0, built on Nov 15 2016) produces the output:

Fetching libevent 2.0.1+2.0.16 (getting selected version)...
Fetching diet-ng 1.0.0-beta.3 (getting selected version)...
Fetching openssl 1.1.4+1.0.1g (getting selected version)...
Fetching memutils 0.4.7 (getting selected version)...
Fetching vibe-d 0.7.30-beta.1 (getting selected version)...
Fetching libasync 0.7.9 (getting selected version)...

And then, nothing. It's using 100% CPU, but nothing happens even after waiting 5 minutes.

Attaching to the process using gdb, the stack trace is:

Thread 1 (Thread 0x7fa2b502d7c0 (LWP 30934)):
#0  0x000000000095f32d in _d_arraycatnTX ()
#1  0x00000000007e2563 in dub.package_.Package.name() const ()
#2  0x00000000007da2e1 in dub.packagemanager.PackageManager.getPackageIterator(immutable(char)[]).iterator(int(ref dub.package_.Package) delegate).__foreachbody2(ref dub.package_.Package) ()
#3  0x00000000007da169 in dub.packagemanager.PackageManager.getPackageIterator().iterator(int(ref dub.package_.Package) delegate) ()
#4  0x00000000007da291 in dub.packagemanager.PackageManager.getPackageIterator(immutable(char)[]).iterator(int(ref dub.package_.Package) delegate) ()
#5  0x00000000007d98e2 in dub.packagemanager.PackageManager.getBestPackage(immutable(char)[], dub.dependency.Dependency, bool) ()
#6  0x00000000007d34c3 in dub.dub.DependencyVersionResolver.getPackage(immutable(char)[], dub.dependency.Dependency) ()
#7  0x00000000007d2fb8 in dub.dub.DependencyVersionResolver.getPackage(immutable(char)[], dub.dependency.Dependency) ()
#8  0x00000000007d277f in dub.dub.DependencyVersionResolver.getChildren(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode) ()
#9  0x00000000007c6362 in dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool).validateConfigs(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, ref immutable(char)[]) ()
#10 0x00000000007c6c59 in dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool).validateConfigs(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, ref immutable(char)[]) ()
#11 0x00000000007c6c59 in dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool).validateConfigs(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, ref immutable(char)[]) ()
#12 0x00000000007c6c59 in dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool).validateConfigs(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, ref immutable(char)[]) ()
#13 0x00000000007c6c59 in dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool).validateConfigs(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, ref immutable(char)[]) ()
#14 0x00000000007c5734 in dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool) ()
#15 0x00000000007d1c3e in dub.dub.DependencyVersionResolver.resolve(dub.package_.Package, dub.project.SelectedVersions) ()
#16 0x00000000007cbff9 in dub.dub.Dub.upgrade(dub.dub.UpgradeOptions) ()
#17 0x00000000007afa68 in dub.commandline.PackageBuildCommand.setupPackage(dub.dub.Dub, immutable(char)[], immutable(char)[]) ()
#18 0x00000000007b035d in dub.commandline.GenerateCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) ()
#19 0x00000000007b0afd in dub.commandline.BuildCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) ()
#20 0x00000000007b0cfd in dub.commandline.RunCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) ()
#21 0x00000000007acf6d in dub.commandline.runDubCommandLine(immutable(char)[][]) ()
#22 0x00000000007a9468 in D main ()
s-ludwig commented 7 years ago

Turned out to be caused by an outdated dependency to diet-ng, which conflicted with the one referenced in vibe-d. Unfortunately this hit an exponential path in the dependency resolver (there is a DUB ticket for this already).

CyberShadow commented 7 years ago

Thanks, confirmed fixed :)