systemd-fsckd: useless CR displayed on console

Bug #1692353 reported by Laurent
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
systemd (Ubuntu)
Fix Released
Undecided
Dimitri John Ledkov

Bug Description

Hello,

My system is "Ubuntu 16.04.2 LTS" (grep DISTRIB_DESCRIPTION /etc/lsb-release).

The systemd package is installed:
  $ dpkg -l | grep systemd
  > systemd 229-4ubuntu17

I noticed that approximately 15 seconds after the boot, a useless
Carriage Return ('\r') is displayed on the console (/dev/console).
This character interacts with the display of the user currently logued in
on the console. This screws the current line, when users is pressing keys.

After monitoring system activity, I found the culprit:
  /lib/systemd/system/systemd-fsckd.service

To test, run:
  service systemd-fsckd stop # In case, it is still running.
  service systemd-fsckd start
Go to the console, wait for approximately 15 seconds, and you see the cursor
jumping from its current position to the beginning of the line. This is the BUG.
Note: the console is not the X11 terminal (xterm, lxterminal, etc.) ; the
console is the text tty reached with Control-Alt-F1.

The systemd-fsckd.service starts the following daemon:
  /lib/systemd/systemd-fsckd
This is the daemon which displays two useless '\r' characters.

I went to:
  http://packages.ubuntu.com/xenial/systemd

I downloaded:
  http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/systemd_229-4ubuntu10.debian.tar.xz

The file debian/patches/fsckd-daemon-for-inter-fsckd-communication.patch
contains:
+static int manager_write_console(Manager *m, const char *message) {
[...]
+ if (message) {
+ fprintf(console, "\r%s\r%n", message, &l);
+ if (m->clear < (size_t)l)
+ m->clear = (size_t)l;
+ } else {
+ fputc('\r', console);
+ for (j = 0; j < m->clear; j++)
+ fputc(' ', console);
+ fputc('\r', console);
+ }

So, when no message was previously displayed, "m->clear" is still set to 0.

Then, when the program ends it calls:
+ /* clear last line */
+ manager_write_console(m, NULL);

However, in the "else" above, two '\r' characters are displayed, surrounding
no space characters.

So, when no message was previously displayed, there is nothing to clear, so
no '\r' character to display.

A trivial patch is attached. It is untested.

Tags: patch ddstreet
Revision history for this message
Laurent (laurent35263) wrote :
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "patch_to_remove_useless_cr.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in systemd (Ubuntu):
status: New → Confirmed
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Interesting.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Didrocks, would you be able to review this patch?

Changed in systemd (Ubuntu):
assignee: nobody → Didier Roche (didrocks)
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Thanks for submitting this patch and sorry for the time to review it!

The patch looks good to me, I would love though to get that directly upstream rather than us carrying a distro-patch for a small issue like this, do you mind doing a PR there? https://github.com/systemd/systemd/

Changed in systemd (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Laurent (laurent35263) wrote :

Hello,

Thank you for your reply.

Unfortunately, the bug is NOT in upstream systemd, but in a Ubuntu specific patch.

A few things changed since last year:

Systemd version is now 229-4ubuntu21.2.

Its source is now at:
  http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/systemd_229-4ubuntu21.2.debian.tar.xz

The bugged function manager_write_console() is still there inside:
  debian/patches/fsckd-daemon-for-inter-fsckd-communication.patch

The new patch is attached. This patch can be used to patch the Ubuntu specific patch.

Thank you.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Interesting, I was sure we upstreamed completely systemd-fsckd. Anyway, +1 for me, let me assign to xnox who is doing most of systemd uploads nowdays so that he attaches it to next upload.

Many thanks!

Changed in systemd (Ubuntu):
assignee: Didier Roche (didrocks) → Dimitri John Ledkov (xnox)
status: Incomplete → Triaged
Revision history for this message
Zhang Youfu (zhangyoufu) wrote :

This bug still exists in 19.04 Disco. Please fix it.

Dan Streetman (ddstreet)
tags: added: ddstreet
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 245.6-2ubuntu1

---------------
systemd (245.6-2ubuntu1) groovy; urgency=medium

  * Merge to Ubuntu from Debian unstable
    - Dropped changes:
      * dhclient-exit-hooks.d/timesyncd: Act only when systemd-timesyncd is enabled
  * hwdb: Mask rfkill event from intel-hid on HP platforms (LP: #1883846)
    File: debian/patches/hwdb-Mask-rfkill-event-from-intel-hid-on-HP-platforms.patch
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=c705323d61b9cd4e36ceb92e236cd6e9ba4c1b1a
  * debian/tests/tests-in-lxd: Show debugging info about reason of skipping test
    File: debian/tests/tests-in-lxd
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=1c835ca2d4f6d09977525d781d224a87ba7cde24
  * debian/tests/tests-in-lxd: Drop workaround removing fstab from the container
    (LP: #1886430)
    File: debian/tests/tests-in-lxd
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=f13213af98fa4c27c5f7e58c511b9691bb56065a

 -- Balint Reczey <email address hidden> Mon, 06 Jul 2020 16:30:25 +0200

Changed in systemd (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
bhs (bharath-vegito) wrote :

Requesting patch to be included in bionic-updates as well. Current systemd-version = 237-3ubuntu10.41 (https://bugs.launchpad.net/ubuntu/+source/systemd/237-3ubuntu10.41).

bhs (bharath-vegito)
summary: - systemd-fsckd : useless CR displayed on console
+ systemd-fsckd: useless CR displayed on console
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.