Skip to content

bug: fast-forward merge into a branch with a child makes the child unreadable #683

Description

@azimafroozeh

What happened

Reading branch b1 after its parent b0 took a fast-forward merge from main and then wrote once fails with historical published dataset version 3 was reclaimed; it should return b1's two rows, a and n1. Found by a random branch and merge sequence generator over the .gqt corpus format (in development); Steps is its shrunk case.

Steps to reproduce

--- schema
node Person {
    name: String @key
}

--- seed
{"type":"Person","data":{"name":"a"}}

--- mutate
branch create b0

--- expect ok

--- mutate branch: b0
query b0_n1() {
    insert Person { name: "n1" }
}

--- expect affected: nodes=1 edges=0

--- mutate
branch create b1 from b0

--- expect ok

--- mutate
branch merge b0

--- expect outcome: fast_forward

--- mutate
query main_n0() {
    insert Person { name: "n0" }
}

--- expect affected: nodes=1 edges=0

--- mutate
branch merge main into b0

--- expect outcome: fast_forward

--- mutate branch: b0
query b0_n2() {
    insert Person { name: "n2" }
}

--- expect affected: nodes=1 edges=0

--- query branch: b1
query b1_persons() {
    match { $p: Person }
    return { $p.name }
}

Version

omnigraph 0.10.0, main @ ad425c6, built from source (Lance 11.0.0)

Environment

macOS 26 (Darwin 25.5), arm64, local file backend; not run on object storage

Logs / output

historical published dataset version 3 was reclaimed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P-highHigh priorityacceptedTriaged and validated; open for a PRbugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions