[disco desktop] Installation fails with parted_server: No data in infifo. parted_server: Line 2387. CRITICAL ERROR!!! EXITING.

Bug #1818285 reported by Jean-Baptiste Lallement
40
This bug affects 8 people
Affects Status Importance Assigned to Milestone
partman-base (Ubuntu)
Fix Released
Critical
Unassigned
Disco
Fix Released
Critical
Unassigned
ubiquity (Ubuntu)
Fix Released
Critical
Unassigned
Disco
Fix Released
Critical
Unassigned

Bug Description

Ubuntu Desktop Disco amd64

Last known good version: ubiquity 19.04.5

Automated preseeded tests of Ubuntu Desktop Disco, started failing on Feb. 4th with this error in partman log:

/bin/partman: *******************************************************
/lib/partman/init.d/30parted: *******************************************************
parted_server: ======= Starting the server
parted_server: main_loop: iteration 1
parted_server: Opening infifo
/lib/partman/init.d/30parted: IN: OPEN =dev=vda /dev/vda
parted_server: No data in infifo.
parted_server: Line 2387. CRITICAL ERROR!!! EXITING.

/var/log/ and journal attached to this report.

Maybe it's a coincidence but it started after the upload of partman-crypto.

Manual installation with Ubiquity fails too with the same error.

Test Case:
1. Boot to the live session
2. Launch Ubiquity
3. Press 'Next' on all the steps keeping the default

Actual Result:
You cannot go beyond the 'Updates and Other software' page.

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
description: updated
description: updated
tags: added: rls-dd-incoming
Steve Langasek (vorlon)
Changed in partman-base (Ubuntu Disco):
importance: Undecided → Critical
tags: removed: rls-dd-incoming
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

preseed file used for installation.

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

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

Changed in partman-base (Ubuntu):
status: New → Confirmed
Revision history for this message
Ubuntu budgie (ubuntu-budgie) wrote :

Confirmed that this observation affects the Ubuntu Budgie 19.04 daily build. Ubiquity installer doesnt go beyond the "Updates and other software" wizard in either live-session or normal install.

summary: - [disco desktop] preseeded installation fails with parted_server: No data
- in infifo. parted_server: Line 2387. CRITICAL ERROR!!! EXITING.
+ [disco desktop] Installation fails with parted_server: No data in
+ infifo. parted_server: Line 2387. CRITICAL ERROR!!! EXITING.
description: updated
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

This is actually a regression in Ubiquity 19.04.6 and likely different from the issue observed starting on feb. 4th.
19.04.5 works fine.

affects: partman-base (Ubuntu Disco) → ubiquity (Ubuntu Disco)
description: updated
Revision history for this message
Pavlushka (pavelsayekat) wrote :

Effects Xubuntu 19.04 and Ubuntu-Mate 19.04 20190301, 20190302, 20190303 builds as well for Ubiquity 19.04.6 versions.

tags: added: id-5c798d83bd99660d50979555
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

I'm reassigning to partman-base.

If I replace /bin/parted_server from Ubiquity 19.04.6 by the version of the binary package of 19.04.5 it fixes the issue. According to the d-i manifest and the source diff only user-setup has been updated in .6 but the following files are different:

ubiquity_19.04.5_amd64/bin/blockdev-wipe
ubiquity_19.04.5_amd64/bin/log-output
ubiquity_19.04.5_amd64/bin/mapdevfs
ubiquity_19.04.5_amd64/bin/parted_devices
ubiquity_19.04.5_amd64/bin/parted_server
ubiquity_19.04.5_amd64/bin/partmap
ubiquity_19.04.5_amd64/sbin/set-date-epoch
ubiquity_19.04.5_amd64/usr/lib/grub-installer/ensure-active
ubiquity_19.04.5_amd64/usr/lib/partconf/find-partitions
ubiquity_19.04.5_amd64/usr/lib/partconf/mkfstab
ubiquity_19.04.5_amd64/usr/lib/partconf/mountpoint
ubiquity_19.04.5_amd64/usr/lib/ubiquity/bin/ubiquity
ubiquity_19.04.5_amd64/usr/lib/ubiquity/choose-mirror/choose-mirror
ubiquity_19.04.5_amd64/usr/lib/ubiquity/console-setup/kbdnames.gz
ubiquity_19.04.5_amd64/usr/lib/ubiquity/localechooser/languagelist.data.gz
ubiquity_19.04.5_amd64/usr/lib/ubiquity/netcfg/netcfg
ubiquity_19.04.5_amd64/usr/lib/ubiquity/ubiquity/gsettings.py
ubiquity_19.04.5_amd64/usr/lib/ubiquity/user-setup/user-setup-apply
ubiquity_19.04.5_amd64/usr/share/doc/ubiquity/changelog.gz

affects: ubiquity (Ubuntu Disco) → partman-base (Ubuntu Disco)
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

A diff of the symbol tables of both builds of parted_server shows that the symbols for sscanf and fscanf are different

$ diff -u <(nm -D 19.04.5/parted_server) <(nm -D 19.04.6/parted_server)
--- /dev/fd/63 2019-03-04 09:24:40.172170149 +0100
+++ /dev/fd/62 2019-03-04 09:24:40.172170149 +0100
@@ -22,7 +22,6 @@
                  U fputs
                  U free
                  U freopen
- U fscanf
                  U getenv
                  U getpid
                  U getppid
@@ -31,6 +30,8 @@
 0000000000015170 B infifo
 0000000000015090 D infifo_name
 0000000000011000 R _IO_stdin_used
+ U __isoc99_fscanf
+ U __isoc99_sscanf
                  w _ITM_deregisterTMCloneTable
                  w _ITM_registerTMCloneTable
                  U kill
@@ -118,7 +119,6 @@
                  U sigaction
                  U sigemptyset
                  U sleep
- U sscanf
                  U __stack_chk_fail
 0000000000015140 B stderr
 0000000000015050 D stopfifo_name

This bug could be due to a new version of gcc used to build parted_server.

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

ewwww.... isoc99 are bad ones.... ideally we should be using gnu14/gnu11 standard from this millennium.

Changed in ubiquity (Ubuntu Disco):
status: New → Confirmed
importance: Undecided → Critical
Revision history for this message
Iain Lane (laney) wrote :

* An archaic GNU extension to scanf, under which '%as', '%aS', and
  '%a[...]' meant to scan a string and allocate space for it with
  malloc, is now restricted to programs compiled in C89 or C++98 mode
  with _GNU_SOURCE defined. This extension conflicts with C99's use of
  '%a' to scan a hexadecimal floating-point number, which is now
  available to programs compiled as C99 or C++11 or higher, regardless
  of _GNU_SOURCE.

  POSIX.1-2008 includes the feature of allocating a buffer for string input
  with malloc, using the modifier letter 'm' instead. Programs using
  '%as', '%aS', or '%a[...]' with the old GNU meaning should change to
  '%ms', '%mS', or '%m[...]' respectively. Programs that wish to use
  the C99 '%a' no longer need to avoid _GNU_SOURCE.

  GCC's -Wformat warnings can detect most uses of this extension, as
  long as all functions that call vscanf, vfscanf, or vsscanf are
  annotated with __attribute__ ((format (scanf, ...))).

I should think the bug is due to this, from the glibc 2.29 update. partman-base uses '%as' a lot. Indeed the build log does show warnings along those lines:

parted_server.c: In function ‘scan_device_name’:
parted_server.c:1187:25: warning: format ‘%a’ expects argument of type ‘float *’, but argument 3 has type ‘char **’ [-Wformat=]
         if (1 != iscanf("%as", &device_name))
                         ^~~~~ ~~~~~~~~~~~~

I've locally tested a change to replace '%as' (and one occurrence of '%a[...]') with '%ms' ('%m[...]') and my first test (running 30parted directly) works.

Revision history for this message
Iain Lane (laney) wrote :
Revision history for this message
Iain Lane (laney) wrote :
Revision history for this message
Colin Watson (cjwatson) wrote :

LGTM - I merged the Debian MR, thanks.

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

partman-base merged & uploaded.

next up - ubiquity rebuild, iso daily.

Changed in partman-base (Ubuntu Disco):
status: Confirmed → Fix Committed
Changed in ubiquity (Ubuntu Disco):
status: Confirmed → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubiquity - 19.04.6.1

---------------
ubiquity (19.04.6.1) disco; urgency=medium

  * Automatic update of included source packages: partman-base
    206ubuntu1 (LP: #1818285).

 -- Iain Lane <email address hidden> Tue, 05 Mar 2019 12:49:08 +0000

Changed in ubiquity (Ubuntu Disco):
status: In Progress → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.3 KiB)

This bug was fixed in the package partman-base - 206ubuntu1

---------------
partman-base (206ubuntu1) disco; urgency=medium

  * Resynchronise with Debian. Remaining changes:
    - Ubiquity integration: If PARTMAN_NO_COMMIT is set, then exit rather
      than running commit.d and finish.d scripts; add a partman-commit
      script; dump extra information to /var/lib/partman/snoop if
      PARTMAN_SNOOP is set; check for per-menu 'no_show_choices' file in
      ask_user and don't reshow the menu if it exists.
    - Don't skip over dmraid devices if the user chooses not to activate
      them.
    - If the only thing mounted on a disk is the installation medium and it
      uses more or less the whole disk, then silently exclude that disk; if
      the installation medium is mounted but doesn't use the whole disk,
      issue a warning that partitioning may be difficult; if anything else
      is mounted, offer to unmount it. partman/filter_mounted=false disables
      this.
    - debian/control: replace harddrive-detection Depends with the specific
      disk-detect version needed (>= 1.95ubuntu4) to support multipath-tools
      0.5.0. There are no other harddrive-detection providers yet anyway.
    - Multipath support:
      - lib/base.sh: is_multipath_part(): Use 'p' (not '-part') as multipath
        disk-partition separator.
      - lib/base.sh: humandev(): Accept spaces in multipath WWID.
      - init.d/parted: part_of_multipath(): Update grep expression for more
        recent output of 'multipath -l'.
      - lib/base.sh: drop the p separator for multipath partitions

partman-base (206) unstable; urgency=medium

  [ Iain Lane ]
  * Replace use of '%as' (and '%a[...]') scanf directives with '%ms'
    (LP: #1818285).

partman-base (205) unstable; urgency=medium

  * Team upload

  [ Updated translations ]
  * Hebrew (he.po) by Yaron Shahrabani
  * Vietnamese (vi.po) by Trần Ngọc Quân

partman-base (204) unstable; urgency=medium

  * Team upload

  [ Updated translations ]
  * Hebrew (he.po) by Yaron Shahrabani
  * Kazakh (kk.po) by Baurzhan Muftakhidinov
  * Traditional Chinese (zh_TW.po) by Louies

partman-base (203) unstable; urgency=medium

  * Team upload

  [ Holger Wansing ]
  * Remove trailing whitespaces from changelog file, to fix lintian tag.

  [ Updated translations ]
  * Danish (da.po) by Joe Hansen
  * Greek (el.po) by Vangelis Skarmoutsos
  * Persian (fa.po) by Nima Sahraneshin

partman-base (202) unstable; urgency=medium

  * Team upload

  [ Updated translations ]
  * Latvian (lv.po) by Tranzistors
  * Marathi (mr.po) by Nayan Nakhare

partman-base (201) unstable; urgency=medium

  * Team upload

  [ Holger Wansing ]
  * Change deprecated Priority: extra into optional.

  [ Updated translations ]
  * Finnish (fi.po) by Juhani Numminen
  * Galician (gl.po) by mantinan
  * Tamil (ta.po) by Dr.T.Vasudevan

partman-base (200) unstable; urgency=medium

  * Team upload

  [ Cyril Brulebois ]
  * Update Vcs-{Browser,Git} to point to salsa (alioth's replacement).

  [ Updated translations ]
  * Hebrew (he.po) by Yaron Shahrabani

partman-base (199) unstable; urgency=medium

  [ Updated translations ]
  * Esperanto (eo.po) by F...

Read more...

Changed in partman-base (Ubuntu Disco):
status: Fix Committed → Fix Released
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.