Bug 998687

Summary: SIGSEGV storm instead of Manual Partitioning
Product: [Fedora] Fedora Reporter: Steve Tyler <stephent98>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: anaconda-maint-list, dshea, g.kaviyarasu, jonathan, mkolman, pschindl, robatino, sbueno, stephent98, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-23 18:35:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 980649    
Attachments:
Description Flags
anaconda.log
none
ifcfg.log
none
program.log
none
storage.log
none
screenshot showing SIGSEGV storm in terminal running strace
none
core_backtrace
none
coredump.xz
none
full gdb backtrace with symbols and line numbers none

Description Steve Tyler 2013-08-19 19:12:58 UTC
Description of problem:
While testing a patch to fix Bug 997690, it was found that a SIGSEGV storm occurs after attempting to enter Manual Partitioning.

Version-Release number of selected component (if applicable):
anaconda-20.6-1 patched with Attachment 788148 [details]
Fedora-20-Nightly-x86_64-Live-desktop-20130816.11-1.iso

How reproducible:
Always.

Steps to Reproduce:
[Copied from Bug 997690, Comment 18]
Confirming that the patch fixes this bug.

Procedure:

$ qemu-img create f20-test-1.img 12G
Do a minimal F19 install with default storage configuration.

$ qemu-kvm -m 8192 -hda f20-test-1.img -cdrom ~/xfr/fedora/nightly-composes/Fedora-20-Nightly-x86_64-Live-desktop-20130816.11-1.iso -vga std -boot menu=on

Start patched anaconda-20.6-1 installer.

Click Installation Destination.
Installation Destination dialog is displayed.
Click Done.
The SizeNotPositiveError exception does not occur here.
Installation Options dialog is displayed.

What follows appears to be a different bug:

Click Cancel ...
Click Done.
Click Reclaim Space.
Reclaim Disk Space dialog is displayed.

Click Cancel.
Click Done.
Click Custom partitioning.

Installation Summary is unexpectedly displayed with all elements grayed.
The pointer is responsive, but no links respond to clicks, and no tooltips are displayed.
From a terminal, it can be seen that there is no anaconda-tb-* in /tmp.
Attaching to anaconda with strace shows the it is rapidly receiving repeated SIGSEGVs.

Actual results:
Installation Summary is displayed with all elements grayed.
Manual Partitioning is not displayed.

Expected results:
Manual Partitioning is displayed.

Additional info:
Bug 997690 - SizeNotPositiveError: bytes= param must be >=0
Attachment 788148 [details] - proposed patch: drop unneeded variable required_space_text

Comment 1 Steve Tyler 2013-08-19 19:17:19 UTC
Created attachment 788183 [details]
anaconda.log

Comment 2 Steve Tyler 2013-08-19 19:17:52 UTC
Created attachment 788184 [details]
ifcfg.log

Comment 3 Steve Tyler 2013-08-19 19:18:19 UTC
Created attachment 788185 [details]
program.log

Comment 4 Steve Tyler 2013-08-19 19:19:02 UTC
Created attachment 788186 [details]
storage.log

Comment 5 Steve Tyler 2013-08-19 19:30:02 UTC
Created attachment 788188 [details]
screenshot showing SIGSEGV storm in terminal running strace

Comment 6 Steve Tyler 2013-08-20 08:09:45 UTC
*** Bug 998837 has been marked as a duplicate of this bug. ***

Comment 7 Steve Tyler 2013-08-20 08:25:44 UTC
Created attachment 788380 [details]
core_backtrace

ABRT did not attach a backtrace to Bug 998837, but I was able to copy core_backtrace and coredump from the VM to the host.

Procedure:

$ qemu-kvm -m 9216 -hda f20-test-1.img -cdrom ~/xfr/fedora/nightly-composes/Fedora-20-Nightly-x86_64-Live-desktop-20130816.11-1.iso -vga std -boot menu=on

From a terminal:
1. Install "patch" into live environment:
   $ sudo yum install patch -y
2. Apply patch to storage.py from:
   Bug 997690 - SizeNotPositiveError: bytes= param must be >=0
