#520 LXDM is using 100% cpu time with encrypted home folders

closed-invalid
dgod.osa
lxdm (56)
5
2012-09-05
2012-07-26
Sworddragon
No

I'm using LXDM 0.4.1 and I have encrypted my home folder with ecryptfs. But after a login lxdm-binary is using 100% cpu time of one core. A workaround is to login with the console before login with LXDM. There is also a report on Launchpad: https://bugs.launchpad.net/ubuntu/+source/lxdm/+bug/922363

Discussion

  • dgod.osa
    dgod.osa
    2012-07-27

    there are two usage of home directory in lxdm
    1 create xauth file
    2 login the user and switch to user directory

    if 1 cause the problem, you may change the xauth file path at config file
    [base]
    xauth_path=/tmp

    if it success, there will xauth file /tmp/.Xauth?????

     
  • Sworddragon
    Sworddragon
    2012-08-31

    In /etc/lxdm/lxdm.conf I have change "# xauth_path=/tmp" to "xauth_path=/tmp" and rebooted the system. After a login on my desktop the file /tmp/.Xauth1000 is created but lxdm-binary is still using 100% cpu time of one core.

     
  • dgod.osa
    dgod.osa
    2012-09-05

    I don't think it's bug of lxdm.
    I install the ubuntu 12.04 with encypted home, and can login with the lxdm from ubuntu repo

    when I look into pam stack, the guy of ubuntu already do the job, and the command mount show that the home is mounted as ecryptfs.

    I hate the ubuntu, I even can't find a way to default to run level3, so I can't debug my lxdm there, if there are some bug only about to ubuntu, maybe can't fixed.

     
  • dgod.osa
    dgod.osa
    2012-09-05

    It's may bug of pam object of ecrypt.

    when I debug the lxdm, I found pam stack add some event source to glib main loop that cause lxdm to cpu 100%, which not related to lxdm itself.

    As lxdm's goal is enough lightweit and don't want to develop complex framework to deal these problems, so this won't fixed in lxdm's side.

    if you want to workaround this, you can make a patch to lxdm like this

    in lxdm.c lxdm_do_login function
    add some code before
    char** env, *path;

    int i;
    for(i=2;i<256;i++)
    g_source_remove(i);

     
  • dgod.osa
    dgod.osa
    2012-09-05

    • status: open --> closed-invalid