Skip to content

Unable to see terminal input after beet bad #6750

Description

@NHendrickson9616

Problem

Running this command in verbose (-vv) mode:

$ beet -vv bad

Led to this problem:

After `beet bad` finishes, my terminal is left in a broken state where I cannot see what I type at the next shell prompt. Input still appears to be accepted, but typed characters are not echoed.

Pressing Ctrl-C shows `^C`, but it does not restore normal terminal input. The spacing between `^C` and the next prompt also looks larger than normal.

Running either of these fixes the terminal until the next time I run `beet bad`:

reset
stty sane

Redirecting stdout/stderr does not fully solve the issue:

beet bad > ~/beet-bad.log 2>&1

This makes me suspect that `beet bad`, or one of the external checker commands invoked by the `badfiles` plugin, is leaving the terminal/TTY in a modified state, possibly with echo disabled.

Here's a link to the music files that trigger the bug (if relevant):

Setup

  • OS: Ubuntu Linux
  • Python version: TODO: paste output of python --version
  • beets version: 2.11.0
  • Turning off plugins made problem go away (yes/no): TODO

My configuration (output of beet config) is:

directory: /path/to/Music
library: ~/path/to/beets/library.db
paths:
    default: $albumartist/$album/$id-$title
    singleton: Non-Album/$artist/$id-$title
    comp: Compilations/$album/$id-$title
replace:
    '[\\/]': _
    '^\.+': _
    '[\x00-\x1f]': _
    '[<>:"\?\*\|]': _
    '\.$': _
    '\s+': _
import:
    copy: yes
    write: yes 
plugins:
    - musicbrainz
    - chroma
    - badfiles
    - info
    - unimported
badfiles:
    check_on_import: yes
    commands:
      m4a: /path/to/Scripts/music/check-m4a-ffmpeg

Additional notes:

beet bad is mainly just outputing these warnings which I am working with:

WARNING, cannot check MD5 signature since it was unset in the STREAMINFO

I do not know whether that warning is related to the terminal state issue. The terminal echo problem happens after running beet bad, and reset or stty sane restores the terminal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions