Bug 1316751

Summary: gdm was terminated by an abortion on RHEL7.2.
Product: Red Hat Enterprise Linux 7 Reporter: kyoneyama <kyoneyam>
Component: gdmAssignee: Ray Strode [halfline] <rstrode>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: cww, dkochuka, joboyer, yuokada
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-19 15:19:16 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:

Description kyoneyama 2016-03-11 02:18:51 UTC
Description of problem:

gdm was terminated by an abortion on RHEL7.2.

The below is a backtrace when gdm was terminated.

  (gdb) bt
  #0  0x00007f4742a355f7 in __GI_raise (sig=1197) at ../nptl/sysdeps/unix/sysv/linux/raise.c:54
  #1  0x00007f4742a36ce8 in __GI_abort () at abort.c:92
  #2  0x00007f47432516d5 in g_assertion_message (domain=domain@entry=0x0, file=file@entry=0x7f4744498e55 "gdm-display.c", line=line@entry=1255, 
    func=func@entry=0x7f4744499750 <__FUNCTION__.25856> "gdm_display_dispose", 
    message=message@entry=0x7f474516b350 "assertion failed: (display->priv->slave == NULL)") at gtestutils.c:2292
  #3  0x00007f474325176a in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x7f4744498e55 "gdm-display.c", line=line@entry=1255, 
    func=func@entry=0x7f4744499750 <__FUNCTION__.25856> "gdm_display_dispose", expr=expr@entry=0x7f4744498e63 "display->priv->slave == NULL")
    at gtestutils.c:2307
  #4  0x00007f47444648f0 in gdm_display_dispose (object=0x7f4745129490) at gdm-display.c:1255			***
  #5  0x00007f474352ead2 in g_object_unref (_object=0x7f4745129490) at gobject.c:3133


Some asserts has been done in Frame#4.

  1244 static void
  1245 gdm_display_dispose (GObject *object)
  1246 {
  1247         GdmDisplay *display;
  1248 
  1249         display = GDM_DISPLAY (object);
  1250 
  1251         g_debug ("GdmDisplay: Disposing display");
  1252 
  1253         g_assert (display->priv->status == GDM_DISPLAY_FINISHED ||
  1254                   display->priv->status == GDM_DISPLAY_FAILED);
  1255         g_assert (display->priv->slave == NULL);				***
  1256         g_assert (display->priv->user_access_file == NULL);
  1257         g_assert (display->priv->access_file == NULL);			***
  1258 
  1259         G_OBJECT_CLASS (gdm_display_parent_class)->dispose (object);
  1260 }

An allocation should previously be released, but dit not be released.

  (gdb) p display
  $1 = (GdmDisplay *) 0x7f4745129490
  (gdb) p display->priv
  $2 = (GdmDisplayPrivate *) 0x7f47451293f0
  (gdb) p display->priv->status
  $3 = 3
  (gdb) p display->priv->slave							***
  $4 = (GdmSlave *) 0x7f4745129570
  (gdb) p display->priv->user_access_file
  $5 = (GdmDisplayAccessFile *) 0x0
  (gdb) p display->priv->access_file						***
  $6 = (GdmDisplayAccessFile *) 0x7f4745164560




Version-Release number of selected component (if applicable):

  - kernel-3.10.0-327.4.4.el7.x86_64
  - gdm-3.14.2-12.el7
  - glib2-2.42.2-5.el7

How reproducible:

  This problem is not reproducible.

Steps to Reproduce:

  No reproducer.

Actual results:

  gdm aborted.

Expected results:

  gdm does not abort, the desktop starts correctly.

Additional info:

Comment 6 Yuki Okada 2017-12-19 01:39:57 UTC
The same issue was reported in case 01985799.
Could you continue the investigation?

Comment 7 Ray Strode [halfline] 2017-12-19 15:19:16 UTC
This particular crash got fixed in 7.4 as part of the rebase to GDM 3.22.