Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

precondition test (and others) fail, cause appears to be the crates.io tarball resetting timestamps to 1970. #996

Open
emixa-d opened this issue Sep 22, 2022 · 0 comments
Labels
bug Something isn't working

Comments

@emixa-d
Copy link
Contributor

emixa-d commented Sep 22, 2022

Version

Only a single version of the warp crate: 0.3.2.

Platform

Linux [hostname] [version] #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux, doesn't seem relevant though.

Description

The precondition test in tests/fs.rs failed, on line 173 (and in some :

Running .guix-tests/fs

running 11 tests
test dir_bad_encoded_path ... ok
test dir_bad_path ... ok
test dir_not_found ... ok
test dir ... ok
test byte_ranges_with_excluded_file_size ... ok
test file ... ok
test dir_encoded ... ok
test dir_fallback_index_on_dir ... ok
test byte_ranges ... FAILED
test not_modified ... FAILED
test precondition ... FAILED

failures:

---- byte_ranges stdout ----
thread 'byte_ranges' panicked at 'assertion failed: `(left == right)`
  left: `206`,
 right: `200`', tests/fs.rs:228:5
stack backtrace:
   0:     0x7ffff7e4795b - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h190bc4e71a974fd5
   1:     0x7ffff7ea2cfc - core::fmt::write::h5ab597cdd0c00db2
   2:     0x7ffff7e00701 - <unknown>
   3:     0x7ffff7e23c6e - <unknown>
   4:     0x7ffff7e23952 - std::panicking::default_hook::hcffd5d909668cc52
   5:     0x7ffff7e242ae - std::panicking::rust_panic_with_hook::h67db5ff340e389bf
   6:     0x7ffff7e48277 - <unknown>
   7:     0x7ffff7e47a74 - <unknown>
   8:     0x7ffff7e23db2 - rust_begin_unwind
   9:     0x7ffff7df5ff3 - core::panicking::panic_fmt::h4b9cfd185dab4fab
  10:     0x7ffff7ea6098 - core::panicking::assert_failed_inner::h93b1d9d94cf5a7fc
  11:     0x5555555a724f - core::panicking::assert_failed::h4b6aeca7958b32f7
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/panicking.rs:182:5
  12:     0x5555555ce60b - fs::byte_ranges::{{closure}}::hb82abd2e3abaa12f
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:228:5
  13:     0x5555555ce60b - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h63633b3fa8b04c03
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/future/mod.rs:84:19
  14:     0x5555555b543c - <core::pin::Pin<P> as core::future::future::Future>::poll::h27ddad9aae8f9bcf
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/future/future.rs:123:9
  15:     0x5555555b543c - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h625565e5e1607854
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:507:48
  16:     0x5555555b543c - tokio::coop::with_budget::{{closure}}::h4317cc52141c6811
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:102:9
  17:     0x5555555b543c - std::thread::local::LocalKey<T>::try_with::h3c5e08fe26e450f6
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/std/src/thread/local.rs:413:16
  18:     0x5555555b543c - std::thread::local::LocalKey<T>::with::h2314f0e8eb1e965e
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/std/src/thread/local.rs:389:9
  19:     0x5555555b543c - tokio::coop::with_budget::h1aab4993485b0c7d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:95:5
  20:     0x5555555b543c - tokio::coop::budget::h2b56610a8014d94a
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:72:5
  21:     0x5555555b543c - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::{{closure}}::h994761debf70e1c0
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:507:25
  22:     0x5555555b543c - tokio::runtime::basic_scheduler::Context::enter::hd629e4ec0386d291
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:361:19
  23:     0x5555555dea82 - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::hf178b3eef01cb079
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:506:36
  24:     0x5555555dea82 - tokio::runtime::basic_scheduler::CoreGuard::enter::{{closure}}::h5aa9dbb5a46c016e
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:564:57
  25:     0x5555555dea82 - tokio::macros::scoped_tls::ScopedKey<T>::set::hcdf14cb6b171793d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/macros/scoped_tls.rs:61:9
  26:     0x5555555b23ab - tokio::runtime::basic_scheduler::CoreGuard::enter::h0e804aada5dc0354
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:564:27
  27:     0x5555555b23ab - tokio::runtime::basic_scheduler::CoreGuard::block_on::hdcb6acb0de7210ac
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:497:9
  28:     0x5555555b23ab - tokio::runtime::basic_scheduler::BasicScheduler::block_on::h85f9c8019bff2052
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:173:24
  29:     0x5555555bbc4e - tokio::runtime::Runtime::block_on::hdd89a67209ecbe9d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/mod.rs:475:46
  30:     0x5555555c5b5f - fs::byte_ranges::h7e8ad53e04e89d9e
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:230:5
  31:     0x5555555c5b5f - fs::byte_ranges::{{closure}}::hc7533ab9c9ae011b
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:178:7
  32:     0x5555555c5b5f - core::ops::function::FnOnce::call_once::h521f51a25d48f656
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/ops/function.rs:227:5
  33:     0x7ffff7f68723 - <unknown>
  34:     0x7ffff7f688e4 - <unknown>
  35:     0x7ffff7f5b80d - <unknown>
  36:     0x7ffff7f7cd2f - <unknown>
  37:     0x7ffff7e1c233 - <unknown>
  38:     0x7ffff7b1f3aa - start_thread
  39:     0x7ffff7b9ff7c - clone3
  40:                0x0 - <unknown>

---- not_modified stdout ----
thread 'not_modified' panicked at 'assertion failed: `(left == right)`
  left: `304`,
 right: `200`', tests/fs.rs:146:5
stack backtrace:
   0:     0x7ffff7e4795b - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h190bc4e71a974fd5
   1:     0x7ffff7ea2cfc - core::fmt::write::h5ab597cdd0c00db2
   2:     0x7ffff7e00701 - <unknown>
   3:     0x7ffff7e23c6e - <unknown>
   4:     0x7ffff7e23952 - std::panicking::default_hook::hcffd5d909668cc52
   5:     0x7ffff7e242ae - std::panicking::rust_panic_with_hook::h67db5ff340e389bf
   6:     0x7ffff7e48277 - <unknown>
   7:     0x7ffff7e47a74 - <unknown>
   8:     0x7ffff7e23db2 - rust_begin_unwind
   9:     0x7ffff7df5ff3 - core::panicking::panic_fmt::h4b9cfd185dab4fab
  10:     0x7ffff7ea6098 - core::panicking::assert_failed_inner::h93b1d9d94cf5a7fc
  11:     0x5555555a724f - core::panicking::assert_failed::h4b6aeca7958b32f7
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/panicking.rs:182:5
  12:     0x5555555d2602 - fs::not_modified::{{closure}}::h9dfba175b4ca70b3
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:146:5
  13:     0x5555555d2602 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hd4c16fe8d9ad1fe3
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/future/mod.rs:84:19
  14:     0x5555555b55ec - <core::pin::Pin<P> as core::future::future::Future>::poll::h582db0c065ea63be
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/future/future.rs:123:9
  15:     0x5555555b55ec - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::hc79d1561fabf2057
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:507:48
  16:     0x5555555b55ec - tokio::coop::with_budget::{{closure}}::hbcbe5a3765ff39e9
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:102:9
  17:     0x5555555b55ec - std::thread::local::LocalKey<T>::try_with::h0284f53fb1be7aec
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/std/src/thread/local.rs:413:16
  18:     0x5555555b55ec - std::thread::local::LocalKey<T>::with::h7335082a1b993fbf
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/std/src/thread/local.rs:389:9
  19:     0x5555555b55ec - tokio::coop::with_budget::he937c390db11558d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:95:5
  20:     0x5555555b55ec - tokio::coop::budget::h20bac04dc5d47fd0
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:72:5
  21:     0x5555555b55ec - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::{{closure}}::hdcd51af755da1832
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:507:25
  22:     0x5555555b55ec - tokio::runtime::basic_scheduler::Context::enter::hdbc64019fd08661d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:361:19
  23:     0x5555555de782 - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::hdfbb5c459a0b4f94
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:506:36
  24:     0x5555555de782 - tokio::runtime::basic_scheduler::CoreGuard::enter::{{closure}}::heb802bf1b9087799
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:564:57
  25:     0x5555555de782 - tokio::macros::scoped_tls::ScopedKey<T>::set::hc25aa78ef6b3337e
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/macros/scoped_tls.rs:61:9
  26:     0x5555555b315b - tokio::runtime::basic_scheduler::CoreGuard::enter::h05dedd16ca22c3dc
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:564:27
  27:     0x5555555b315b - tokio::runtime::basic_scheduler::CoreGuard::block_on::h099a2f2aa631d4f4
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:497:9
  28:     0x5555555b315b - tokio::runtime::basic_scheduler::BasicScheduler::block_on::hd98cff9ab8dc0d0a
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:173:24
  29:     0x5555555bb76e - tokio::runtime::Runtime::block_on::h90593a0561b622c2
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/mod.rs:475:46
  30:     0x5555555c611f - fs::not_modified::h6556061a80f39383
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:148:5
  31:     0x5555555c611f - fs::not_modified::{{closure}}::haadf700b376aecd2
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:121:7
  32:     0x5555555c611f - core::ops::function::FnOnce::call_once::h7e17863534224ff4
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/ops/function.rs:227:5
  33:     0x7ffff7f68723 - <unknown>
  34:     0x7ffff7f688e4 - <unknown>
  35:     0x7ffff7f5b80d - <unknown>
  36:     0x7ffff7f7cd2f - <unknown>
  37:     0x7ffff7e1c233 - <unknown>
  38:     0x7ffff7b1f3aa - start_thread
  39:     0x7ffff7b9ff7c - clone3
  40:                0x0 - <unknown>

---- precondition stdout ----
thread 'precondition' panicked at 'assertion failed: `(left == right)`
  left: `200`,
 right: `412`', tests/fs.rs:173:5
stack backtrace:
   0:     0x7ffff7e4795b - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h190bc4e71a974fd5
   1:     0x7ffff7ea2cfc - core::fmt::write::h5ab597cdd0c00db2
   2:     0x7ffff7e00701 - <unknown>
   3:     0x7ffff7e23c6e - <unknown>
   4:     0x7ffff7e23952 - std::panicking::default_hook::hcffd5d909668cc52
   5:     0x7ffff7e242ae - std::panicking::rust_panic_with_hook::h67db5ff340e389bf
   6:     0x7ffff7e48277 - <unknown>
   7:     0x7ffff7e47a74 - <unknown>
   8:     0x7ffff7e23db2 - rust_begin_unwind
   9:     0x7ffff7df5ff3 - core::panicking::panic_fmt::h4b9cfd185dab4fab
  10:     0x7ffff7ea6098 - core::panicking::assert_failed_inner::h93b1d9d94cf5a7fc
  11:     0x5555555a724f - core::panicking::assert_failed::h4b6aeca7958b32f7
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/panicking.rs:182:5
  12:     0x5555555d2d74 - fs::precondition::{{closure}}::hc31748f4360b3523
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:173:5
  13:     0x5555555d2d74 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hf1ce446753c7ab54
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/future/mod.rs:84:19
  14:     0x5555555b4f2c - <core::pin::Pin<P> as core::future::future::Future>::poll::hced69abd380022ba
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/future/future.rs:123:9
  15:     0x5555555b4f2c - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h5c287b3a68dd88d8
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:507:48
  16:     0x5555555b4f2c - tokio::coop::with_budget::{{closure}}::hdc38521afa9acc0c
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:102:9
  17:     0x5555555b4f2c - std::thread::local::LocalKey<T>::try_with::hae4584e4fdaa525c
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/std/src/thread/local.rs:413:16
  18:     0x5555555b4f2c - std::thread::local::LocalKey<T>::with::ha1ab28d170c5eb52
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/std/src/thread/local.rs:389:9
  19:     0x5555555b4f2c - tokio::coop::with_budget::hf825cbb709ccfd11
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:95:5
  20:     0x5555555b4f2c - tokio::coop::budget::hc256a1ab5654aaef
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/coop.rs:72:5
  21:     0x5555555b4f2c - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::{{closure}}::ha5fd45caecda1c9e
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:507:25
  22:     0x5555555b4f2c - tokio::runtime::basic_scheduler::Context::enter::habde2df2cb101839
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:361:19
  23:     0x5555555df082 - tokio::runtime::basic_scheduler::CoreGuard::block_on::{{closure}}::h133c24c39767838e
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:506:36
  24:     0x5555555df082 - tokio::runtime::basic_scheduler::CoreGuard::enter::{{closure}}::hb6fea6e4004f1f7e
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:564:57
  25:     0x5555555df082 - tokio::macros::scoped_tls::ScopedKey<T>::set::he3842a1ff3c3801d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/macros/scoped_tls.rs:61:9
  26:     0x5555555b2835 - tokio::runtime::basic_scheduler::CoreGuard::enter::h26a06023f0c6d352
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:564:27
  27:     0x5555555b2835 - tokio::runtime::basic_scheduler::CoreGuard::block_on::h739adf5ce44fa42d
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:497:9
  28:     0x5555555b2835 - tokio::runtime::basic_scheduler::BasicScheduler::block_on::hc84abcb3481b01c3
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/basic_scheduler.rs:173:24
  29:     0x5555555bb85f - tokio::runtime::Runtime::block_on::h92896850c35c2be0
                               at /tmp/guix-build-rust-tokio-1.18.2.drv-0/tokio-1.18.2/src/runtime/mod.rs:475:46
  30:     0x5555555c5e3f - fs::precondition::h86c3d4afbe5bb03f
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:174:5
  31:     0x5555555c5e3f - fs::precondition::{{closure}}::h0999dae5d19df177
                               at /tmp/guix-build-rust-warp-0.3.2.drv-0/warp-0.3.2/tests/fs.rs:152:7
  32:     0x5555555c5e3f - core::ops::function::FnOnce::call_once::h5511f041835667df
                               at /tmp/guix-build-rust-1.60.0.drv-0/rustc-1.60.0-src/library/core/src/ops/function.rs:227:5
  33:     0x7ffff7f68723 - <unknown>
  34:     0x7ffff7f688e4 - <unknown>
  35:     0x7ffff7f5b80d - <unknown>
  36:     0x7ffff7f7cd2f - <unknown>
  37:     0x7ffff7e1c233 - <unknown>
  38:     0x7ffff7b1f3aa - start_thread
  39:     0x7ffff7b9ff7c - clone3
  40:                0x0 - <unknown>


failures:
    byte_ranges
    not_modified
    precondition

test result: FAILED. 8 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: ".guix-tests/fs" arguments: ("--test-threads" "16") exit-status: 101 term-signal: #f stop-signal: #f> 
phase `check' failed after 0.1 seconds
command ".guix-tests/fs" "--test-threads" "16" failed with status 101

this corresponds with the following code:

    let res = warp::test::request()
        .header("if-unmodified-since", "Mon, 07 Nov 1994 01:00:00 GMT")
        .reply(&file)
        .await;
    assert_eq!(res.status(), 412);
    assert_eq!(res.body(), "");

It appears that the code assumes that README.md was modified after 1994. However, this is not actually the case (from the file system's point of view) -- when I extract the tarball that was downloaded from crates.io, all files have timetap 1970-01-01

I've worked-around the problem by doing the equivalent of touch README.md before building the package.

Proposed solution: in the future, when uploading new versions of warp to crates.io, don't strip out the time stamps.

@emixa-d emixa-d added the bug Something isn't working label Sep 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant