gdm should restart it's slave after a session ends (to get e.g. new locales)

Bug #22872 reported by Matthew East on 2005-09-30
12
Affects Status Importance Assigned to Milestone
gdm (Ubuntu)
Medium
Michael Vogt

Bug Description

Updated Breesy system. I used the language-selector to add Italian as an
available language for the system, then logged in with Italian set as my
language for the session. I got an error something like: "language it_IT.UTF
does not exist, using System Default".

Obviously this is a major problem

Michael Vogt (mvo) wrote :

Thanks for your bugreport.

I can confirm this problem. After the install a logout/re-login is not enough, I
get the error message too.

But after a reboot everything is fine. I wonder if it may be a problem with the
language-packs itself?

Cheers,
 Michael

Martin Pitt (pitti) wrote :

Hmm, maybe I'm missing something. I added a new language (fr_FR, but it should
not make any difference) in the l-selector; this installed all four language
packs. After that I could immediately start programs in French with "LANGUAGE=
LANG=fr_FR.UTF-8 program".

After logging out, I could choose "French" in gdm, logged in, and got a French
desktop.

So where exactly is the problem?

Matthew East (mdke) wrote :

Didn't work for me. I don't know whether there is a difference between our
systems or not. the language-packs are installed, but after logging out I cannot
log back in a get a localised desktop.

Martin Pitt (pitti) wrote :

I indeed get it for it_IT. Restarting gdm helps to make it work for it_IT, too
(just logging out and back in restarts X, but not gdm).

It seems that gdm does not properly re-read the available locales. It works for
fr_FR, and it displays Italian, but then it does not set LANG and LANGUAGE and
complains about it_IT.

Sebastien Bacher (seb128) wrote :

gdm needs to be restarted to get new generated locale, is that what this bug is
about?

Matthew East (mdke) wrote :

(In reply to comment #5)
> gdm needs to be restarted to get new generated locale, is that what this bug is
> about?

yes

Sebastien Bacher (seb128) wrote :

I would say that's not a bug, apps need to be restarted to get the locales changes.

Matthew East (mdke) wrote :

The problem is that a user who adds a language from the language selector (at
least the ones I've tested) will get an error if they log out and in again. If
this can't be fixed, IMO the best solution would be to add a note to the
language selector telling the user to restart gdm or reboot. That way, they
won't be confused.

Martin Pitt (pitti) wrote :

(In reply to comment #5)
> gdm needs to be restarted to get new generated locale, is that what this bug is
> about?

That's actually too much. It would be sufficient to properly re-read the
available locales when a session ends and gdm shows up again.

Matt Zimmerman (mdz) wrote :

Only simple and safe fixes will be allowed for the remainder of the release; if
this can't be done in such a way, it will need to be deferred

Matthew East (mdke) wrote :

Well at the worst we can add it to the release notes.

Michael Vogt (mvo) wrote :

Ok, it looks like the problem can be solved by a:
"/etc/init.d/gdm reload"
after the languages are installed.

Michael Vogt (mvo) wrote :

Created an attachment (id=4414)
Call reload after synaptic was run and installed the languages

Martin Pitt (pitti) wrote :

patch looks fine to me

Daniel Holbach (dholbach) wrote :

works nicely.

Michael Vogt (mvo) wrote :

This problem is fixed with the upload of:

language-selector_0.1_source.changes

once it's approved I'll close the bug.

Sebastien Bacher (seb128) wrote :

works fine for me too

Sebastien Bacher (seb128) wrote :

michael, that's still a gdm issue. Reloading for the language-selector is a
workaround.

Martin Pitt (pitti) wrote :

It seems that when a session ends, gdm should do exactly the same as it does
when receiving a SIGUSR1 (as with reload). So for dapper and upstream, this is
certainly a better method than the language-selector workaround.

Michael Vogt (mvo) wrote :

(In reply to comment #19)
> It seems that when a session ends, gdm should do exactly the same as it does
> when receiving a SIGUSR1 (as with reload). So for dapper and upstream, this is
> certainly a better method than the language-selector workaround.

Right, reading the the gdm paper at
http://www.gnome.org/projects/gdm/gdmtalk.pdf (end of page 1), it seems that the
prefered model of a session end is to restart the X-server and create a new
slave. Apparently this is not happening in our gdm configuration because it
looks like the slave is not restarted.

I retitled the bug accordingly.

Michael Vogt (mvo) wrote :

It looks like the config option:
AlwaysRestartServer=true
is what we are looking for.

But according to:
http://mail.gnome.org/archives/gnome-announce-list/2003-July/msg00062.html it
may be dangerous:
> Also with this release we revert back to defaulting AlwaysRestartServer to
> false. The issue that this was trying to work around has been fixed, and it
> is really nicer to the X server to reset it instead of restarting it. I know
> that in the past I held an opposite opinion, but the number of people with
> X bugs that get triggered by X restarts is quite high apparently. And it
> looks nicer this way (no flicker back to vt1) and likely faster too.

Martin Pitt (pitti) wrote :

 langpack-locales (2.3.6-3) dapper; urgency=low
 .
   * {install,remove}-language-packs: Reload gdm to make it aware of
     new/removed locales. (Ubuntu #16687)

This further reduces the visible cases of this bug. The only thing that still
does not work now is calling gdmflexiserver after installing a langpack.

Adam Niedling (krychek) wrote :

Breezy is not supported anymore. There hasn't been any activity in 3 years. Please reopen this report if this is still an issue in a later version of Ubuntu.

Changed in gdm:
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.