Page MenuHomePhabricator

Quibble --command is no more interactive causing "bash" to show no prompt
Closed, ResolvedPublic

Description

quibble -c bash should drop in an environment showing a prompt. That worked in 1.4.7 but does not in master :(

Bisected to 3c27b18cc535e8b238563a6f8106ad2d3b799003 which wrap subprocess in order to capture output. That was for T331061.

The subprocess calls got replaced by a wrapper around subprocess.Popen with stdout=PIPE, stderr=STDOUT. That hides the fact the process is running from an interactive shell :)

Event Timeline

From bash man page:

An interactive shell [...] whose standard input and error are both connected to terminals (as determinated by isatty)

The patch made stderr to be sent to stdout which itself is a non interactive pipe. Fun times.

I have recently encountered the same issue, I can't remember in which of our tool though. Definitely a python application and maybe that was Quibble itself.

Change 1013111 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/quibble@master] Do not capture commands output in interactive mode

https://gerrit.wikimedia.org/r/1013111

Change #1013111 merged by jenkins-bot:

[integration/quibble@master] Do not capture commands output in interactive mode

https://gerrit.wikimedia.org/r/1013111

Change #1014014 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/quibble@master] release: Quibble 1.7.0

https://gerrit.wikimedia.org/r/1014014

Change #1014014 merged by jenkins-bot:

[integration/quibble@master] release: Quibble 1.7.0

https://gerrit.wikimedia.org/r/1014014

Change #1014039 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] dockerfiles: update Quibble to 1.7.0

https://gerrit.wikimedia.org/r/1014039

Change #1014039 merged by jenkins-bot:

[integration/config@master] dockerfiles: update Quibble to 1.7.0

https://gerrit.wikimedia.org/r/1014039

hashar claimed this task.