Package: pulsemixer Version: 1.5.1-1.1 Severity: normal Sending SIGINT to pulsemixer (e.g. by pressing Ctrl-C) prints a traceback on stdout:
,---- | Traceback (most recent call last): | File "/usr/lib/python3.11/curses/__init__.py", line 94, in wrapper | return func(stdscr, *args, **kwds) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/bin/pulsemixer", line 1275, in run | c = self.getch() | ^^^^^^^^^^^^ | File "/usr/bin/pulsemixer", line 1103, in getch | self.ev.wait() | File "/usr/lib/python3.11/threading.py", line 629, in wait | signaled = self._cond.wait(timeout) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/lib/python3.11/threading.py", line 327, in wait | waiter.acquire() | File "/usr/bin/pulsemixer", line 1243, in <lambda> | signal.signal(signal.SIGINT, lambda s, f: self.terminate()) | ^^^^^^^^^^^^^^^^ | File "/usr/bin/pulsemixer", line 1228, in terminate | sys.exit() | SystemExit | | During handling of the above exception, another exception occurred: | | Traceback (most recent call last): | File "/usr/bin/pulsemixer", line 2054, in <module> | main() | File "/usr/bin/pulsemixer", line 1948, in main | curses.wrapper(Screen(CFG.ui.color, CFG.ui.mouse).run) | File "/usr/lib/python3.11/curses/__init__.py", line 101, in wrapper | endwin() | _curses.error: endwin() returned ERR `---- The reason is that curses.endwin() is run twice, by the signal handler pulsemixer sets up and by curses.wrapper. In ncurses patchlevel 20231111 and later, calling endwin() twice in a row is considered an error. See bug #1058041 for more information. This is the signal handler which pulsemixer sets up: ,---- | def terminate(self): | # if ^C pressed while sleeping in reconnect wrapper.restore won't be called | # so have to restore it manually here | self.screen.keypad(0) | curses.echo() | curses.nocbreak() | curses.endwin() | sys.exit() `---- I don't know if the comment is actually true, this should best be discussed with upstream. Unfortunately they have been inactive for the last 3.5 years. :-( -- System Information: Debian Release: trixie/sid APT prefers unstable APT policy: (500, 'unstable'), (101, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 6.1.67-nouveau (SMP w/2 CPU threads; PREEMPT) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages pulsemixer depends on: ii libpulse0 16.1+dfsg1-2+b1 ii python3 3.11.6-1 pulsemixer recommends no packages. pulsemixer suggests no packages. -- no debconf information