zed icon indicating copy to clipboard operation
zed copied to clipboard

Hang caused by applying "merge this" post-fork

Open philrz opened this issue 1 year ago • 2 comments

This hangs for me:

$ for n in $(seq 1 701); do  echo "{ts:$n}"; done | zq -z 'fork (=>pass =>pass) | merge this' -
{ts:1}
{ts:1}
{ts:2}
{ts:2}
...
{ts:699}
{ts:700}

Details

Repro is with Zed commit 491dadf.

The repro shown above runs fine if the upper end of the seq is 700, but once I change it to 701, it hangs. I originally found this in the Zed lake context, where the magic crossover was when the upper end of the seq went from 54656 (works ok) to 54657 (hangs).

I also noticed it doesn't happen if I instead do merge ts, which indeed is probably what a user would have intended here. But #3678 leads me to believe merge this should be acceptable.

philrz avatar Sep 16 '24 23:09 philrz

I checked in on this issue and confirmed it's still with us as of current super commit 47b1fb7.

Updating the repro command line for current flags/syntax:

$ super -version
Version: 47b1fb7d8

$ for n in $(seq 1 701); do  echo "{ts:$n}"; done | super -s -c 'fork (pass) (pass) | merge this' -
{ts:1}
{ts:1}
{ts:2}
{ts:2}
...
{ts:700}

philrz avatar Jul 06 '25 21:07 philrz

In a group discussion, we reached consensus that we're going to remove merge from the language as a user-facing operator, meaning it would no longer be possible for a user to hit this bug. That removal is now tracked in #6046. I'll close this issue once that one is addressed.

philrz avatar Jul 17 '25 22:07 philrz