"OSError: [Errno 18] Invalid cross-device link" deep inside python_chroot stuff

311 views
Skip to first unread message

Benjy Weinberger

unread,
Mar 14, 2014, 10:11:06 PM3/14/14
to pants-devel
Full stack trace below. This is on a linux box. Works fine on osx.


-------



*** running pants in dev mode from
./src/python/twitter/pants/bin/pants_exe.py ***
Build operating on targets:
OrderedSet([PythonBinary(src/python/twitter/pants/bin/BUILD:pants)])
Building PythonBinary PythonBinary(src/python/twitter/pants/bin/BUILD:pants):
Problem executing PythonBuilder for targets
OrderedSet([PythonBinary(src/python/twitter/pants/bin/BUILD:pants)]):
Traceback (most recent call last):
File "/foursquare/benjy/src/commons/src/python/twitter/pants/commands/build.py",
line 126, in _python_build
conn_timeout=self.options.conn_timeout)
File "/foursquare/benjy/src/commons/src/python/twitter/pants/python/python_builder.py",
line 61, in build
conn_timeout=conn_timeout).run()
File "/foursquare/benjy/src/commons/src/python/twitter/pants/python/binary_builder.py",
line 65, in run
env = self.chroot.dump()
File "/foursquare/benjy/src/commons/src/python/twitter/pants/python/python_chroot.py",
line 201, in dump
platforms=platforms)
File "/foursquare/benjy/src/commons/src/python/twitter/pants/python/resolver.py",
line 120, in resolve_multi
distributions[platform] = working_set.resolve(requirements,
env=env, installer=installer)
File "/foursquare/benjy/src/commons/.python/bootstrap/lib/python2.6/site-packages/pkg_resources.py",
line 564, in resolve
dist = best[req.key] = env.best_match(req, self, installer)
File "/foursquare/benjy/src/commons/.python/bootstrap/lib/python2.6/site-packages/pkg_resources.py",
line 802, in best_match
return self.obtain(req, installer) # try and download/install
File "/foursquare/benjy/src/commons/.python/bootstrap/lib/python2.6/site-packages/pkg_resources.py",
line 814, in obtain
return installer(requirement)
File "/foursquare/benjy/src/commons/src/python/twitter/pants/python/resolver.py",
line 112, in installer
dist = obtainer.obtain(req)
File "/foursquare/benjy/src/commons/src/python/twitter/common/python/obtainer.py",
line 64, in obtain
dist = self._translator.translate(link)
File "/foursquare/benjy/src/commons/src/python/twitter/common/python/translator.py",
line 40, in translate
dist = tx.translate(link)
File "/foursquare/benjy/src/commons/src/python/twitter/common/python/translator.py",
line 118, in translate
return dist
File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
self.gen.throw(type, value, traceback)
File "/foursquare/benjy/src/commons/src/python/twitter/common/python/tracer.py",
line 122, in timed
yield
File "/foursquare/benjy/src/commons/src/python/twitter/common/python/translator.py",
line 114, in translate
os.rename(dist_path, target_path)
OSError: [Errno 18] Invalid cross-device link

David Turner

unread,
Mar 15, 2014, 2:02:09 AM3/15/14
to Benjy Weinberger, pants-devel
Is /tmp on a different mount than /foursquare? Because that sounds
like a likely cause of this.

Brian Wickman

unread,
Mar 15, 2014, 12:48:07 PM3/15/14
to David Turner, Benjy Weinberger, pants-devel
This was reported as a github issue last week and a fix identified.
Just hasn't gone out for review yet.

Sent from my iPhone

Benjy Weinberger

unread,
Mar 15, 2014, 4:15:26 PM3/15/14
to Brian Wickman, David Turner, pants-devel
This is quite urgent - this is now the third issue we're having with
deploying pants.pex built from master. We really need to resolve all
these.

Brian Wickman

unread,
Mar 15, 2014, 7:06:28 PM3/15/14
to Benjy Weinberger, David Turner, pants-devel
one line fix: just switch to shutil.move from os.rename.

Sent from my iPhone
Reply all
Reply to author
Forward
0 new messages