Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Feb 2026 23:43:39 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 293252] grep(1) hangs when trying to colorize multiple patterns
Message-ID:  <bug-293252-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293252

            Bug ID: 293252
           Summary: grep(1) hangs when trying to colorize multiple
                    patterns
           Product: Base System
           Version: 14.3-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: freebsd@tim.thechases.com

To reproduce:

    $ printf 'one\ntwo\nthree\n' | /usr/bin/grep --color=always -ie ^ -e wo
    one

Expected behavior:

It *should* print all lines (everything matches the "^", but as a zero-width
atom, not highlight it), highlighting the "wo" in "two".  This is how Ubuntu's
grep(1) behaves.  OpenBSD's grep doesn't support --color so I can't reproduce
there.

Current behavior:

It prints the "one" line then it hangs indefinitely pegging a CPU to 100%
according to top(1).

Observations:

- It works if the second pattern starts at the beginning of a line (searching
for "tw" instead of "wo"):

    $ printf 'one\ntwo\nthree\n' | grep --color=always -i -e '^' -e tw

- It works if I don't _also_ search for the beginning of the line:

    $ printf 'one\ntwo\nthree\n' | grep --color=always -i -e wo

- It works if I search for '$' as the first pattern instead:

    $ printf 'one\ntwo\nthree\n' | grep --color=always -i -e '$' -e wo

- It works if I swap the order of the two:

    $ printf 'one\ntwo\nthree\n' | grep --color=always -i -e wo -e ^

If I remove the `--color=always` it works.

    $ printf 'one\ntwo\nthree\n' | grep -i -e '^' -e wo

So there's something in the interaction of the three (the `^` pattern coming
first, a second not-starting-at-the-beginning-of-the-line pattern, and the
`--color=always`) that seems to trigger the process-hang/infinite-loop issue.

-- 
You are receiving this mail because:
You are the assignee for the bug.

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-293252-227>