ISO Boot Kernel Empty after clicking generate

Bug #1860682 reported by Josh
This bug report is a duplicate of:  Bug #1860618: Hangs on copying ISO boot kernel . Edit Remove
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cubic
High
Cubic PPA

Bug Description

System I'm running cubic from:
Desktop - Ubuntu 16.04, 4.15.0-74-generic kernel.

Iso I'm editing: Ubuntu 16.04, kernel 4.15.0-74-generic

I can get to the options page (4 tabs) I have tried the suggestion of re-installing the kernel but still have no options in my iso boot kernel tab.

I have also tested with a standard default Ubuntu 16.04 iso downloaded directly from Ubuntu without making any edits.

2020.01-60-release~202001191802~ubuntu16.04.1

Cubic PPA (cubic-wizard)
Changed in cubic:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Cubic PPA (cubic-wizard)
Revision history for this message
Cubic PPA (cubic-wizard) wrote :

This bug may be the same as or related to Bug #1860618, "Hangs on copying ISO boot kernel Edit".

Changed in cubic:
importance: High → Medium
importance: Medium → High
Revision history for this message
Cubic PPA (cubic-wizard) wrote :

Ubuntu 16.04 uses Python 3.5.

Unfortuntely, versions of python prior to 3.7 do not guarantee that the order of dictionary elements is preserved when extracting values from a dictionary.

As a result, Cubic is not able to display kernel details on the Kernels tab.

This situation manifests itself as various different exceptions.

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

One exception ocurrs when Cubic tries to display the kernel details.

In the example below, Cubic expected a string value in one of the columns. Instead, a string value appeared in the column, because the column items were out of order.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Traceback (most recent call last):
  File "/usr/share/cubic/display.py", line 546, in _update_liststore_rows
    liststore.append(data)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 956, in append
    return self._do_insert(-1, row)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 947, in _do_insert
    row, columns = self._convert_row(row)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 857, in _convert_row
    result.append(self._convert_value(cur_col, value))
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 875, in _convert_value
    return GObject.Value(self.get_column_type(column), value)
  File "/usr/lib/python3/dist-packages/gi/overrides/GObject.py", line 218, in __init__
    self.set_value(py_value)
  File "/usr/lib/python3/dist-packages/gi/overrides/GObject.py", line 274, in set_value
    (py_value, type(py_value)))
ValueError: Expected string but got True<class 'bool'>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Revision history for this message
Cubic PPA (cubic-wizard) wrote :
Download full text (3.5 KiB)

Another exception ocurrs when Cubic tries to copy selected kernel files, after the user clicks the "Generate" button.

In the example below, Cubic is unable to copy the vmlinuz file because the source directory is interchanged with the kernel version, and the target destination is interchanged with the note associated with the selected kernel. Again the column mixup, resulting from the limitation of how Python 3.5 handles dictionaries, results in an exception.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Update ISO boot files
The selected kernel is index number 0
Delete existig files with pattern. /home/psingh/16.04.06/custom-live-
                                    iso/casper/vmlinuz*
Copy file.......................... Number 1 of 2
The source file is................. 4.15.0-45/vmlinuz
The target file is................. /home/psingh/16.04.06/custom-live-
                                    iso/casper/You are currently running
                                    kernel version 4.15.0-45. This
                                    kernel is used to bootstrap the
                                    original live ISO image. Reference
                                    these files as <tt>vmlinuz</tt> and
                                    <tt>initrd</tt> in the ISO boot
                                    configurations.
Execute asynchronously............. rsync --archive --no-relative --no-
                                    implied-dirs --info=progress2
                                    "4.15.0-45/vmlinuz"
                                    "/home/psingh/16.04.06/custom-live-
                                    iso/casper/You are currently running
                                    kernel version 4.15.0-45. This
                                    kernel is used to bootstrap the
                                    original live ISO image. Reference
                                    these files as <tt>vmlinuz</tt> and
                                    <tt>initrd</tt> in the ISO boot
                                    configurations."
Set a new process for thread id.... 140019202504448
The new process id is.............. 2783
• The start time is................ 20:50:58.274352
• Completed........................ 0%
• The end time is.................. 20:50:58.292688
Exception encountered in thread.... 140019202504448
Ignore exception?.................. No
The tracekback is.................. Traceback (most recent call last):
                                    File
                                    "/usr/share/cubic/transition.py",
                                    line 93, in run self.action()
                                    File
            ...

Read more...

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

Based on this, the exception in Bug #1860618 may also be a manifestation of this same issue.

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

The resolution to this bug will be to explicitly extract each item, in the correct order, from the kernel details dictionaries when displaying columns on Cubic's Kernels tab.

This will avoid the issue in the values() method on dictionaries in Python 3.5.

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

Fix released to Release branch 61.

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

Fix released to Development branch 212.

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

Josh,

Please install the latest version, and let me know if it solves your problem?

    $ sudo apt update
    $ sudo apt install cubic

(Make sure the Cubic version is 2020.01-60).

Revision history for this message
Cubic PPA (cubic-wizard) wrote :

CORRECTION: (Make sure the Cubic version is 2020.01-61).

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers