ethereum / consensus-spec-tests

Common tests for the Ethereum proof-of-stake consensus layer
MIT License
69 stars 22 forks source link

Filenames are too long #15

Closed prestonvanloon closed 4 years ago

prestonvanloon commented 4 years ago

For example, this filepath is 201 characters.

tests/general/phase0/bls/sign_msg/small/sign_msg_0x263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e3_0x0000000000000000000000000000000000000000000000000000000000000000_0x0100000000000000

Linux has a maximum filename length of 255 characters for most filesystems. When we ultilize caching in our continuous integration or even locally, the base path may be more than 54 characters.

Please reduce the filename length for these tests.

prestonvanloon commented 4 years ago

Example full local directory with caching enabled ends up being 309 characters.

/home/preston/.cache/bazel/_bazel_preston/6e220e5720b8243fd605645eb29a29ba/external/eth2_spec_tests_general/tests/general/phase0/bls/sign_msg/small/sign_msg_0x263dbd792f5b1be47ed85f8938c0f29586af0d3ac7b977f21c278fe1462040e3_0x0000000000000000000000000000000000000000000000000000000000000000_0x0100000000000000 
prestonvanloon commented 4 years ago

For now, we're forking the tar.gz and renaming all of these long directories so we can update to 0.8.3.

protolambda commented 4 years ago

Sorry, was a bit careless with those names. Will change it after interop, fully prioritizing bugs + interop over formatting now.

prestonvanloon commented 4 years ago

Discussed offline that the culprit seems to be ecryptfs. Nonetheless, a shorter filename would be appreciated.

mratsim commented 4 years ago

Yes, so on unix you have 2 constants, one for max filename at 255 characters usually and one for max total path at 4096 characters.

Ecryptfs adds metadata or random hashes of about 100 characters to each file stored in an encrypted partition.

protolambda commented 4 years ago

See https://github.com/ethereum/eth2.0-specs/pull/1405

prestonvanloon commented 4 years ago

Thanks @protolambda. This is effectively resolved for the next version so i'll close this.