Public bug reported:

My home directory is on kerberized NFS.  If I try to unlock the
screensaver when my Kerberos ticket is expired, I don't get a password
entry dialog after the screen wakes up.  This worked properly in Lucid
but no longer works with Precise.

Steps to reproduce:

1)  Set up home directory on kerberized NFS.
2)  Set ticket life to just a couple minutes in /etc/krb5.conf (not necessary, 
but makes testing much easier!)
3)  Log in to a fresh account with the default desktop environment (unity)
4)  Lock the screen
5)  Come back when the kerberos ticket is expired, and press a key

Expected behavior:

Screen wakes up and gnome-password-dialog shows me a password prompt

Actual behavior:

Screen wakes up and I can move the mouse around, but I get no password
prompt

This is in Ubuntu 12.04 with the following package versions:

gnome-screensaver 3.4.1-0ubuntu1
libgtk-3-0 3.4.2-0ubuntu0.2
libglib2.0-0 2.32.3-0ubuntu1
dconf-gsettings-backend 0.12.0-0ubuntu1

If I run strace -f on the running gnome-screensaver before attempting to
unlock, I can see that the gnome-screensaver-dialog process hangs when
it tries to call stat() on my home directory.  This happens inside some
dconf code that gets called from gtk_init_with_args.  You can see this
by attaching gdb to the hung gnome-screensaver-dialog process in one ssh
session, and then running kinit in another ssh session to get a new
kerberos ticket.  Here's the backtrace with debugging symbols:

#0  0x00007f8621e46a05 in __GI___xstat (vers=<optimized out>, name=0x12b1cc0 
"/home/satwell", buf=0x7fffafc2e460)
   at ../sysdeps/unix/sysv/linux/wordsize-64/xstat.c:38
#1  0x00007f862258c480 in stat (__statbuf=0x7fffafc2e460, __path=0x12b1cc0 
"/home/satwell") at /usr/include/x86_64-linux-gnu/sys/stat.h:457
#2  g_file_test (filename=0x12b1cc0 "/home/satwell", test=G_FILE_TEST_IS_DIR) 
at /build/buildd/glib2.0-2.32.3/./glib/gfileutils.c:440
#3  0x00007f862258d7cd in g_mkdir_with_parents (pathname=<optimized out>, 
mode=448) at /build/buildd/glib2.0-2.32.3/./glib/gfileutils.c:248
#4  0x00007f861b5b4fa9 in dconf_shmdir_from_environment () at 
../common/dconf-shmdir.c:31
#5  0x00007f861b5b3ce1 in dconf_engine_get_session_dir () at 
../engine/dconf-engine.c:67
#6  dconf_engine_setup_user (engine=0x12ab5e0, i=0) at 
../engine/dconf-engine.c:98
#7  0x00007f861b5b4985 in dconf_engine_setup (engine=<optimized out>) at 
../engine/dconf-engine.c:216
#8  dconf_engine_new (profile=<optimized out>) at ../engine/dconf-engine.c:376
#9  0x00007f861b5b650b in dconf_settings_backend_init (dcsb=0x12b2010) at 
dconfsettingsbackend.c:662
#10 0x00007f8622ca0957 in g_type_create_instance (type=<optimized out>) at 
/build/buildd/glib2.0-2.32.3/./gobject/gtype.c:1892
#11 0x00007f8622c850b9 in g_object_constructor (type=<optimized out>, 
n_construct_properties=0, construct_params=0x0)
   at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1849
#12 0x00007f8622c86c02 in g_object_newv (object_type=19600960, n_parameters=0, 
parameters=0x0)
   at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1632
#13 0x00007f8622c871ec in g_object_new (object_type=19600960, 
first_property_name=0x0)
   at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1542
#14 0x00007f86233f8e41 in try_implementation (extension=<optimized out>, 
verify_func=0x7f8623441810 <g_settings_backend_verify>)
   at /build/buildd/glib2.0-2.32.3/./gio/giomodule.c:645
#15 0x00007f86233f8ff1 in _g_io_module_get_default 
(extension_point=0x7f8623491d74 "gsettings-backend",
   envvar=0x7f86234a4112 "GSETTINGS_BACKEND", verify_func=0x7f8623441810 
<g_settings_backend_verify>)
   at /build/buildd/glib2.0-2.32.3/./gio/giomodule.c:742
#16 0x00007f86234426fe in g_settings_backend_get_default () at 
/build/buildd/glib2.0-2.32.3/./gio/gsettingsbackend.c:985
#17 0x00007f8623445995 in g_settings_constructed (object=0x12ab590) at 
/build/buildd/glib2.0-2.32.3/./gio/gsettings.c:567
#18 0x00007f8622c86b83 in g_object_newv (object_type=<optimized out>, 
n_parameters=19585792, parameters=<optimized out>)
   at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1741
#19 0x00007f8622c86ec6 in g_object_new_valist (object_type=19566112, 
first_property_name=<optimized out>, var_args=0x7fffafc2eb08)
   at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1830
#20 0x00007f8622c871d4 in g_object_new (object_type=19566112, 
first_property_name=0x7f86234a496b "schema-id")
   at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1545
#21 0x00007f861b7c6c57 in os_utils_is_blacklisted () from 
/usr/lib/liboverlay-scrollbar3-0.2.so.0
#22 0x00007f8623c529ab in _ubuntu_overlay_scrollbar_init () at 
/build/buildd/gtk+3.0-3.4.2/./gtk/ubuntuoverlayscrollbar.c:67
#23 0x00007f8623ae3d3a in do_post_parse_initialization (argc=<optimized out>, 
argv=<optimized out>)
   at /build/buildd/gtk+3.0-3.4.2/./gtk/gtkmain.c:721
#24 post_parse_hook (context=<optimized out>, group=<optimized out>, 
data=0x12a61a0, error=0x7fffafc2edc0)
   at /build/buildd/gtk+3.0-3.4.2/./gtk/gtkmain.c:767
#25 0x00007f86225a9f70 in g_option_context_parse (context=<optimized out>, 
argc=<optimized out>, argv=<optimized out>, error=<optimized out>)
   at /build/buildd/glib2.0-2.32.3/./glib/goption.c:1995
#26 0x00007f8623ae40d6 in gtk_init_with_args (argc=0x7fffafc2edbc, 
argv=0x7fffafc2edb0, parameter_string=<optimized out>, entries=0x60f8e0,
   translation_domain=0x0, error=0x7fffafc2edc0) at 
/build/buildd/gtk+3.0-3.4.2/./gtk/gtkmain.c:910
#27 0x00000000004068ba in main ()

** Affects: gnome-screensaver (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1014910

Title:
  gnome-screensaver-dialog hang with kerberized NFS homedir

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/1014910/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to