crash on step select language

Bug #279003 reported by Vitaly Petrov
10
Affects Status Importance Assigned to Milestone
ubiquity (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Binary package hint: ubiquity

Distribution: Debian Lenny
$ uname -a
Linux kafik 2.6.24-1-686 #1 SMP Thu May 8 02:16:39 UTC 2008 i686 GNU/Linux
$ sudo ubiquity -d kde_ui

Message Box:
Language failed with exit code 141. Further information may be found in /var/log/syslog. Do you want to try running this step again before continuing? If you do not, your installation may fail entirely or may be broken.

$ sudo cat /var/log/installer/debug
...
...
Oct 6 16:53:05 debconf (filter): <-- FSET debian-installer/locale seen false
debconf (developer): <-- FSET debian-installer/locale seen false
debconf (developer): --> 0 false
Oct 6 16:53:05 debconf (filter): <-- FSET localechooser/supported-locales seen false
debconf (developer): <-- FSET localechooser/supported-locales seen false
debconf (developer): --> 0 false
Oct 6 16:53:05 debconf (filter): <-- SET debconf/language en
debconf (developer): <-- SET debconf/language en
debconf (developer): --> 0 value set
Oct 6 16:53:05 debconf (filter): <-- CAPB backup align
debconf (developer): <-- CAPB backup align escape
debconf (developer): --> 0 multiselect escape
Oct 6 16:53:05 debconf (filter): <-- INPUT critical localechooser/languagelist
Oct 6 16:53:05 debconf (filter): widget found for localechooser/languagelist
debconf (developer): <-- GET localechooser/languagelist
debconf (developer): --> 1 ru
debconf (developer): <-- METAGET localechooser/languagelist choices-c
debconf (developer): --> 1
Exception caught in process_line:
Traceback (most recent call last):
  File "/usr/lib/ubiquity/ubiquity/filteredcommand.py", line 112, in process_line
    return self.dbfilter.process_line()
  File "/usr/lib/ubiquity/ubiquity/debconffilter.py", line 260, in process_line
    if not input_widgets[0].run(priority, question):
  File "/usr/lib/ubiquity/ubiquity/components/language.py", line 45, in run
    current_language_index = self.value_index(question)
  File "/usr/lib/ubiquity/ubiquity/filteredcommand.py", line 279, in value_index
    raise ValueError, value
ValueError: ru
Oct 6 16:53:05 ubiquity: ['log-output', '-t', 'ubiquity', '--pass-stdout', '/usr/lib/ubiquity/localechooser/localechooser'] exited with code 141
debconf (developer): <-- GET debian-installer/locale
debconf (developer): --> 1 ru_RU.UTF-8
QSocketNotifier: Invalid socket 15 and type 'Read', disabling...
QSocketNotifier: Invalid socket 15 and type 'Exception', disabling...
QSocketNotifier: Invalid socket 15 and type 'Write', disabling...
FIXME, medianotifier unload port to KDE 4

Revision history for this message
arno_b (arno.b) wrote :

Which distribution do you use? Debian Lenny ?!...

Revision history for this message
Vitaly Petrov (kafik) wrote :

Yes. =)

This is a simple live CD installer designed to integrate well with (!!!)Debian-(!!!) and Ubuntu-based systems, and to reuse code from d-i for ease of maintenance.

Revision history for this message
Vitaly Petrov (kafik) wrote :

Error in filteredcommand.py
    def choices_untranslated(self, question):
        choices = unicode(self.db.metaget(question, 'choices-c'),
                          'utf-8', 'replace')
        return self.split_choices(choices)

choices = ""

Revision history for this message
arno_b (arno.b) wrote :

The problem is that bug reports must concern Ubuntu here. You should had report it on the debian tracking system (http://www.debian.org/Bugs/).

Revision history for this message
Vitaly Petrov (kafik) wrote :

No bug in ubiquity/localeshooser (!)

In file 'd-i/source/localechooser/localechooser'

 db_subst $tpl_languagelist CODES "$codes"
 db_subst $tpl_languagelist NAMES_EN "$names_en"
 db_subst $tpl_languagelist NAMES_BOTH "$names_both"

replace to

 db_subst $tpl_languagelist\ CODES\ "$codes"
 db_subst $tpl_languagelist\ NAMES_EN\ "$names_en"
 db_subst $tpl_languagelist\ NAMES_BOTH\ "$names_both"

Why???

Revision history for this message
Colin Watson (cjwatson) wrote :

In theory ubiquity could work on Debian (which is why that comment is there) but it will take some work to actually get it working. I'm not going to leave this bug open in its current form, but feel free to contribute patches once you have them. Running ubiquity with its debug option may help, but you will have to understand debconf; I suggest reading debconf-devel(7) in its entirety first, along with ubiquity/doc/README.

The patch in the last comment is definitely wrong, though.

Changed in ubiquity:
status: New → Invalid
Revision history for this message
Vitaly Petrov (kafik) wrote :

Perhaps you be interested in my patch with the ubiquity works in Debian Live. See attach

Revision history for this message
Colin Watson (cjwatson) wrote :

Thanks for this. Detailed comments follow.

Directly patching anything in the d-i directory in ubiquity is wrong wrong wrong. Don't do it; you'll regret it later. That entire directory is maintained automatically by fetching packages from the corresponding archive, so a Debian build should change d-i/sources.list and run 'debian/rules update'. However, you will immediately run into the fact that several necessary patches to d-i aren't in Debian; for instance, the manual partitioner will be completely broken. Fixing that and other similar problems will need sustained and careful work with the Debian d-i team that I'm afraid is likely to be post-Lenny at this point. Conversely, if you don't sync with Debian, then you'll be using underlying Ubuntu installer code to install Debian, which neither team is likely to be very interested in supporting. The real solution here is a concerted effort from our end (the Ubuntu installer team) to merge Ubuntu changes back into Debian d-i; I intend to have time for that towards the end of this calendar year.

The patch to localechooser is definitely incorrect, as previously described. Those really are supposed to be separate arguments. I believe you that something is broken, but you need to find a different solution as this is not a sensible way to use db_subst.

The patch to console-setup.postinst is probably better done by syncing with Debian's console-setup, as described above.

- if not misc.execute('cp', '-a', log_file, target_log_file):
- syslog.syslog(syslog.LOG_ERR,
- 'Failed to copy installation log file')
- os.chmod(target_log_file, stat.S_IRUSR | stat.S_IWUSR)
+ if os.path.isfile(target_log_file):
+ if not misc.execute('cp', '-a', log_file, target_log_file):
+ syslog.syslog(syslog.LOG_ERR,
+ 'Failed to copy installation log file')
+ os.chmod(target_log_file, stat.S_IRUSR | stat.S_IWUSR)

That's bizarre. Copy the log file only if the *target* exists? I suspect you meant to check os.path.isfile(log_file), which I've applied.

The device mounting stuff is syntactically incorrect ("if not misc.execute('mount', dev, mountpoint)" with no terminating colon) - did you test this? With that fixed, although I'm not sure I understand the need for the losetup stuff, I don't think it'll cause a problem, so I've applied it.

Reconfiguring splashy makes sense, and I've applied that.

xserver-xorg shouldn't be reconfigured here; this should be dealt with by a ubiquity hook in live-initramfs instead to copy the (presumably working) X configuration from the live system. See ubiquity-hooks/20xconfig in Ubuntu's casper package.

initramfs-tools should be dealt with by reconfiguring linux-image-*. If it isn't, I think you should investigate why rather than papering over it here.

Revision history for this message
Vitaly Petrov (kafik) wrote :

 Thank you for your comments. In fact, I had to be made to work very quickly Ubiquity in Debian Live and therefore a correction rather get curves =) Sorry for that.

About os.path.isfile (log_file), I did wrong, as well as over "if not misc.execute ( 'mount', dev, mountpoint)" (the fault to rush to clean up the code corrected reduction).

Line misc.execute ( 'mount', dev, mountpoint) did not try to correct (reported on the absence / dev/loop1, although testing in the console everything worked fine.), So I resorted to such a gimmick.

initramfs-tools - unless you tell it, the splashy will not work when booting from the HDD after installation.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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