3. Comment out installation of a SIGSEGV handler in /usr/sbin/anaconda.
4. Increase core file size to "unlimited":
   # ulimit -c unlimited
5. $ sudo liveinst
6. Follow procedure in Comment 0 to induce SIGSEGV.

Comment 8 Steve Tyler 2013-08-20 08:32:14 UTC
The SIGSEGV is occurring in anaconda_lb_move_window_to_parent().

Snippet from attached core_backtrace:
...
      , {   "crash_thread": true
        ,   "frames":
              [ {   "address": 140649066616067
                ,   "build_id": "13454083dcb5157eecb0312e14068807dd61d290"
                ,   "build_id_offset": 54531
                ,   "function_name": "anaconda_lb_move_window_to_parent"
                ,   "file_name": "/lib64/libAnacondaWidgets.so.0"
                ,   "fingerprint": "86994671d932742528245ae990b235a64d3c8139"
                }
...

Comment 9 Steve Tyler 2013-08-20 08:42:47 UTC
Created attachment 788383 [details]
coredump.xz

Before compression:
$ file coredump 
coredump: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from '/usr/bin/python /sbin/anaconda --liveinst --method=livecd:///dev/mapper/live-os'

Compressed with:
$ xz -e9 -v coredump

Comment 10 Steve Tyler 2013-08-21 18:19:23 UTC
Created attachment 788959 [details]
full gdb backtrace with symbols and line numbers

Thread 1 (Thread 0x7feb8f584740 (LWP 2208)):
#0  0x00007feb69a75503 in anaconda_lb_move_window_to_parent (
    parent=parent@entry=0x324b3d0, e=<optimized out>, 
    window=window@entry=0x362c450) at lightbox.c:47

Captured with these gdb commands:
set logging on x1.log
t a a bt

Comment 11 Steve Tyler 2013-08-22 05:13:12 UTC
Proposing as an F20AlphaBlocker per:
"The installer must be able to complete an installation to a single disk using automatic partitioning."
https://fedoraproject.org/wiki/Fedora_20_Alpha_Release_Criteria

Even with an empty disk, I could not complete automatic storage configuration, because the installer flew into a SIGSEGV storm.

NB: The patch for Bug 997690 must be applied first:
Bug 997690 - SizeNotPositiveError: bytes= param must be >=0

Tested with:
$ qemu-img create f20-test-2.img 12G
$ qemu-kvm -m 9216 -hda f20-test-2.img -cdrom ~/xfr/fedora/nightly-composes/Fedora-20-Nightly-x86_64-Live-desktop-20130818.10-1.iso -vga std -boot menu=on

Comment 12 Steve Tyler 2013-08-22 05:46:40 UTC
The window pointer is no longer valid:

$ cat bz998687-gdb-frame0-1.log 
$ gdb python coredump
...
(gdb) frame 0
#0  0x00007feb69a75503 in anaconda_lb_move_window_to_parent (
    parent=parent@entry=0x324b3d0, e=<optimized out>,
    window=window@entry=0x362c450) at lightbox.c:47
47          if (!GTK_IS_WIDGET(parent) || !GTK_IS_WINDOW(window))
(gdb) print *parent
$1 = {parent_instance = {g_type_instance = {g_class = 0x3270b40},
    ref_count = 5, qdata = 0x34790c0}, priv = 0x324b310}
(gdb) print *window
$2 = {bin = {container = {widget = {parent_instance = {g_type_instance = {
            g_class = 0xaaaaaaaaaaaaaaaa}, ref_count = 2863311530,
          qdata = 0xaaaaaaaaaaaaaaaa}, priv = 0xaaaaaaaaaaaaaaaa},
      priv = 0xaaaaaaaaaaaaaaaa}, priv = 0xaaaaaaaaaaaaaaaa},
  priv = 0xaaaaaaaaaaaaaaaa}
(gdb) quit

Comment 13 David Shea 2013-08-23 18:35:54 UTC

*** This bug has been marked as a duplicate of bug 983319 ***