Activity log for bug #273189

Date Who What changed Old value New value Message
2008-09-22 15:55:47 Gökdeniz Karadağ bug added bug
2008-09-22 15:55:47 Gökdeniz Karadağ bug added attachment 'console-setup' (console-setup)
2008-09-22 16:12:40 Colin Watson console-setup: status New Confirmed
2008-09-22 16:12:40 Colin Watson console-setup: importance Undecided High
2008-09-22 16:12:40 Colin Watson console-setup: statusexplanation
2008-09-22 16:33:18 Gökdeniz Karadağ description Binary package hint: console-setup The default console font was problematic with Turkish language characters (latin5, iso-8859-9) I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup". When I log into root account on console, Turkish characters show up correctly, in the font I chose. But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş". The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~". If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME" When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds. This seemss like a corner case but I want to help solve this problem, If any more info or testing is needed please ask. Hardy 8.04.1 cosole setup version: 1.21ubuntu8 Binary package hint: console-setup The default console font was problematic with Turkish language characters (latin5, iso-8859-9) I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup". edit: Colin Watson points out that this happens in all non-ascii layouts/encodings When I log into root account on console, Turkish characters show up correctly, in the font I chose. But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş". The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~". If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME" When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds. This seemss like a corner case but I want to help solve this problem, If any more info or testing is needed please ask. Hardy 8.04.1 cosole setup version: 1.21ubuntu8
2008-09-22 16:33:18 Gökdeniz Karadağ title Turkish layout problems at "login" line non-ascii layout/encoding problems at "login" line
2008-09-22 16:34:16 Gökdeniz Karadağ description Binary package hint: console-setup The default console font was problematic with Turkish language characters (latin5, iso-8859-9) I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup". edit: Colin Watson points out that this happens in all non-ascii layouts/encodings When I log into root account on console, Turkish characters show up correctly, in the font I chose. But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş". The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~". If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME" When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds. This seemss like a corner case but I want to help solve this problem, If any more info or testing is needed please ask. Hardy 8.04.1 cosole setup version: 1.21ubuntu8 Binary package hint: console-setup The default console font was problematic with Turkish language characters (latin5, iso-8859-9) I changed the console-setup settings file to the one attached to this bug, then I run "update-initramfs -u". I also did the same using "dpkg-reconfigure console-setup". edit: Colin Watson points out that this happens in all non-ascii layouts/encodings When I log into root account on console, Turkish characters show up correctly, in the font I chose. But in the "$HOSTNAME login: " line of the console some characters are problematic, specifically these two chars "ğş". The problem is strange and I will describe it in detail. When I press the problematic keys, nothing is displayed the first time, if I press a second time or press another char, a diamond is displayed. After that, backspace and delete keys do not work, backspace produces three diamonds and delete produces escape code "[3~". If I press enter and fail the login, the next login prompt displays those characters fine, but this time I can delete the login prompt text itself . For example, by pressing 'ğ' three times and pressing backspace six times gives me "$HOSTNAME logi". After this deletion I can type username and password, and login succeeds. Prompt reads like "$HOSTNAME logiUSERNAME" When I cause a `maximum number of tries exceeded error' the process starts from the beginning, the problematic keys display diamonds. This seems like a corner case but I want to help solve this problem, If any more info or testing is needed please ask. Ubuntu version: Hardy 8.04.1 console-setup version: 1.21ubuntu8
2008-09-25 12:35:48 Colin Watson console-setup: status Confirmed Triaged
2008-09-25 12:35:48 Colin Watson console-setup: title Bug #273189 in console-setup (Ubuntu): "non-ascii layout/encoding problems at "login" line" Bug #273189 in util-linux (Ubuntu): "non-ascii layout/encoding problems at "login" line"
2008-09-25 12:35:48 Colin Watson console-setup: importance High Wishlist
2008-09-25 12:35:48 Colin Watson console-setup: bugtargetname console-setup (Ubuntu) util-linux (Ubuntu)
2008-09-25 12:35:48 Colin Watson console-setup: statusexplanation OK, I've tracked this down to a combination of a bug in getty, which is shipped by util-linux, and a bug in the way we start getty. Here's the relevant code in get_logname: if (op->eightbits) { ascval = c; } else if (c != (ascval = (c & 0177))) { /* "parity" bit on */ for (bits = 1, mask = 1; mask & 0177; mask <<= 1) if (mask & ascval) bits++; /* count "1" bits */ cp->parity |= ((bits & 1) ? 1 : 2); } /* Do erase, kill and end-of-line processing. */ switch (ascval) { case CR: case NL: *bp = 0; /* terminate logname */ cp->eol = ascval; /* set end-of-line char */ break; case BS: case DEL: case '#': cp->erase = ascval; /* set erase character */ if (bp > logname) { (void) write(1, erase[cp->parity], 3); bp--; } break; case CTL('U'): case '@': cp->kill = ascval; /* set kill character */ while (bp > logname) { (void) write(1, erase[cp->parity], 3); bp--; } break; case CTL('D'): exit(0); default: if (!isascii(ascval) || !isprint(ascval)) { /* ignore garbage characters */ ; } else if (bp - logname >= sizeof(logname) - 1) { error(_("%s: input overrun"), op->tty); } else { (void) write(1, &c, 1); /* echo the character */ *bp++ = ascval; /* and store it */ } break; } There are two main problems here. Firstly, we aren't running getty in eight-bit-clean mode on the Linux console, and I think we should be. This is the responsibility of system-services; finish-install will then have to be careful to undo this for serial consoles. Outside eight-bit-clean mode, getty interprets the second byte of my test character (the £ sign) as # with the parity bit set, and thus emits an erase sequence (which gets broken because it's using the wrong parity, I think ...). Secondly, even in eight-bit-clean mode, getty rejects anything that isn't matched by isascii() or isprint(); it's doing this in the C locale so characters such as ğ and ş aren't counted as printable. I'm not sure what the correct resolution for this is, but it would be nice to permit non-ASCII usernames. However, this will likely require fixes elsewhere (for example, the installer rejects usernames that don't match /^[a-z][-a-z0-9]*$/, and I imagine that most software that processes usernames makes no attempt to convert them between encodings), so I'm marking this part of the bug as wishlist. If the first part of this bug is fixed, then at least typing a non-ASCII character won't corrupt the console.
2008-09-25 12:35:48 Colin Watson console-setup: bugtargetdisplayname console-setup (Ubuntu) util-linux (Ubuntu)
2008-09-25 12:36:26 Colin Watson bug assigned to upstart (Ubuntu)
2008-09-25 12:36:42 Colin Watson upstart: status New Triaged
2008-09-25 12:36:42 Colin Watson upstart: importance Undecided Medium
2008-09-25 12:36:42 Colin Watson upstart: statusexplanation
2008-09-25 12:37:27 Colin Watson bug assigned to finish-install (Ubuntu)
2008-09-25 12:37:44 Colin Watson finish-install: status New Triaged
2008-09-25 12:37:44 Colin Watson finish-install: importance Undecided Medium
2008-09-25 12:37:44 Colin Watson finish-install: statusexplanation
2008-09-25 12:54:26 Scott James Remnant (Canonical) upstart: status Triaged Incomplete
2008-09-25 13:05:11 Launchpad Janitor finish-install: status Triaged Fix Released
2009-06-18 14:27:46 Scott James Remnant (Canonical) upstart (Ubuntu): status Incomplete Triaged
2009-06-18 14:32:15 Scott James Remnant (Canonical) summary non-ascii layout/encoding problems at "login" line event.d: non-ascii layout/encoding problems at "login" line
2009-06-18 14:32:25 Scott James Remnant (Canonical) summary event.d: non-ascii layout/encoding problems at "login" line system-services: non-ascii layout/encoding problems at "login" line
2009-06-18 17:14:35 Scott James Remnant (Canonical) upstart (Ubuntu): status Triaged In Progress
2009-06-18 17:30:06 Launchpad Janitor upstart (Ubuntu): status In Progress Fix Released
2009-07-03 03:05:20 Launchpad Janitor branch linked lp:ubuntu/karmic/finish-install
2009-07-14 12:38:10 Launchpad Janitor branch linked lp:~ubuntu-core-dev/upstart/ubuntu
2009-12-05 11:57:27 Launchpad Janitor branch linked lp:ubuntu/upstart
2010-12-25 09:23:30 Launchpad Janitor branch linked lp:debian/sid/finish-install
2011-01-01 09:59:34 Launchpad Janitor branch linked lp:debian/finish-install
2011-01-06 11:13:34 Launchpad Janitor branch linked lp:ubuntu/finish-install