rapidquilt icon indicating copy to clipboard operation
rapidquilt copied to clipboard

Rapidquilt attempted to rollback a patch and that failed.

Open ptesarik opened this issue 2 years ago • 4 comments

The attached series triggers a bug. Output with RUST_BACKTRACE=1 rapidquilt push -a --dry-run --threads=1 (just to make sure it's not a race condition, but it also fails multi-threaded):

Applying 1 patches single-threaded...
thread 'main' panicked at 'Rapidquilt attempted to rollback a patch and that failed. This is a bug. Failure report: FilePatchApplyReport { any_failed: true, hunk_reports: [Failed(NoMatchingLines), Skipped, Applied { line: 4850, rollback_line: 4850, offset: -26, line_count_diff: 31, fuzz: 0 }], direction: Revert, fuzz: 0, previous_permissions: None }', src/libpatch/patch/mod.rs:649:13
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: libpatch::patch::FilePatch<&[u8]>::rollback
   3: rapidquilt::apply::diagnostics::analyze_patch_failure
   4: rapidquilt::apply::sequential::apply_patches
   5: rapidquilt::cmd::run
   6: rapidquilt::main

ptesarik avatar Dec 02 '22 17:12 ptesarik

Does it work with 0.6.5?

hramrach avatar Dec 02 '22 17:12 hramrach

Does it work with 0.6.5?

No. Nor 0.6.4, or 0.6.3. Version 0.6.2 segfaults.

ptesarik avatar Dec 02 '22 17:12 ptesarik

Just to make one thing clear, the series does NOT apply. This is the output of quilt push:

Applying patch s390-qeth-cache-link_info-for-ethtool
patching file qeth_core_main.c
Hunk #1 succeeded at 4849 (offset 105 lines).
Hunk #2 FAILED at 4753.
Hunk #3 FAILED at 4832.
2 out of 3 hunks FAILED -- rejects in file qeth_core_main.c
Patch s390-qeth-cache-link_info-for-ethtool does not apply (enforce with -f)

But it shouldn't trigger a bug.

ptesarik avatar Dec 02 '22 18:12 ptesarik

Another instance:

Applying 66387 patches using 4 threads... Saving modified files... thread '' panicked at src/libpatch/patch/mod.rs:649:13: Rapidquilt attempted to rollback a patch and that failed. This is a bug. Failure report: FilePatchApplyReport { any_failed: true, hunk_reports: [Applied { line: 241, rollback_line: 241, offset: -217, line_count_diff: 2, fuzz: 0 }, Failed(NoMatchingLines), Applied { line: 270, rollback_line: 272, offset: -221, line_count_diff: -3, fuzz: 0 }], direction: Revert, fuzz: 0, previous_permissions: Some(Permissions(FilePermissions { mode: 0o100444 (-r--r--r--) })) } stack backtrace: 0: rust_begin_unwind 1: core::panicking::panic_fmt 2: libpatch::patch::FilePatch<&[u8]>::rollback 3: rayon::iter::plumbing::bridge_producer_consumer::helper 4: rayon::iter::plumbing::bridge_producer_consumer::helper 5: rayon::iter::plumbing::bridge_producer_consumer::helper 6: rapidquilt::apply::parallel::apply_patches 7: <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute 8: rayon_core::registry::WorkerThread::wait_until_cold note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

branch users/msuchanek/tmp/rapidquild-BUG in kernel-source

hramrach avatar Jul 19 '24 17:07 hramrach