ReadmeDoctests test flaky in fresh repo #42

Description

@chkno

The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

For example, I ran cargo test 100 times and it failed 12 times.
... But then I ran it a thousand more times and never saw it fail again.
But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

So it somehow seems to be related to running tests from a fresh repo?

The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

First run of cargo test after fresh clone:

...
running 51 tests
...
test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
Doc-tests commitlog
running 2 tests
test src/lib.rs - (line 18) ... ok
test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
failures:
---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
Test executable failed (exit status: 101).
stderr:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
stack backtrace:
0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
8: 0x55c5028954f2 - rust_begin_unwind
9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
18: 0x55c5028177f3 - main
19: 0x7f3c8cd9c24e - __libc_start_call_main
20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
21: 0x55c5028138c5 - _start
22: 0x0 - <unknown>
failures:
src/lib.rs - ReadmeDoctests (line 1244)
test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
error: test failed, to rerun pass '--doc'

Subsequent runs:

$ cargo test
Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
Finished test [unoptimized + debuginfo] target(s) in 5.09s
Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
running 51 tests
...
test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
Doc-tests commitlog
running 2 tests
test src/lib.rs - (line 18) ... FAILED
test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
failures:
---- src/lib.rs - (line 18) stdout ----
Test executable failed (exit status: 101).
stderr:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
stack backtrace:
0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
8: 0x55c37ec034f2 - rust_begin_unwind
9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
18: 0x55c37eb857f3 - main
19: 0x7f1b6139324e - __libc_start_call_main
20: 0x7f1b61393309 - __libc_start_main_alias_1
21: 0x55c37eb818c5 - _start
22: 0x0 - <unknown>
---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
Test executable failed (exit status: 101).
stderr:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
stack backtrace:
0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
8: 0x5614542fb4f2 - rust_begin_unwind
9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
18: 0x56145427d7f3 - main
19: 0x7f8388d3024e - __libc_start_call_main
20: 0x7f8388d30309 - __libc_start_main_alias_1
21: 0x5614542798c5 - _start
22: 0x0 - <unknown>
failures:
src/lib.rs - (line 18)
src/lib.rs - ReadmeDoctests (line 1244)
test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
error: test failed, to rerun pass '--doc'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      ReadmeDoctests test flaky in fresh repo #42

      Description

      @chkno

      The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

      For example, I ran cargo test 100 times and it failed 12 times.
      ... But then I ran it a thousand more times and never saw it fail again.
      But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

      So it somehow seems to be related to running tests from a fresh repo?

      The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

      First run of cargo test after fresh clone:

      ...
      running 51 tests
      ...
      test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
      Doc-tests commitlog
      running 2 tests
      test src/lib.rs - (line 18) ... ok
      test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
      failures:
      ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
      Test executable failed (exit status: 101).
      stderr:
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
      stack backtrace:
      0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
      1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
      2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
      3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
      4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
      5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
      6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
      7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
      8: 0x55c5028954f2 - rust_begin_unwind
      9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
      10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
      11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
      12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
      13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
      14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
      15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
      16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
      17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
      18: 0x55c5028177f3 - main
      19: 0x7f3c8cd9c24e - __libc_start_call_main
      20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
      21: 0x55c5028138c5 - _start
      22: 0x0 - <unknown>
      failures:
      src/lib.rs - ReadmeDoctests (line 1244)
      test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
      error: test failed, to rerun pass '--doc'
      

      Subsequent runs:

      $ cargo test
      Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
      Finished test [unoptimized + debuginfo] target(s) in 5.09s
      Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
      running 51 tests
      ...
      test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
      Doc-tests commitlog
      running 2 tests
      test src/lib.rs - (line 18) ... FAILED
      test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
      failures:
      ---- src/lib.rs - (line 18) stdout ----
      Test executable failed (exit status: 101).
      stderr:
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
      stack backtrace:
      0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
      1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
      2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
      3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
      4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
      5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
      6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
      7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
      8: 0x55c37ec034f2 - rust_begin_unwind
      9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
      10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
      11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
      12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
      13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
      14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
      15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
      16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
      17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
      18: 0x55c37eb857f3 - main
      19: 0x7f1b6139324e - __libc_start_call_main
      20: 0x7f1b61393309 - __libc_start_main_alias_1
      21: 0x55c37eb818c5 - _start
      22: 0x0 - <unknown>
      ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
      Test executable failed (exit status: 101).
      stderr:
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
      stack backtrace:
      0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
      1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
      2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
      3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
      4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
      5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
      6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
      7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
      8: 0x5614542fb4f2 - rust_begin_unwind
      9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
      10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
      11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
      12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
      13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
      14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
      15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
      16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
      17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
      18: 0x56145427d7f3 - main
      19: 0x7f8388d3024e - __libc_start_call_main
      20: 0x7f8388d30309 - __libc_start_main_alias_1
      21: 0x5614542798c5 - _start
      22: 0x0 - <unknown>
      failures:
      src/lib.rs - (line 18)
      src/lib.rs - ReadmeDoctests (line 1244)
      test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
      error: test failed, to rerun pass '--doc'
      

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          ReadmeDoctests test flaky in fresh repo #42

          Description

          @chkno

          The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

          For example, I ran cargo test 100 times and it failed 12 times.
          ... But then I ran it a thousand more times and never saw it fail again.
          But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

          So it somehow seems to be related to running tests from a fresh repo?

          The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

          First run of cargo test after fresh clone:

          ...
          running 51 tests
          ...
          test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
          Doc-tests commitlog
          running 2 tests
          test src/lib.rs - (line 18) ... ok
          test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
          failures:
          ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
          Test executable failed (exit status: 101).
          stderr:
          thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
          stack backtrace:
          0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
          1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
          2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
          3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
          4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
          5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
          6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
          7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
          8: 0x55c5028954f2 - rust_begin_unwind
          9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
          10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
          11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
          12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
          13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
          14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
          15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
          16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
          17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
          18: 0x55c5028177f3 - main
          19: 0x7f3c8cd9c24e - __libc_start_call_main
          20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
          21: 0x55c5028138c5 - _start
          22: 0x0 - <unknown>
          failures:
          src/lib.rs - ReadmeDoctests (line 1244)
          test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
          error: test failed, to rerun pass '--doc'
          

          Subsequent runs:

          $ cargo test
          Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
          Finished test [unoptimized + debuginfo] target(s) in 5.09s
          Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
          running 51 tests
          ...
          test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
          Doc-tests commitlog
          running 2 tests
          test src/lib.rs - (line 18) ... FAILED
          test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
          failures:
          ---- src/lib.rs - (line 18) stdout ----
          Test executable failed (exit status: 101).
          stderr:
          thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
          stack backtrace:
          0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
          1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
          2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
          3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
          4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
          5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
          6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
          7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
          8: 0x55c37ec034f2 - rust_begin_unwind
          9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
          10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
          11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
          12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
          13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
          14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
          15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
          16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
          17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
          18: 0x55c37eb857f3 - main
          19: 0x7f1b6139324e - __libc_start_call_main
          20: 0x7f1b61393309 - __libc_start_main_alias_1
          21: 0x55c37eb818c5 - _start
          22: 0x0 - <unknown>
          ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
          Test executable failed (exit status: 101).
          stderr:
          thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
          stack backtrace:
          0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
          1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
          2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
          3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
          4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
          5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
          6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
          7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
          8: 0x5614542fb4f2 - rust_begin_unwind
          9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
          10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
          11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
          12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
          13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
          14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
          15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
          16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
          17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
          18: 0x56145427d7f3 - main
          19: 0x7f8388d3024e - __libc_start_call_main
          20: 0x7f8388d30309 - __libc_start_main_alias_1
          21: 0x5614542798c5 - _start
          22: 0x0 - <unknown>
          failures:
          src/lib.rs - (line 18)
          src/lib.rs - ReadmeDoctests (line 1244)
          test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
          error: test failed, to rerun pass '--doc'
          

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              ReadmeDoctests test flaky in fresh repo #42

              Description

              @chkno

              The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

              For example, I ran cargo test 100 times and it failed 12 times.
              ... But then I ran it a thousand more times and never saw it fail again.
              But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

              So it somehow seems to be related to running tests from a fresh repo?

              The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

              First run of cargo test after fresh clone:

              ...
              running 51 tests
              ...
              test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
              Doc-tests commitlog
              running 2 tests
              test src/lib.rs - (line 18) ... ok
              test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
              failures:
              ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
              Test executable failed (exit status: 101).
              stderr:
              thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
              stack backtrace:
              0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
              1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
              2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
              3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
              4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
              5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
              6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
              7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
              8: 0x55c5028954f2 - rust_begin_unwind
              9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
              10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
              11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
              12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
              13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
              14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
              15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
              16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
              17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
              18: 0x55c5028177f3 - main
              19: 0x7f3c8cd9c24e - __libc_start_call_main
              20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
              21: 0x55c5028138c5 - _start
              22: 0x0 - <unknown>
              failures:
              src/lib.rs - ReadmeDoctests (line 1244)
              test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
              error: test failed, to rerun pass '--doc'
              

              Subsequent runs:

              $ cargo test
              Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
              Finished test [unoptimized + debuginfo] target(s) in 5.09s
              Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
              running 51 tests
              ...
              test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
              Doc-tests commitlog
              running 2 tests
              test src/lib.rs - (line 18) ... FAILED
              test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
              failures:
              ---- src/lib.rs - (line 18) stdout ----
              Test executable failed (exit status: 101).
              stderr:
              thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
              stack backtrace:
              0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
              1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
              2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
              3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
              4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
              5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
              6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
              7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
              8: 0x55c37ec034f2 - rust_begin_unwind
              9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
              10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
              11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
              12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
              13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
              14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
              15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
              16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
              17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
              18: 0x55c37eb857f3 - main
              19: 0x7f1b6139324e - __libc_start_call_main
              20: 0x7f1b61393309 - __libc_start_main_alias_1
              21: 0x55c37eb818c5 - _start
              22: 0x0 - <unknown>
              ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
              Test executable failed (exit status: 101).
              stderr:
              thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
              stack backtrace:
              0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
              1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
              2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
              3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
              4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
              5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
              6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
              7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
              8: 0x5614542fb4f2 - rust_begin_unwind
              9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
              10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
              11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
              12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
              13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
              14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
              15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
              16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
              17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
              18: 0x56145427d7f3 - main
              19: 0x7f8388d3024e - __libc_start_call_main
              20: 0x7f8388d30309 - __libc_start_main_alias_1
              21: 0x5614542798c5 - _start
              22: 0x0 - <unknown>
              failures:
              src/lib.rs - (line 18)
              src/lib.rs - ReadmeDoctests (line 1244)
              test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
              error: test failed, to rerun pass '--doc'
              

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  ReadmeDoctests test flaky in fresh repo #42

                  Description

                  @chkno

                  The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

                  For example, I ran cargo test 100 times and it failed 12 times.
                  ... But then I ran it a thousand more times and never saw it fail again.
                  But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

                  So it somehow seems to be related to running tests from a fresh repo?

                  The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

                  First run of cargo test after fresh clone:

                  ...
                  running 51 tests
                  ...
                  test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
                  Doc-tests commitlog
                  running 2 tests
                  test src/lib.rs - (line 18) ... ok
                  test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                  failures:
                  ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                  Test executable failed (exit status: 101).
                  stderr:
                  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
                  stack backtrace:
                  0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                  1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
                  2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                  3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                  4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
                  5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                  6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                  7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                  8: 0x55c5028954f2 - rust_begin_unwind
                  9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                  10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
                  11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
                  12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
                  13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                  14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                  15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                  16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                  17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                  18: 0x55c5028177f3 - main
                  19: 0x7f3c8cd9c24e - __libc_start_call_main
                  20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
                  21: 0x55c5028138c5 - _start
                  22: 0x0 - <unknown>
                  failures:
                  src/lib.rs - ReadmeDoctests (line 1244)
                  test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
                  error: test failed, to rerun pass '--doc'
                  

                  Subsequent runs:

                  $ cargo test
                  Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
                  Finished test [unoptimized + debuginfo] target(s) in 5.09s
                  Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
                  running 51 tests
                  ...
                  test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
                  Doc-tests commitlog
                  running 2 tests
                  test src/lib.rs - (line 18) ... FAILED
                  test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                  failures:
                  ---- src/lib.rs - (line 18) stdout ----
                  Test executable failed (exit status: 101).
                  stderr:
                  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                  stack backtrace:
                  0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                  1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
                  2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                  3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                  4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
                  5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                  6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                  7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                  8: 0x55c37ec034f2 - rust_begin_unwind
                  9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                  10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
                  11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                  12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
                  13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                  14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                  15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                  16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                  17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                  18: 0x55c37eb857f3 - main
                  19: 0x7f1b6139324e - __libc_start_call_main
                  20: 0x7f1b61393309 - __libc_start_main_alias_1
                  21: 0x55c37eb818c5 - _start
                  22: 0x0 - <unknown>
                  ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                  Test executable failed (exit status: 101).
                  stderr:
                  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                  stack backtrace:
                  0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                  1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
                  2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                  3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                  4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
                  5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                  6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                  7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                  8: 0x5614542fb4f2 - rust_begin_unwind
                  9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                  10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
                  11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                  12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
                  13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                  14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                  15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                  16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                  17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                  18: 0x56145427d7f3 - main
                  19: 0x7f8388d3024e - __libc_start_call_main
                  20: 0x7f8388d30309 - __libc_start_main_alias_1
                  21: 0x5614542798c5 - _start
                  22: 0x0 - <unknown>
                  failures:
                  src/lib.rs - (line 18)
                  src/lib.rs - ReadmeDoctests (line 1244)
                  test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
                  error: test failed, to rerun pass '--doc'
                  

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      ReadmeDoctests test flaky in fresh repo #42

                      Description

                      @chkno

                      The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

                      For example, I ran cargo test 100 times and it failed 12 times.
                      ... But then I ran it a thousand more times and never saw it fail again.
                      But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

                      So it somehow seems to be related to running tests from a fresh repo?

                      The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

                      First run of cargo test after fresh clone:

                      ...
                      running 51 tests
                      ...
                      test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
                      Doc-tests commitlog
                      running 2 tests
                      test src/lib.rs - (line 18) ... ok
                      test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                      failures:
                      ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                      Test executable failed (exit status: 101).
                      stderr:
                      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
                      stack backtrace:
                      0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                      1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
                      2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                      3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                      4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
                      5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                      6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                      7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                      8: 0x55c5028954f2 - rust_begin_unwind
                      9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                      10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
                      11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
                      12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
                      13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                      14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                      15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                      16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                      17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                      18: 0x55c5028177f3 - main
                      19: 0x7f3c8cd9c24e - __libc_start_call_main
                      20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
                      21: 0x55c5028138c5 - _start
                      22: 0x0 - <unknown>
                      failures:
                      src/lib.rs - ReadmeDoctests (line 1244)
                      test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
                      error: test failed, to rerun pass '--doc'
                      

                      Subsequent runs:

                      $ cargo test
                      Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
                      Finished test [unoptimized + debuginfo] target(s) in 5.09s
                      Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
                      running 51 tests
                      ...
                      test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
                      Doc-tests commitlog
                      running 2 tests
                      test src/lib.rs - (line 18) ... FAILED
                      test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                      failures:
                      ---- src/lib.rs - (line 18) stdout ----
                      Test executable failed (exit status: 101).
                      stderr:
                      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                      stack backtrace:
                      0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                      1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
                      2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                      3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                      4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
                      5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                      6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                      7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                      8: 0x55c37ec034f2 - rust_begin_unwind
                      9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                      10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
                      11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                      12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
                      13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                      14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                      15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                      16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                      17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                      18: 0x55c37eb857f3 - main
                      19: 0x7f1b6139324e - __libc_start_call_main
                      20: 0x7f1b61393309 - __libc_start_main_alias_1
                      21: 0x55c37eb818c5 - _start
                      22: 0x0 - <unknown>
                      ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                      Test executable failed (exit status: 101).
                      stderr:
                      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                      stack backtrace:
                      0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                      1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
                      2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                      3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                      4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
                      5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                      6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                      7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                      8: 0x5614542fb4f2 - rust_begin_unwind
                      9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                      10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
                      11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                      12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
                      13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                      14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                      15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                      16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                      17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                      18: 0x56145427d7f3 - main
                      19: 0x7f8388d3024e - __libc_start_call_main
                      20: 0x7f8388d30309 - __libc_start_main_alias_1
                      21: 0x5614542798c5 - _start
                      22: 0x0 - <unknown>
                      failures:
                      src/lib.rs - (line 18)
                      src/lib.rs - ReadmeDoctests (line 1244)
                      test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
                      error: test failed, to rerun pass '--doc'
                      

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          ReadmeDoctests test flaky in fresh repo #42

                          Description

                          @chkno

                          The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

                          For example, I ran cargo test 100 times and it failed 12 times.
                          ... But then I ran it a thousand more times and never saw it fail again.
                          But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

                          So it somehow seems to be related to running tests from a fresh repo?

                          The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

                          First run of cargo test after fresh clone:

                          ...
                          running 51 tests
                          ...
                          test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
                          Doc-tests commitlog
                          running 2 tests
                          test src/lib.rs - (line 18) ... ok
                          test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                          failures:
                          ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                          Test executable failed (exit status: 101).
                          stderr:
                          thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
                          stack backtrace:
                          0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                          1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
                          2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                          3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                          4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
                          5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                          6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                          7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                          8: 0x55c5028954f2 - rust_begin_unwind
                          9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                          10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
                          11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
                          12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
                          13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                          14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                          15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                          16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                          17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                          18: 0x55c5028177f3 - main
                          19: 0x7f3c8cd9c24e - __libc_start_call_main
                          20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
                          21: 0x55c5028138c5 - _start
                          22: 0x0 - <unknown>
                          failures:
                          src/lib.rs - ReadmeDoctests (line 1244)
                          test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
                          error: test failed, to rerun pass '--doc'
                          

                          Subsequent runs:

                          $ cargo test
                          Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
                          Finished test [unoptimized + debuginfo] target(s) in 5.09s
                          Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
                          running 51 tests
                          ...
                          test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
                          Doc-tests commitlog
                          running 2 tests
                          test src/lib.rs - (line 18) ... FAILED
                          test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                          failures:
                          ---- src/lib.rs - (line 18) stdout ----
                          Test executable failed (exit status: 101).
                          stderr:
                          thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                          stack backtrace:
                          0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                          1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
                          2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                          3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                          4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
                          5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                          6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                          7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                          8: 0x55c37ec034f2 - rust_begin_unwind
                          9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                          10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
                          11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                          12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
                          13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                          14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                          15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                          16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                          17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                          18: 0x55c37eb857f3 - main
                          19: 0x7f1b6139324e - __libc_start_call_main
                          20: 0x7f1b61393309 - __libc_start_main_alias_1
                          21: 0x55c37eb818c5 - _start
                          22: 0x0 - <unknown>
                          ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                          Test executable failed (exit status: 101).
                          stderr:
                          thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                          stack backtrace:
                          0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                          1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
                          2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                          3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                          4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
                          5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                          6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                          7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                          8: 0x5614542fb4f2 - rust_begin_unwind
                          9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                          10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
                          11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                          12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
                          13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                          14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                          15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                          16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                          17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                          18: 0x56145427d7f3 - main
                          19: 0x7f8388d3024e - __libc_start_call_main
                          20: 0x7f8388d30309 - __libc_start_main_alias_1
                          21: 0x5614542798c5 - _start
                          22: 0x0 - <unknown>
                          failures:
                          src/lib.rs - (line 18)
                          src/lib.rs - ReadmeDoctests (line 1244)
                          test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
                          error: test failed, to rerun pass '--doc'
                          

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              ReadmeDoctests test flaky in fresh repo #42

                              Description

                              @chkno

                              The ReadmeDoctests tests introduced in #37 sometimes fail non-deterministically.

                              For example, I ran cargo test 100 times and it failed 12 times.
                              ... But then I ran it a thousand more times and never saw it fail again.
                              But then I made a fresh clone of the this repo, ran cargo test 100 times, and saw it fail 22 times!

                              So it somehow seems to be related to running tests from a fresh repo?

                              The first failure's error message says something about AlreadyExists and all later error messages are about CorruptLog:

                              First run of cargo test after fresh clone:

                              ...
                              running 51 tests
                              ...
                              test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
                              Doc-tests commitlog
                              running 2 tests
                              test src/lib.rs - (line 18) ... ok
                              test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                              failures:
                              ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                              Test executable failed (exit status: 101).
                              stderr:
                              thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/lib.rs:9:40
                              stack backtrace:
                              0: 0x55c50288126c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                              1: 0x55c5028aaefe - core::fmt::write::ha076a7e65c6b1874
                              2: 0x55c50288e551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                              3: 0x55c502895325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                              4: 0x55c502894f82 - std::panicking::default_hook::h92625161492e6b48
                              5: 0x55c502895841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                              6: 0x55c5028815a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                              7: 0x55c502881384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                              8: 0x55c5028954f2 - rust_begin_unwind
                              9: 0x55c502813783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                              10: 0x55c502813813 - core::result::unwrap_failed::h7a3045feac200afb
                              11: 0x55c502814c5a - core::result::Result<T,E>::unwrap::hb5c78b479aba5702
                              12: 0x55c50281747c - rust_out::main::h7cf9d0438004d406
                              13: 0x55c502814283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                              14: 0x55c502813df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                              15: 0x55c502813e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                              16: 0x55c502888295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                              17: 0x55c502813e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                              18: 0x55c5028177f3 - main
                              19: 0x7f3c8cd9c24e - __libc_start_call_main
                              20: 0x7f3c8cd9c309 - __libc_start_main_alias_1
                              21: 0x55c5028138c5 - _start
                              22: 0x0 - <unknown>
                              failures:
                              src/lib.rs - ReadmeDoctests (line 1244)
                              test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
                              error: test failed, to rerun pass '--doc'
                              

                              Subsequent runs:

                              $ cargo test
                              Compiling commitlog v0.2.0 (/home/chkno/devel/commitlog)
                              Finished test [unoptimized + debuginfo] target(s) in 5.09s
                              Running unittests src/lib.rs (/home/chkno/devel/commitlog/target/debug/deps/commitlog-20e23766e29d907f)
                              running 51 tests
                              ...
                              test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
                              Doc-tests commitlog
                              running 2 tests
                              test src/lib.rs - (line 18) ... FAILED
                              test src/lib.rs - ReadmeDoctests (line 1244) ... FAILED
                              failures:
                              ---- src/lib.rs - (line 18) stdout ----
                              Test executable failed (exit status: 101).
                              stderr:
                              thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                              stack backtrace:
                              0: 0x55c37ebef26c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                              1: 0x55c37ec18efe - core::fmt::write::ha076a7e65c6b1874
                              2: 0x55c37ebfc551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                              3: 0x55c37ec03325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                              4: 0x55c37ec02f82 - std::panicking::default_hook::h92625161492e6b48
                              5: 0x55c37ec03841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                              6: 0x55c37ebef5a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                              7: 0x55c37ebef384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                              8: 0x55c37ec034f2 - rust_begin_unwind
                              9: 0x55c37eb81783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                              10: 0x55c37eb81813 - core::result::unwrap_failed::h7a3045feac200afb
                              11: 0x55c37eb82ba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                              12: 0x55c37eb85562 - rust_out::main::h7cf9d0438004d406
                              13: 0x55c37eb82283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                              14: 0x55c37eb81df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                              15: 0x55c37eb81e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                              16: 0x55c37ebf6295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                              17: 0x55c37eb81e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                              18: 0x55c37eb857f3 - main
                              19: 0x7f1b6139324e - __libc_start_call_main
                              20: 0x7f1b61393309 - __libc_start_main_alias_1
                              21: 0x55c37eb818c5 - _start
                              22: 0x0 - <unknown>
                              ---- src/lib.rs - ReadmeDoctests (line 1244) stdout ----
                              Test executable failed (exit status: 101).
                              stderr:
                              thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CorruptLog', src/lib.rs:16:54
                              stack backtrace:
                              0: 0x5614542e726c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf2ea00d5f3b53d9f
                              1: 0x561454310efe - core::fmt::write::ha076a7e65c6b1874
                              2: 0x5614542f4551 - std::io::Write::write_fmt::h9630bb3b0fe886f5
                              3: 0x5614542fb325 - std::panicking::default_hook::{{closure}}::h64163197f96398c1
                              4: 0x5614542faf82 - std::panicking::default_hook::h92625161492e6b48
                              5: 0x5614542fb841 - std::panicking::rust_panic_with_hook::hfdd7d6bb6788c6c2
                              6: 0x5614542e75a7 - std::panicking::begin_panic_handler::{{closure}}::he81a60a7ef84ad4a
                              7: 0x5614542e7384 - std::sys_common::backtrace::__rust_end_short_backtrace::h62801bf9780239e6
                              8: 0x5614542fb4f2 - rust_begin_unwind
                              9: 0x561454279783 - core::panicking::panic_fmt::hfd221b9f37504b4a
                              10: 0x561454279813 - core::result::unwrap_failed::h7a3045feac200afb
                              11: 0x56145427aba6 - core::result::Result<T,E>::unwrap::hb37e00b8d64d32aa
                              12: 0x56145427d562 - rust_out::main::h7cf9d0438004d406
                              13: 0x56145427a283 - core::ops::function::FnOnce::call_once::h3166193039ac9aa5
                              14: 0x561454279df9 - std::sys_common::backtrace::__rust_begin_short_backtrace::h4035ab9eaf427f7b
                              15: 0x561454279e69 - std::rt::lang_start::{{closure}}::h61c7438f2ca2ee26
                              16: 0x5614542ee295 - std::rt::lang_start_internal::h09bcc9fffd987f14
                              17: 0x561454279e51 - std::rt::lang_start::hc4bcc3e322e6b48a
                              18: 0x56145427d7f3 - main
                              19: 0x7f8388d3024e - __libc_start_call_main
                              20: 0x7f8388d30309 - __libc_start_main_alias_1
                              21: 0x5614542798c5 - _start
                              22: 0x0 - <unknown>
                              failures:
                              src/lib.rs - (line 18)
                              src/lib.rs - ReadmeDoctests (line 1244)
                              test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
                              error: test failed, to rerun pass '--doc'
                              

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions