|
Bugzilla – Full Text Bug Listing |
| Summary: | Error in setting default boot entry (due non-latin symbols) | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Tumbleweed | Reporter: | Konstantin Voinov <kv> |
| Component: | YaST2 | Assignee: | Josef Reidinger <jreidinger> |
| Status: | RESOLVED WONTFIX | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Normal | ||
| Priority: | P2 - High | CC: | forgotten_JqTMNXa92r, jreidinger, kv, schubi, vovochka13 |
| Version: | Current | ||
| Target Milestone: | --- | ||
| Hardware: | x86-64 | ||
| OS: | Other | ||
| URL: | https://trello.com/c/sAtpaiX9 | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
tail -n 30 y2log
y2log /etc/default/grub /etc/sysconfig/language /boot/grub2/grub.cfg rpm -qa|grep grub rpm -qa |
||
Created attachment 691645 [details]
tail -n 30 y2log
small correction: problem gone. Or you can run LC_ALL=C Yast2 and recreate grub.cfg with English locale. I could reproduce this, also happens with sle12-sp2. It's also a bit related to bug 985946. There are actually two issues: 1) yast crashing as described here 2) yast is not using /etc/sysconfig/language::RC_LANG (cf. bug 985946) essentially resetting the grub language to the locale yast is run in Josef, could you look into this? yes, will check fix is under review https://github.com/yast/yast-bootloader/pull/374 fix merged. If it still happen in TW with yast2-bootloader 3.2.5 or newer, please reopen with fresh logs. Thanks Still get error: 2016-11-07 18:18:17 <1> Kot(13104) [Ruby] lib/cheetah.rb:158 Executing "/usr/bin/grub2-editenv list". 2016-11-07 18:18:18 <1> Kot(13104) [Ruby] lib/cheetah.rb:206 Standard output: saved_entry=openSUSE Tumbleweed 2016-11-07 18:18:18 <1> Kot(13104) [Ruby] lib/cheetah.rb:178 Status: 0 2016-11-07 18:18:23 <1> Kot(13104) [Ruby] bootloader/sections.rb:38 set new default to '"openSUSE Tumbleweed, \u0441 Linux 4.8.6-1-default"' 2016-11-07 18:18:23 <3> Kot(13104) [Ruby] yast/wfm.rb:235 Client call failed with 'Unknown value "openSUSE Tumbleweed, \u0441 Linux 4.8.6-1-default"' and backtrace ["/usr/share/YaST2/lib/bootloader 2016-11-07 18:18:23 <3> Kot(13104) [Ruby] yast/wfm.rb:256 Internal error. Please report a bug report with logs. Details: Unknown value "openSUSE Tumbleweed, \u0441 Linux 4.8.6-1-default" Caller: /usr/share/YaST2/lib/bootloader/sections.rb:41:in `default=' rpm -qi yast2-bootloader Name : yast2-bootloader Version : 3.2.6 Release : 1.1 Architecture: x86_64 Install Date: Вс 06 ноя 2016 16:20:58 Group : System/YaST Size : 220007 License : GPL-2.0+ Signature : RSA/SHA256, Чт 03 ноя 2016 23:29:14, Key ID b88b2fd43dbdc284 Source RPM : yast2-bootloader-3.2.6-1.1.src.rpm Build Date : Чт 03 ноя 2016 23:29:07 Build Host : cloud129 Relocations : (not relocatable) Packager : http://bugs.opensuse.org Vendor : openSUSE URL : http://github.com/yast/yast-bootloader Summary : YaST2 - Bootloader Configuration Description : This package contains the YaST2 component for bootloader configuration. Distribution: openSUSE Tumbleweed (In reply to Konstantin Voinov from comment #7) > Still get error: > > 2016-11-07 18:18:17 <1> Kot(13104) [Ruby] lib/cheetah.rb:158 Executing > "/usr/bin/grub2-editenv list". > 2016-11-07 18:18:18 <1> Kot(13104) [Ruby] lib/cheetah.rb:206 Standard > output: saved_entry=openSUSE Tumbleweed > 2016-11-07 18:18:18 <1> Kot(13104) [Ruby] lib/cheetah.rb:178 Status: 0 > 2016-11-07 18:18:23 <1> Kot(13104) [Ruby] bootloader/sections.rb:38 set new > default to '"openSUSE Tumbleweed, \u0441 Linux 4.8.6-1-default"' > 2016-11-07 18:18:23 <3> Kot(13104) [Ruby] yast/wfm.rb:235 Client call failed > with 'Unknown value "openSUSE Tumbleweed, \u0441 Linux 4.8.6-1-default"' and > backtrace ["/usr/share/YaST2/lib/bootloader > 2016-11-07 18:18:23 <3> Kot(13104) [Ruby] yast/wfm.rb:256 Internal error. > Please report a bug report with logs. > Details: Unknown value "openSUSE Tumbleweed, \u0441 Linux 4.8.6-1-default" > Caller: /usr/share/YaST2/lib/bootloader/sections.rb:41:in `default=' > > rpm -qi yast2-bootloader > Name : yast2-bootloader > Version : 3.2.6 > Release : 1.1 > Architecture: x86_64 > Install Date: Вс 06 ноя 2016 16:20:58 > Group : System/YaST > Size : 220007 > License : GPL-2.0+ > Signature : RSA/SHA256, Чт 03 ноя 2016 23:29:14, Key ID b88b2fd43dbdc284 > Source RPM : yast2-bootloader-3.2.6-1.1.src.rpm > Build Date : Чт 03 ноя 2016 23:29:07 > Build Host : cloud129 > Relocations : (not relocatable) > Packager : http://bugs.opensuse.org > Vendor : openSUSE > URL : http://github.com/yast/yast-bootloader > Summary : YaST2 - Bootloader Configuration > Description : > This package contains the YaST2 component for bootloader configuration. > Distribution: openSUSE Tumbleweed OK, so please attach complete y2logs and also /etc/default/grub, so I can see how it is generated. Thanks Created attachment 701029 [details]
y2log
Created attachment 701030 [details]
/etc/default/grub
hmm, I do not even see call to grub2-mkconfig. Can you please also attach content of /etc/sysconfig/language and /boot/grub2/grub.cfg ? so we see what is system-wide locale and also target config, even if mkconfig is not called? Thanks Now it looks like some escaping is missing. Thanks Created attachment 701051 [details]
/etc/sysconfig/language
Created attachment 701052 [details]
/boot/grub2/grub.cfg
Thanks for logs. Now I will do some testing of code as it looks properly generated. The last think I notice is that it is menu in submenu, but only part of name is used. Can you please also attach output of `rpm -qa` so I see versions of packages? As maybe cfa_grub2 is older then I expect. Created attachment 701055 [details]
rpm -qa|grep grub
Created attachment 701056 [details]
rpm -qa
Part of name?
I believe the problem is in symbol "с" (U+0441), when yast parsing menu entries.
I also thought it, but I do local testing with your grub.cfg and it works for all variants of that string from log: "openSUSE Tumbleweed, с Linux 4.8.6-2-default" "openSUSE Tumbleweed, \u0441 Linux 4.8.6-2-default" "openSUSE Tumbleweed, \xD1\x81 Linux 4.8.6-2-default" all of them works when testing locally. but I will try to do more tests. Maybe somewhere in between something goes wrong and it is double escaped. Hi. I've a windows boot manager in the yast (Tumbleweed). It wrote "Windows Boot Manager (на /dev/sda2)". на(rus)=on(en) and "openSUSE Tumbleweed, с Linux 4.9.4-1-default" "с"(rus)=with(en) And I've got after OK: Error Internal error. Please report a bug report with logs. Details: Unknown value "openSUSE Tumbleweed, \u0441 Linux 4.9.4-1-default" Caller: /usr/share/YaST2/lib/bootloader/sections.rb:34:in `default=' \u0441 = russian "с" =================================== Nick *** Bug 1029307 has been marked as a duplicate of this bug. *** I have been able to reproduce the error with 42.2 but not with 42.3 SLES12_SP3 SLES15 anymore, although the code of 42.2 and SLES12_SP3 is the same in that area. The problem is a simple string compare with these special strings which fails. I am assuming that it is ruby problem ( ruby 2.1.2p95(42.2) ruby 2.1.9p490 (SLE12_SP3)) Additional, in SLES15 and leap15 the code has changed. So the exception has been removed completely and cannot happen anymore. https://github.com/yast/yast-bootloader/blob/8b8f06a952e2ec0323dfbbbb89cf798b0b103a5b/src/lib/bootloader/sections.rb#L34 As it is quite old we will not fix this issue ( or find a workaround of the ruby bug). Please update to newer releases. |
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0 Build Identifier: Error when trying to select default boot section in Yast2->bootloader->bootlodaer-option Reproducible: Always Steps to Reproduce: 0.Install openSUSE or update bootloader from Yast2 with Russian locale 1.Start Yast2 (gui or ncurses) 2.Select "System" - "Bootloader" 3.Goto "Bootloader Options" 4.Select default boot section in "Default Boot Section" 5 Press "OK" Actual Results: The error appears: Internal error. Please report a bug report with logs. Details: Unknown value "openSUSE Tumbleweed , \u0441 Linux 4.6.4-2-default" Caller: /usr/share/YaST2/lib/bootloader/sections.rb:41:in `default=' Expected Results: Applied default boot section. Problem appears only if boot entry has Cyrillic symbols (or maybe non-latin). When I manually changed entry from: menuentry 'openSUSE Tumbleweed , с Linux 4.6.4-2-default' ("с" is cyrillic) to menuentry 'openSUSE Tumbleweed , with Linux 4.6.4-2-default' problem gone. Or you can run LC_ALL Yast2 and recreate grub.cfg with English locale.