Format of job log files

Message boards : Documentation : Format of job log files
Message board moderation

To post messages, you must log in.

AuthorMessage
Paul Schauble

Send message
Joined: 29 Aug 05
Posts: 67
Message 104436 - Posted: 22 May 2021, 7:51:33 UTC

Where can I find documentation on the format of the job log files in the BOINC directory?

Thanks
ID: 104436 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 4545
United Kingdom
Message 104437 - Posted: 22 May 2021, 9:30:28 UTC - in response to Message 104436.  
Last modified: 22 May 2021, 9:41:14 UTC

I haven't found any documentation either, but this is what I've worked out for myself. It's text format, with Linux line endings, with fields in the format [identifier, value]. I read them as:

	Datestamp		Unix timestamp at completion
[ue]	Estimated runtime	BOINC Client estimate (seconds)
[ct]	CPU time		Measured CPU runtime at completion (seconds)
[fe]	Estimated FLOPs count	From project (integer)
[nm]	Task name		From project
[et]	Elapsed time 		Wallclock runtime at completion (seconds)
There's an additional field [es] after those, but I haven't identified it yet - the value is always zero.

Edit - [es] stands for 'exit status'. But since job log entries are only written for tasks which finished without error, that's not much use.
ID: 104437 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 4545
United Kingdom
Message 104447 - Posted: 23 May 2021, 12:02:19 UTC
Last modified: 23 May 2021, 12:03:06 UTC

I did some more poking around to try and work out when, and why, [es] was added to the job log format. 'When' is easy: Jul 14, 2013. 'Why' is unfathomable.

Nothing is said in the commit that added it. 2013 is the first year for which no separate file of checkin_notes was maintained. So history is silent.

And then, as now, it had absolutely zero purpose. Starting at https://github.com/BOINC/boinc/blob/master/client/cs_apps.cpp#L181, the code path reads

    if (rp->exit_status != 0) {
        had_error = true;
    }

    if (had_error) {
...
[do some housekeeping]
...
    } else {
...
        rp->append_log_record();
...
    }
And that's the only place where the code to add to the job log file is called.

So, we write to the job log if, and only if, exit status is zero. Adding those five bytes to every line tells us absolutely nothing we didn't know already. If the intention was to come back and add something new, like log entries for failed tasks with the reason for failure included, it's taking a mighty long time to get round to it.
ID: 104447 · Report as offensive
Profile Dave

Send message
Joined: 28 Jun 10
Posts: 1439
United Kingdom
Message 104448 - Posted: 23 May 2021, 13:19:48 UTC

If the intention was to come back and add something new, like log entries for failed tasks with the reason for failure included, it's taking a mighty long time to get round to it.


Is the person who made the change still doing any work on BOINC?
ID: 104448 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 4545
United Kingdom
Message 104449 - Posted: 23 May 2021, 14:01:30 UTC - in response to Message 104448.  

If the intention was to come back and add something new, like log entries for failed tasks with the reason for failure included, it's taking a mighty long time to get round to it.
Is the person who made the change still doing any work on BOINC?
He's doing more for Science United, these days. But he doesn't seem to have realised that Science United is entirely reliant on a working, bug-free BOINC infrastructure to hold it up. DA.
ID: 104449 · Report as offensive

Message boards : Documentation : Format of job log files

Copyright © 2021 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.