BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
2.03k stars 449 forks source link

When something amiss with app_config.xml BOINC falsely reports "Missing start tag in cc_config.xml" #3938

Open Ageless93 opened 4 years ago

Ageless93 commented 4 years ago

Something that came up via the forums. A user had an app_config.xml file but no cc_config.xml file. After editing his app_config.xml file BOINC reported "Missing start tag in cc_config.xml", even though he doesn't have a cc_config.xml file. He tried making one, but still got that message.

I am assuming it's because app_config.xml uses the same parser cc_config.xml uses (and probably all XML files do) and that when something is amiss (like LFs at end of line or saved in UTF-8 instead of ANSI encoding format), that the standard "Missing start tag in cc_config.xml" message is given because that's the only message we have to show there's something wrong with the integrity of the XML files.

Can we get the same sanity checks for at least app_config.xml, but maybe the other XML files as well?

RichardHaselgrove commented 4 years ago

As with all cases of this sort, a GitHub search turns up 38 copies of the source string in translation files, and then just one in code, at the end. The live one is

https://github.com/BOINC/boinc/blob/master/client/log_flags.cpp#L492

How did we get there from an app_config.xml file? I'll take a look.

RichardHaselgrove commented 4 years ago

Retrying the reported problem on my own machine, I get

22/07/2020 14:40:57 | SETI@home | Missing <app_config> in app_config.xml

which comes from https://github.com/BOINC/boinc/blob/master/lib/cc_config.cpp#L854 - that's more like it.

I think there's a problem with the original report.

Ageless93 commented 4 years ago

I think there's a problem with the original report.

I don't think he is missing his tag, but that he's written the file in UTF-8 or with extra line-feed characters. But then, testing with Notepad on Windows 10 2004, on my own BOINC 7.16.7 and saving the Seti app_info.xml file I get:

UTF-8:

22/07/2020 16:49:18 | SETI@home | Found app_info.xml; using anonymous platform

UTF-8 with BOM:

22/07/2020 16:50:17 | SETI@home | Found app_info.xml; using anonymous platform 22/07/2020 16:50:17 | SETI@home | Unparsed line in app_info.xml:  (but no mention what the line is)

UTF-16LE:

22/07/2020 16:47:33 | SETI@home | Found app_info.xml; using anonymous platform 22/07/2020 16:47:33 | SETI@home | 22/07/2020 16:47:33 | SETI@home | Syntax error in app_info.xml

UTF-16BE:

22/07/2020 16:51:34 | SETI@home | Found app_info.xml; using anonymous platform 22/07/2020 16:51:34 | SETI@home | Syntax error in app_info.xml

ANSI:

22/07/2020 16:52:24 | SETI@home | Found app_info.xml; using anonymous platform

Ageless93 commented 4 years ago

So for completeness, I made an app_config.xml, saved it as UTF-8 from Notepad in Windows 10, 2004. Added into it:

<app_config>
<app>
<name>kaktwoos</name>
<max_concurrent>1</max_concurrent>
</app>
</app_config>

And saved it into the Minecraft directory.

Then started BOINC:

22/07/2020 16:57:52 | minecrafthome | Found app_config.xml 22/07/2020 16:57:52 | minecrafthome | kaktwoos: Max 1 concurrent jobs

So I can't reproduce it either, unless I have to install Nano and I am not going to do that.

Ageless93 commented 4 years ago

Good thing I put this issue down as a feature request, not a bug. ;-) I did check the source code before posting this and only saw that app_config.cpp loads cc_config.h, and did see the "missing start tag" message coming from cc_config.cpp I did not see all the additional app_config messages in cc_config.cpp though, it does look like integrity checks are being made.