Viewing files at commit 1dc7410826b4Commit detailsView latest

Browse files
suites/merge/known_bugs.json 135 lines · 6.7 KB · json
1
{
2
  "note": "Known Oak bugs this suite reproduces. IDs fb-537..fb-541 were filed by o-4d 2026-09-28 from QA standalone repros (bench-program/repro-p3). An oak-wrong row maps to a bug only if EVERY reason on the row matches that bug's reason_patterns (regex, re.search) and its optional scenario_glob. expected_rows pins the rows each bug produced on oak 0.105.0; the summary reports new_rows and vanished_rows per bug so a fix (rows vanish) or a regression hiding behind a known bug (new rows) is visible. Setup-step failures are harness-error (setup_failed:), never mapped.",
3
  "bugs": [
4
    {
5
      "id": "fb-540",
6
      "family": "F5",
7
      "severity": "Blocker",
8
      "title": "file<->directory transitions make oak pull (and oak switch) fail; the failed pull can move HEAD with a pre-merge worktree, or leave a half-merged worktree with HEAD unchanged",
9
      "reason_patterns": [
10
        "^oak_error: IO error: File exists \\(os error 17\\)",
11
        "^oak_error: IO error: Not a directory \\(os error 20\\)",
12
        "^oak_error: cannot build tree with both file \"[^\"]*\" and child path ",
13
        "^oak_error: refusing to replace non-empty directory '[^']*' with a tracked file",
14
        "^failed_pull_moved_head_worktree_stale: ",
15
        "^failed_pull_left_worktree_dirty: "
16
      ],
17
      "expected_rows": [
18
        "gix-cartesian/matrix/add-free-a--file-to-dir|A-B",
19
        "gix-cartesian/matrix/add-free-a--rename-and-file-to-dir|A-B",
20
        "gix-cartesian/matrix/add-free-b--file-to-dir|A-B",
21
        "gix-cartesian/matrix/add-free-b--rename-and-file-to-dir|A-B",
22
        "gix-cartesian/matrix/delete-occupied--file-to-dir|A-B",
23
        "gix-cartesian/matrix/delete-occupied--rename-and-file-to-dir|A-B",
24
        "gix-cartesian/matrix/keep--file-to-dir|A-B",
25
        "gix-cartesian/matrix/keep--rename-and-file-to-dir|A-B",
26
        "gix-cartesian/matrix/modify-occupied--file-to-dir|A-B",
27
        "gix-cartesian/matrix/modify-occupied--rename-and-file-to-dir|A-B",
28
        "gix-cartesian/matrix/modify-source--file-to-dir|A-B",
29
        "gix-cartesian/matrix/modify-source--file-to-dir|B-A",
30
        "gix-cartesian/matrix/modify-source--rename-and-file-to-dir|A-B",
31
        "gix-cartesian/matrix/modify-source--rename-and-file-to-dir|B-A",
32
        "gix-tree/added-file-vs-added-directory/A-B|A-B",
33
        "gix-tree/added-file-vs-added-directory/A-B|B-A",
34
        "gix-tree/deleted-file-replaced-by-renamed-dir/A-B|B-A",
35
        "gix-tree/nested-rename-blocks-relocated-addition/A-B|A-B",
36
        "gix-tree/nested-rename-blocks-relocated-addition/A-B|B-A",
37
        "gix-tree/non-tree-to-tree-with-rename/A-B|A-B",
38
        "gix-tree/non-tree-to-tree-with-rename/A-B|B-A",
39
        "gix-tree/non-tree-to-tree/A-B|A-B",
40
        "gix-tree/non-tree-to-tree/A-B|B-A",
41
        "gix-tree/rename-delete-after-consumed-path/A-B|A-B",
42
        "gix-tree/renamed-file-inside-renamed-directory/A-B|A-B",
43
        "gix-tree/renamed-file-replaced-by-renamed-dir/A-B|A-B",
44
        "gix-tree/renamed-file-replaced-by-renamed-dir/A-B|B-A",
45
        "gix-tree/same-source-rewrites-after-consumed-path/A-B|A-B",
46
        "gix-tree/simple/side-1-2-various-conflicts|side1-side2",
47
        "gix-tree/simple/side-1-2-various-conflicts|side2-side1",
48
        "gix-tree/simple/tweak1-side2|side2-tweak1",
49
        "gix-tree/simple/tweak1-side2|tweak1-side2",
50
        "gix-tree/tree-to-non-tree-with-rename/A-B|A-B",
51
        "gix-tree/tree-to-non-tree-with-rename/A-B|B-A",
52
        "gix-tree/tree-to-non-tree/A-B|A-B",
53
        "gix-tree/tree-to-non-tree/A-B|B-A",
54
        "gix-tree/unrelated-renames-overlapping-destinations/A-B|A-B",
55
        "gix-tree/unrelated-renames-overlapping-destinations/A-B|B-A"
56
      ]
57
    },
58
    {
59
      "id": "fb-538",
60
      "family": "F2",
61
      "severity": "High",
62
      "title": "symlinks (or symlink vs file) changed on both sides are text-merged; target committed with glued conflict markers",
63
      "reason_patterns": [
64
        "^committed_conflict_markers_symlink: "
65
      ],
66
      "expected_rows": [
67
        "gix-tree/rename-add-symlink/A-B|B-A",
68
        "gix-tree/symlink-addition/A-B|A-B",
69
        "gix-tree/symlink-addition/A-B|B-A",
70
        "gix-tree/symlink-modification/A-B|A-B",
71
        "gix-tree/symlink-modification/A-B|B-A",
72
        "gix-tree/type-change-to-symlink/A-B|A-B",
73
        "gix-tree/type-change-to-symlink/A-B|B-A",
74
        "gix-tree/unrelated-renames-to-same-path-with-type-mismatch/A-B|B-A"
75
      ]
76
    },
77
    {
78
      "id": "fb-537",
79
      "family": "F1+F3",
80
      "severity": "Blocker",
81
      "title": "conflict markers committed as a clean merge when a merge input lacks a final newline (text and UTF-8-decodable binary)",
82
      "reason_patterns": [
83
        "^committed_conflict_markers_no_final_newline: "
84
      ],
85
      "expected_rows": [
86
        "gix-text/complex/conflict-without-LF|ours-theirs",
87
        "gix-text/complex/conflict-without-LF|theirs-ours",
88
        "gix-text/complex/marker-newline-handling-crlf|ours-theirs",
89
        "gix-text/complex/marker-newline-handling-crlf|theirs-ours",
90
        "gix-text/complex/marker-newline-handling-lf2|ours-theirs",
91
        "gix-text/complex/marker-newline-handling-lf2|theirs-ours",
92
        "gix-text/complex/marker-newline-handling-lf|ours-theirs",
93
        "gix-text/complex/marker-newline-handling-lf|theirs-ours",
94
        "gix-text/complex/missing-LF-at-EOF|ours-theirs",
95
        "gix-text/unique-merge-base-with-insertion|ours-theirs",
96
        "gix-text/unique-merge-base-with-insertion|theirs-ours",
97
        "gix-tree/both-modify-binary/A-B|A-B",
98
        "gix-tree/both-modify-binary/A-B|B-A"
99
      ]
100
    },
101
    {
102
      "id": "fb-539",
103
      "family": "F4",
104
      "severity": "High",
105
      "title": "mode change silently lost (chmod vs content edit, or both sides disagree on mode)",
106
      "reason_patterns": [
107
        "^lost_mode_change: "
108
      ],
109
      "expected_rows": [
110
        "generated/s20260928-004|A-B",
111
        "generated/s20260928-014|A-B",
112
        "generated/s20260928-021|A-B",
113
        "generated/s20260928-022|A-B",
114
        "generated/s20260928-026|A-B",
115
        "gix-tree/identical-renames-to-same-destination-with-mode-change/A-B|A-B",
116
        "gix-tree/identical-renames-to-same-destination-with-mode-change/A-B|B-A",
117
        "gix-tree/remove-executable-mode/A-B|B-A",
118
        "gix-tree/same-rename-different-mode/A-B|A-B",
119
        "gix-tree/same-rename-different-mode/A-B|B-A"
120
      ]
121
    },
122
    {
123
      "id": "fb-541",
124
      "family": "F6",
125
      "severity": "Medium",
126
      "title": "criss-cross with divergent resolutions merges silently (one best common ancestor picked)",
127
      "reason_patterns": [
128
        "^expectation_violated\\[criss_cross_divergent_resolution\\]: "
129
      ],
130
      "expected_rows": [
131
        "git-t6416-criss-cross-modify-delete|branch-into-main-sync"
132
      ]
133
    }
134
  ]
135
}