Michael Paquier <mich...@paquier.xyz> writes: > On Thu, Apr 04, 2024 at 07:09:53PM -0400, Tom Lane wrote: >> If you have time, that'd be great. What I suspect is that that >> machine's readline isn't regurgitating the string verbatim but is >> doing something fancy with backspaces or other control characters.
> I have been able to reproduce the failure manually and your patch is > providing more information, indeed, as of: > [10:21:44.017](0.002s) ok 83 - \r works > [10:24:45.462](181.445s) # pump_until: timeout expired when searching > for "(?^::\{\?VERBOSITY} )" with stream: "\echo :{?VERB^G^Mpostgres=# > \echo :\{\?VERBOSITY\} " > psql query timed out at > /home/pgbuildfarm/git/postgres/src/bin/psql/../../../src/test/perl/PostgreSQL/Test/BackgroundPsql.pm > line 281. > This stuff is actually kind of funny on this host, "\echo :{?VERB\t" > completes to something incorrect, as of: > postgres=# \echo :\{\?VERBOSITY\} Just to be clear: you see the extra backslashes if you try this tab-completion manually? > Attaching the log file, for reference. Now I can see that this uses > libedit at 3.1-20181209, which is far from recent. I'd be OK to just > remove libedit from the build to remove this noise, still I am > wondering if 927332b95e77 got what it was trying to achieve actually > right. Thoughts? It kind of looks like a libedit bug, but maybe we should dig more deeply. I felt itchy about 927332b95e77 removing '{' from the WORD_BREAKS set, and wondered exactly how that would change readline's behavior. But even if that somehow accounts for the extra backslash before '{', it's not clear how it could lead to '?' and '}' also getting backslashed. regards, tom lane