|
Bugzilla – Full Text Bug Listing |
| Summary: | yast2-users does not start the user management module | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Tumbleweed | Reporter: | hui <sturm-fr> |
| Component: | YaST2 | Assignee: | E-mail List <yast2-maintainers> |
| Status: | RESOLVED FIXED | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | aschnell, mvidner, piotrus3g |
| Version: | Current | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
y2log tarball
nohup.out from the y2logs tarball |
||
|
Description
hui
2024-02-26 17:05:38 UTC
I just updated my TW VM to the latest versions with 'sudo zypper dup' and tried this, and it worked fine for me. So please move away any old y2log* files from /var/log/YaST2 and start this again with Y2DEBUG=1 and then attach y2logs generated with the supplied 'save_y2logs' script. xhost + sudo Y2DEBUG=1 yast2 users sudo save_y2logs And as I am sure you found out, pasting any log file to Bugzilla only makes Bugzilla destroy all formatting with a result that is very hard to read. But what we really need for YaST bug reports is the full y2logs tarball; 'save_y2logs' grabs some more information than just the lone /var/log/YaST/y2log. Created attachment 873011 [details]
y2log tarball
(In reply to Stefan Hundhammer from comment #1) > I just updated my TW VM to the latest versions with 'sudo zypper dup' and > tried this, and it worked fine for me. The problem does not occur in a VM (Virtualbox for me) but only on bare metal... (In reply to hui from comment #3) > The problem does not occur in a VM (Virtualbox for me) but only on bare metal... That would be *very* strange. It would be plausible for a kernel driver, but not for a YaST module. From the y2logs tarball: YaST users startup: > 18:48:07 [Ruby] bin/y2start(<main>):22 y2base called with ["users", "ncurses", "-name", "YaST2", "-icon", "yast"] ... ... > 18:48:07 [libycp] pathsearch.cc(find):307 trying /usr/share/YaST2/modules/Users.pm > 18:48:07 [libycp] pathsearch.cc(find):310 ... success > 18:48:07 [Y2Perl] Y2PerlComponent.cc(Y2PerlComponent):35 Creating Y2PerlComponent > 18:48:07 [liby2] Y2ComponentBroker.cc(getNamespaceComponent):173 Component 0x55d5b865e7c0 used for namespace Users > 18:48:07 [libycp] Import.cc(import):101 Component found: perl > 18:48:07 [libycp] pathsearch.cc(find):307 trying /y2update/modules/Users.pm > 18:48:07 [libycp] pathsearch.cc(find):307 trying /root/.yast2/modules/Users.pm > 18:48:07 [libycp] pathsearch.cc(find):307 trying /usr/share/YaST2/modules/Users.pm > 18:48:07 [libycp] pathsearch.cc(find):310 ... success > 18:48:07 [Y2Perl] YPerl.cc(fixupLocale):151 Switching to the global locale > 18:48:07 [Y2Perl] YPerl.cc(fixupLocale):161 locale: de_DE.UTF-8 > 18:48:07 [Y2Perl] YPerl.cc(fixupLocale):162 codeset: UTF-8 > 18:48:07 [-e] YaPI is deprecated, do not use it anymore! It will be removed soon. - NOTHING ?!? - YaST shutdown: > 18:48:07 [Pkg] Y2CCPkg.cc(~Y2CCPkg):64 ~Y2CCPkg > 18:48:07 [Pkg] PkgModule.cc(destroy):101 Deleting PkgModule object... > 18:48:07 [Pkg] Callbacks.cc(~CallbackHandler):1925 Deleting callback handler > 18:48:07 [agent-system] SystemAgent.cc(remove_directory):99 Removing temporary file /tmp/YaST2-23967-tTOSkj > 18:48:07 [ui] YUILoader.cc(deleteUI):236 Shutting down UI > 18:48:07 [ncurses] YNCursesUI.cc(~YNCursesUI):126 Stop YNCursesUI > 18:48:07 [ui] YUI.cc(~YUI):96 shutdownThreads() was never called! > 18:48:07 [ui] YUI.cc(~YUI):97 shutting down now - this might segfault > 18:48:07 [ui] YUI.cc(terminateUIThread):256 Sending shutdown message to UI thread > 18:48:07 [ui] YUI.cc(uiThreadMainLoop):380 Shutting down UI main loop > 18:48:07 [ui] YUI.cc(terminateUIThread):263 UI thread shut down correctly > 18:48:07 [ncurses] NCurses.cc(~NCurses):145 Shutdown NCurses... > 18:48:07 [ncurses] NCurses.cc(~NCurses):164 NCurses down > 18:48:07 [Y2Ruby] binary/Y2RubyComponent.cc(~Y2RubyComponent):45 Destroying Y2RubyComponent > 18:48:07 [Y2Ruby] binary/YRuby.cc(~YRuby):117 Shutting down ruby interpreter. > 18:48:07 [Y2Perl] YPerl.cc(destroy):185 Shutting down embedded Perl interpreter. Created attachment 873047 [details] nohup.out from the y2logs tarball % ls -l nohup.out -rw-r--r-- 1 sh users 1629 26. Feb 18:04 nohup.out It looks like there were Perl errors while trying to compile the Users.pm YaST module: > Attempt to reload constant.pm aborted (#1) > (F) You tried to load a file with use or require that failed to > compile once already. Perl will not try to compile this file again > unless you delete its entry from %INC. See "require" in perlfunc and > "%INC" in perlvar. > . > Compilation failed in require at > /usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/Data/Dumper.pm line 20 (#2) > (F) Perl could not compile a file specified in a require statement. > Perl uses this generic message when none of the errors that it > encountered were severe enough to halt compilation immediately. > . > BEGIN failed--compilation aborted at > /usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/Data/Dumper.pm line 20 (#3) > (F) An untrapped exception was raised while executing a BEGIN > subroutine. Compilation stops immediately and the interpreter is > exited. > . > Compilation failed in require at /usr/share/YaST2/modules/Users.pm line 43 (#2) > BEGIN failed--compilation aborted at /usr/share/YaST2/modules/Users.pm line 43 (#3) > Compilation failed in require (#2) > BEGIN failed--compilation aborted (#3) > Uncaught exception from user code: > Attempt to reload constant.pm aborted. > Compilation failed in require at /usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/Data/Dumper.pm line 20. > BEGIN failed--compilation aborted at /usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/Data/Dumper.pm line 20. > Compilation failed in require at /usr/share/YaST2/modules/Users.pm line 43. > BEGIN failed--compilation aborted at /usr/share/YaST2/modules/Users.pm line 43. > Compilation failed in require. > BEGIN failed--compilation aborted. It looks very much like the problems came from Perl system files:
> Compilation failed in require at
> /usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/Data/Dumper.pm line 20 (#2)
AFAICS Perl simply exits when it gets that compile error, and so the YaST UI doesn't get a chance to shut down its threads properly; that's why it warns "this might segfault". Luckily, it shuts down properly instead. *** Bug 1220460 has been marked as a duplicate of this bug. *** Finally, I found a way to reproduce this: LANG=de_DE.utf8 yast2 users (as root) And I also get the high CPU usage with the Zypp-Main process mentioned in bug #1220460. With LANG=en_US.utf8 yast2 users I don't get the problem. @hui: Can you try that? With "LANG=en_US.utf8 yast2 users" the user module starts. But with my german locale, the module wont start... That seems the reason why my VB installation is not affected as i use englisch localization there. All bare metal installations have german localization… OK, thanks; that's good to know. At least now we have a workaround, even if it's an inconvenient one. In the case when I don't get this crash, I get those Perl warnings instead:
root@balrog-tw-dev:~ # LANG=en_DE.utf8 yast2 users
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_DE.utf8",
LC_ALL = (unset),
LC_CTYPE = "en_US.utf8",
LANG = "en_DE.utf8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
It looks like our recent workaround for a Perl bug that messes up the locale environment of a process using an embedded Perl interpreter caused this: After reverting that change, 'yast2 users' doesn't crash anymore (with a Zypp-main process idle looping with 100% CPU usage). The workaround: https://github.com/yast/yast-perl-bindings/pull/31 for bug #1216689 which was a symptom of bug #1220195 Before I revert that workaround completely and reintroduce bug #1216689, I'll try to go for a little less aggressive fix. PR to revert the last change that most likely caused this: https://github.com/yast/yast-perl-bindings/pull/32 This will bring bug #1216689 back (reopening now) until there is a real fix for the locale problem. SR to Factory / TW: https://build.opensuse.org/request/show/1155609 This will become available with yast2-perl-bindings-5.0.2. Please reopen if that does not fix this problem. |