Skip to content

Incremental compilation creates file names too long for Windows #47186

Closed
@SimonSapin

Description

@SimonSapin

Today I made a Servo try build with a rustc/cargo version that, if I understand correctly, enable incremental compilation by default. This left on CI builders some files with long names. On every subsequent builds, Buildbot would first try to clean the target directory and fail to remove files with too long names/paths such as c:\buildbot\slave\windows-msvc-dev\build\target\debug\incremental\script-1g52totqj6qac\s-ex1p8h0sua-1w9qs9v-hbvaqqvv1zrk\cgu-script-dom-bindings-codegen-Bindings-BluetoothCharacteristicPropertiesBinding-BluetoothCharacteristicPropertiesBinding.volatile.bc-compressed:

exception from rmdirRecursive
Traceback (most recent call last):
  File "c:\Python27\lib\threading.py", line 801, in __bootstrap_inner
    self.run()
  File "c:\Python27\lib\threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "c:\Python27\lib\site-packages\twisted-16.1.1-py2.7-win-amd64.egg\twisted\_threads\_threadworker.py", line 46, in work
    task()
  File "c:\Python27\lib\site-packages\twisted-16.1.1-py2.7-win-amd64.egg\twisted\_threads\_team.py", line 190, in doWork
    task()
--- <exception caught here> ---
  File "c:\Python27\lib\site-packages\twisted-16.1.1-py2.7-win-amd64.egg\twisted\python\threadpool.py", line 246, in inContext
    result = inContext.theWork()
  File "c:\Python27\lib\site-packages\twisted-16.1.1-py2.7-win-amd64.egg\twisted\python\threadpool.py", line 262, in <lambda>
    inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
  File "c:\Python27\lib\site-packages\twisted-16.1.1-py2.7-win-amd64.egg\twisted\python\context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "c:\Python27\lib\site-packages\twisted-16.1.1-py2.7-win-amd64.egg\twisted\python\context.py", line 81, in callWithContext
    return func(*args,**kw)
  File "c:\Python27\lib\site-packages\buildbot_slave-0.9.0b7-py2.7.egg\buildslave\commands\utils.py", line 92, in rmdirRecursive
    rmdirRecursive(full_name)
  File "c:\Python27\lib\site-packages\buildbot_slave-0.9.0b7-py2.7.egg\buildslave\commands\utils.py", line 92, in rmdirRecursive
    rmdirRecursive(full_name)
  File "c:\Python27\lib\site-packages\buildbot_slave-0.9.0b7-py2.7.egg\buildslave\commands\utils.py", line 92, in rmdirRecursive
    rmdirRecursive(full_name)
  File "c:\Python27\lib\site-packages\buildbot_slave-0.9.0b7-py2.7.egg\buildslave\commands\utils.py", line 92, in rmdirRecursive
    rmdirRecursive(full_name)
  File "c:\Python27\lib\site-packages\buildbot_slave-0.9.0b7-py2.7.egg\buildslave\commands\utils.py", line 92, in rmdirRecursive
    rmdirRecursive(full_name)
  File "c:\Python27\lib\site-packages\buildbot_slave-0.9.0b7-py2.7.egg\buildslave\commands\utils.py", line 87, in rmdirRecursive
    os.chmod(full_name, 0o600)
exceptions.WindowsError: [Error 3] The system cannot find the path specified: u'c:\\buildbot\\slave\\windows-msvc-dev\\build\\target\\debug\\incremental\\script-1g52totqj6qac\\s-ex1p8h0sua-1w9qs9v-hbvaqqvv1zrk\\cgu-script-dom-bindings-codegen-Bindings-BluetoothCharacteristicPropertiesBinding-BluetoothCharacteristicPropertiesBinding.volatile.bc-compressed'
program finished with exit code -1

Could the file names be made to not contain full Rust paths? Maybe using a hash instead?

CC @michaelwoerister @larsbergstrom @jonathandturner

Metadata

Metadata

Labels

A-incr-compArea: Incremental compilationO-windowsOperating system: WindowsP-highHigh priority

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions