GNOME Bugzilla – Bug 122687
cannot create a profile when more than 8 locale characters are used as filename
Last modified: 2004-12-22 21:47:04 UTC
Distribution: Solaris 9 8/03 s9x_u4wos_08b x86 Package: gnome-terminal Severity: minor Version: GNOME2.3.90 unspecified Gnome-Distributor: GNOME.Org Synopsis: cannot create a profile when more than 8 locale characters are used as filename Bugzilla-Product: gnome-terminal Bugzilla-Component: general Bugzilla-Version: unspecified Description: Description of Problem: When inputting 8 or more locale's characters for profile name, gnome-terminal gets crashed and says filename is too long at stderr. ------- Bug moved to this database by unknown@bugzilla.gnome.org 2003-09-18 20:59 ------- Reassigning to the default owner of the component, gnome-terminal-maint@bugzilla.gnome.org.
By `locale characters' you mean non ASCII chars? Can you tell us what was the profile name you had problems with? And, if this is repeatable, could you obtain a stack trace? See http://bugzilla.gnome.org/getting-traces.cgi for more information about getting a useful stack trace.
This crash will be reproducible as follows: 1. Run a gnome-terminal. 2. Edit->Profiles...->New 3. On a text entry, click right-mouse. and change Input Methods to "Hangul(KSC 5601)" 4. Input any 8 or more hangul characters, and "Create". When you use Korean, Chinese, or Japanese characters, it needs to input 8 characters, but when you European characters such as Latin-1 or Cyrillic, it needs 12 characters to reproduce the crash.
Indeed. I can reproduce that. Trying to create a profile named áááááááá, I get this on stderr: GConf warning: failure listing pairs in `/apps/gnome-terminal/profiles/@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@': Failed: Failed: Could not stat `/home/mariano/.gconf/apps/gnome-terminal/profiles/@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@@4294967235@@4294967201@/20.9196conf.xml': Nom de fichier trop long ** ERROR **: file terminal.c: line 2181 (new_profile_response_callback): assertion failed: (new_profile != NULL) aborting... The stack at the time is: Backtrace was generated from '/opt/gnome/bin/gnome-terminal' [New Thread 16384 (LWP 19580)] 0x40e5bf29 in wait4 () from /lib/libc.so.6
+ Trace 40348
Thread 1 (Thread 16384 (LWP 19580))
The (root of the) problem lays in gconf's escaping mechanism, which translates á into @4294967235@@4294967201@. Twelve ás then end up in a directory name which is too long for something; 8 Hangul characters are enough to trigger the problem because their UTF-8 encoding is longer than 2 bytes. I'll open a bug on gconf, but keep this, as gnome-terminal should probably handle this more gracefully.
The gconf bug is 122958
I added a check for errors after creating with an error dialog instead of the assertion we had before, just in case anything evil happens in the future. gconf has been fixed, though. Thanks!