There's been a bug reported a few times that we don't have good
reproduction notes for, at least I can't reproduce it.
It involves using the web app, somehow adding more interfaces (possibly)
and then clicking Save to find out that the file saved in
/var/lib/cobbler/config/systems.d is now zero length.
I've heard one report that there was an infinite recursion error in the
log at the time, but I haven't seen it.
I still do not know the root cause for it, or whether it's confined to a
specific OS /but/ I have taken several measures to help isolate and
eliminate the corrupt files from
the web app and would encourage everyone to help test this.
(A) When files are written, we first render them to yaml in memory, the
result is "" we do not write the file.
(B) When an API handle encounteres a blank or corrupted file, an
exception will now indicate what file is damaged so it can be
removed/fixed, rather than getting an obscure
YAML related traceback, allowing the file to be manually removed to
restore proper operation.
I suspect at this point that perhaps a stray character in the input for
some of the fields might be causing the problem, or that perhaps the
data entered cannot be cleanly marshalled
over XMLRPC. However I still can't repro it.
For those that are seeing this, the current git version of cobbler
(master branch) contains the above fixes. Testing is welcome (I plan to
test some more as well as read over the YAML module), but ideally what
we need is for folks to try that code (for safety reasons) and then find
more accurate reproduction notes.
It is /probably/ related to a GIGO sort of error with the input of some
field not being 100% validated and the YAML serializer choking on it, if
I had to guess. In which case, knowing what that input is would be
helpful. I don't really think it should be intermittent based on what
was reported.
I also need to know if the fix in (A) does prevent the error. From
there we can figure out how to make those edits work without incident.
Patch here:
http://git.fedorahosted.org/git/?p=cobbler;a=commitdiff;h=e690e0af16eae2f...
--Michael