Crash after terminal step

Bug #1861068 reported by Regolith Linux on 2020-01-28
This bug report is a duplicate of:  Bug #1860345: list index out of range . Edit Remove
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cubic
High
Cubic PPA
Classic
Undecided
Unassigned
Classic-development
High
Cubic PPA

Bug Description

Same set of steps for an Ubuntu 18.04.03 image fail consistently for a Ubuntu 19.10 based image. Program output during crash:

Execute synchronously.................. file
                                            "/home/kgilmer/dev/misc/regolith-
                                            iso/R1.3-eoan2/original-iso-
                                            mount/casper/initrd"
    • The version name is.................. None
    • The initrd version is................ 0.0.0-0
    Execute synchronously.................. file
                                            "/home/kgilmer/dev/misc/regolith-
                                            iso/R1.3-eoan2/original-iso-
                                            mount/casper/initrd"
    The file type information is........... /home/kgilmer/dev/misc/regolith-
                                            iso/R1.3-eoan2/original-iso-
                                            mount/casper/initrd: ASCII cpio
                                            archive (SVR4 with no CRC)
    Compression for initrd not found in.... /home/kgilmer/dev/misc/regolith-
                                            iso/R1.3-eoan2/original-iso-
                                            mount/casper/initrd
    The compression for initrd is.......... None
    Exception encountered in thread........ 139694616606464
    Ignore exception?...................... No
 The tracekback is...................... Traceback (most recent call last):
                                            File
                                            "/usr/share/cubic/transition.py",
                                            line 93, in run self.action()
                                            File
                                            "/usr/share/cubic/transition.py",
                                            line 398, in action self) File
                                            "/usr/share/cubic/transitions.py",
                                            line 1990, in transition__from__term
                                            inal_page__to__options_page _tra
                                            nsition__from__unknown_page__to__opt
                                            ions_page('terminal_page', thread)
                                            File
                                            "/usr/share/cubic/transitions.py",
                                            line 1102, in _transition__from__unk
                                            nown_page__to__options_page
                                            directory_2) File
                                            "/usr/share/cubic/utilities.py",
                                            line 2075, in
                                            create_kernel_details_list _upda
                                            te_kernel_details_list(kernel_detail
                                            s_list) File
                                            "/usr/share/cubic/utilities.py",
                                            line 2206, in
                                            _update_kernel_details_list kern
                                            el_details_list[selected_index]['is_
                                            selected'] = True IndexError: list
                                            index out of range
    Finished running thread with id........ 139694616606464

Regolith Linux (regolith-linux) wrote :

The host that was running Cubic that resulted in this crash was running on 18.04.03. I have now just tried running the same steps on a 19.10.04 host, and Cubic did not crash as before on the transition from the Terminal page. Perhaps it's a requirement that the host run the same version as the ISO to be generated...

Cubic PPA (cubic-wizard) wrote :

There is no requirement that the versions match.

Please be sure you have free disk space available! Usually, you need a at least 25GB to customize an ISO. I've seen this issue in the past where Cubic is run in a VM without enough virtual disk space.

If you get the chance, please try the Development version, 2020.01-213, and let me know if you experience the same bug, with the exact same scenario you tested earlier.

    # Uninstall Release Version
    $ sudo apt autoremove --purge cubic
    $ sudo apt-add-repository --remove ppa:cubic-wizard/release

    # Install Development Version
    $ sudo apt-add-repository ppa:cubic-wizard/development
    $ sudo apt update
    $ sudo apt install cubic

I'll also try the 18.04.03 and 19.10.04 combination to see what's going on. If I need additional information from you, I'll let you know.

Cubic PPA (cubic-wizard) on 2020-01-29
Changed in cubic:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Cubic PPA (cubic-wizard)
Cubic PPA (cubic-wizard) wrote :

I was able to reproduce this bug:
- Running Cubic on 18.04.3 Ubuntu Host
- Customizing 19.10 Ubuntu

Cubic PPA (cubic-wizard) wrote :

Regolith Linux,

This is the same problem as Issue #1 of Bug #1860345.

The fix for Bug #1860345 is currently available in the Development branch.

If you like, you can test this fix, and let me know if it works for you:

    $ sudo apt autoremove --purge cubic
    $ sudo apt-add-repository --remove ppa://cubic-wizard/release

    $ sudo apt-add-repository ppa://cubic-wizard/development
    $ sudo apt install cubic

Otherwise, if you want to wait, I will be promoting the fix to the Release branch before the end of this week.

Regolith Linux (regolith-linux) wrote :

Thank you for the quick response! I am unblocked as I'm able to generate my 19.10 ISO from another machine, but look forward to the fix for future releases.

As an aside, it would be nice if there was a global exception handler tied to the UI. The nature of the wizard is that it can take a long time for things to happen, and if there is a background crash, I end up not realizing it and just waiting at the window for something to happen. Ideally the crash would immediately be surfaced in the dialog so that the crash was obvious. I do not know how feasible this is in python+gtk but thought I'd mention it. Thanks again for your efforts!

Cubic PPA (cubic-wizard) wrote :

This is an excellent suggestion, and my plan is to add such a feature in a new version of Cubic.

There are some complicities in the user interface, because Cubic is a multi threaded application. To the user, the application seems simple and linear (click next or back buttons), but managing multiple threads to make things seem simple is indeed a challenge.

Cubic’s current “wizard” framework was developed when there were less features, an the intention was that errors would be shown immediately under the progress bars (if possible). As cubic evolved, som processing work needed to be done “between” the pages.

The error you experienced is an example of this, where Cubic attempts to figure out the right kernels to display while transitioning “between” the Terminal page and the Options page.

I am working on a new framework that would allow more easily adding additional pages. This way, we can add a page to show the processing progress as we calculate the kernels, the list of manifest packages, the boot Giles, the preseeded filed, etc.

With the ability to add new pages more easily to the UI, we can also insert a general error page, to make it easier for the user to know when things didn’t work out.

Finally, I’m very interested in errors that you encounter, in addition to this one. So please do report them!

Regolith Linux (regolith-linux) wrote :

I will surely continue to report any issues I find. Your future plans sound great, and I hope the development goes smoothly!

Cubic PPA (cubic-wizard) wrote :

Fix released to Development branch 214.
Fix released to Release branch 62.

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

Other bug subscribers