Bug 643071
Summary: | libvirtd terminating due to an lib augeas exit() call | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Stefan Berger <stefanb> |
Component: | augeas | Assignee: | David Lutterkort <lutter> |
Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | 13 | CC: | apevec, hbrock, lutter, mbooth, veillard |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2011-06-28 11:36:17 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Stefan Berger
2010-10-14 15:16:41 UTC
unfortunately yy_fatal_error is really coming from (f)lex code and well calling exit() is really a bad behaviour. But it should be avoidable, #define YY_FATAL_ERROR(msg) fprintf( stderr, "%s\n", msg ); in src/lexer.l might be sufficient to avoid this problem Daniel This is really nasty, but a fix is a little harder than the above, especially since this error is very hard to test. It's easy to avoid the exit() in this case, but I'd also like to make sure things don't blow up during error recovery. What happened in a nutshell is that reading from one of the *.aug lenses (/usr/share/augeas/lenses/dist/build.aug to be specific) failed. Is there anything special about the build.aug file on your system ? It would be great if I could reproduce the problem and write an actual test to fix it. Here is the content of the build.aug file: [root@d941e-10 ~]# cat /usr/share/augeas/lenses/dist/build.aug (* Module: Build Generic functions to build lenses Author: Raphael Pinson <raphink> About: License This file is licensed under the LGPLv2+, like the rest of Augeas. *) module Build = let eol = Util.eol (* Generic constructions *) let brackets (l:lens) (r:lens) (lns:lens) = l . lns . r (* List constructions *) let list (lns:lens) (sep:lens) = lns . ( sep . lns )+ let opt_list (lns:lens) (sep:lens) = lns . ( sep . lns )* (* Labels *) let xchg (m:regexp) (d:string) (l:string) = del m d . label l let xchgs (m:string) (l:string) = xchg m m l (* Keys *) let key_value_line (kw: regexp) (sep:lens) (sto:lens) = [ key kw . sep . sto . eol ] let key_value (kw: regexp) (sep:lens) (sto:lens) = [ key kw . sep . sto ] I doubt I can come up with a test case to reproduce this in a reasonable timeframe... I am causing this error by running concurrent tests against libvirtd and only after some time does this error occurr. Could it be a concurrency issue ? - that libaugeas is called from multiple threads at the same time but something in libaugeas cannot deal with concurrency?? Two more things: I exorted YYDEBUG=1 and then nothing happend -- no failure in a long time at least. This time I saw this here as well. That message appeared before also and I did see other weird things, but this time it's really 'close' to the 'input in flex scanner failed' message: [New Thread 0x7fffcabff710 (LWP 11609)] Detaching after fork from child process 11610. Detaching after fork from child process 11612. Detaching after fork from child process 11674. I/O error : Bad file descriptor input in flex scanner failed [Thread 0x7fffcabff710 (LWP 11609) exited] [Thread 0x7fffcb600710 (LWP 11521) exited] [Thread 0x7fffef5fe710 (LWP 8897) exited] [Thread 0x7fffeffff710 (LWP 8895) exited] [Thread 0x7ffff57f0710 (LWP 8893) exited] [Thread 0x7ffff61f1710 (LWP 8891) exited] [Thread 0x7ffff6bf2710 (LWP 8890) exited] [Thread 0x7ffff4def710 (LWP 8894) exited] Program exited with code 02. I am not sure who or what complains about an I/O error. Well, good news. It's NOT an augeas bug from what I can see. The bug is related to an fd getting closed twice in libvirt code. -> closing this bug I'm reopening, really if the lexer code may call exit() it's still a bug from a library POV, sure that bug was caused by bad conditions we should try to avoid calling exit() from below. Daniel This message is a reminder that Fedora 13 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 13. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '13'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 13's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 13 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping Fedora 13 changed to end-of-life (EOL) status on 2011-06-25. Fedora 13 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed. |