Reading WU report file after uploading

Message boards : BOINC client : Reading WU report file after uploading
Message board moderation

To post messages, you must log in.

AuthorMessage
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26514 - Posted: 7 Aug 2009, 7:55:23 UTC

Is it possible to read stderr messages, or keep them on the system after upload and reporting.

What I want to do is read the WU report file after it is uploaded. To check if there are any messages that indicate an error.
http://www.efmer.eu/boinc/boinc_tasks/



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

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 26515 - Posted: 7 Aug 2009, 8:41:08 UTC

Not using BOINC itself.

BOINC apps write the stderr messages into the slot directory while running, but they get transferred to client_state.xml when the application terminates. The slot directory is immediately cleaned for re-use - nothing available there.

Similarly, science output data files are cleaned up and unavailable as soon as the 'file upload' has completed successfully - usually a matter of seconds after the application terminates. You only get a breathing space if no internet connection is available, or networking is disabled in BOINC.

The stderr messages remain in client_state.xml, and are accessible via standard RPC calls, until the result is reported: but they are removed as soon as the report ack is received from the server. And they need to be: client_state.xml is an awkward enough construct already (and BOINC can barely cope with it): reclaiming the space is vital.

The only way of doing what you want is to use, or re-create, a tool like BoincLogX, which would monitor the files and messages in real time and transfer them to your own storage structure for subsequent inspection.
ID: 26515 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 26517 - Posted: 7 Aug 2009, 8:45:46 UTC - in response to Message 26516.  

Using the still very functional BOINCview it Logs and even provides an exit status code in the Completed window, so yes think it should be possible, then for the detail visit the Result Status page on the project website.

Fred is writing his tool in a SETI context. The SETI admins are being quite tough on web-scraping at the moment (to the extent of blocking IPs), and Fred has been advised to avoid it.
ID: 26517 · Report as offensive
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26518 - Posted: 7 Aug 2009, 9:57:47 UTC - in response to Message 26517.  

Using the still very functional BOINCview it Logs and even provides an exit status code in the Completed window, so yes think it should be possible, then for the detail visit the Result Status page on the project website.

Fred is writing his tool in a SETI context. The SETI admins are being quite tough on web-scraping at the moment (to the extent of blocking IPs), and Fred has been advised to avoid it.

I try to live by the rules even the one I never heard about..
ID: 26518 · Report as offensive
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26519 - Posted: 7 Aug 2009, 10:10:59 UTC - in response to Message 26515.  

Not using BOINC itself.

BOINC apps write the stderr messages into the slot directory while running, but they get transferred to client_state.xml when the application terminates. The slot directory is immediately cleaned for re-use - nothing available there.

Similarly, science output data files are cleaned up and unavailable as soon as the 'file upload' has completed successfully - usually a matter of seconds after the application terminates. You only get a breathing space if no internet connection is available, or networking is disabled in BOINC.

The stderr messages remain in client_state.xml, and are accessible via standard RPC calls, until the result is reported: but they are removed as soon as the report ack is received from the server. And they need to be: client_state.xml is an awkward enough construct already (and BOINC can barely cope with it): reclaiming the space is vital.

The only way of doing what you want is to use, or re-create, a tool like BoincLogX, which would monitor the files and messages in real time and transfer them to your own storage structure for subsequent inspection.

But this means realtime checks and that's quite time comsuming. With a couple of 1000 WU that's almost impossible to do.
I need another way.
When a WU is ready to report all the info is in the client_state.
Is there a way to stop the reporting?
In other words is it possible to stop reporting, read the clien_state (easy) and then allow reporting again.
You could send a stop new work, but do you know a beter way.
ID: 26519 · Report as offensive
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26520 - Posted: 7 Aug 2009, 10:11:58 UTC - in response to Message 26515.  

Not using BOINC itself.

BOINC apps write the stderr messages into the slot directory while running, but they get transferred to client_state.xml when the application terminates. The slot directory is immediately cleaned for re-use - nothing available there.

Similarly, science output data files are cleaned up and unavailable as soon as the 'file upload' has completed successfully - usually a matter of seconds after the application terminates. You only get a breathing space if no internet connection is available, or networking is disabled in BOINC.

The stderr messages remain in client_state.xml, and are accessible via standard RPC calls, until the result is reported: but they are removed as soon as the report ack is received from the server. And they need to be: client_state.xml is an awkward enough construct already (and BOINC can barely cope with it): reclaiming the space is vital.

The only way of doing what you want is to use, or re-create, a tool like BoincLogX, which would monitor the files and messages in real time and transfer them to your own storage structure for subsequent inspection.

But this means realtime checks and that's quite time comsuming. With a couple of 1000 WU that's almost impossible to do.
I need another way.
When a WU is ready to report all the info is in the client_state.
Is there a way to stop the reporting?
In other words is it possible to stop reporting, read the clien_state (easy) and then allow reporting again.
You could send a stop new work, but do you know a beter way.
ID: 26520 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15483
Netherlands
Message 26521 - Posted: 7 Aug 2009, 12:09:07 UTC
Last modified: 7 Aug 2009, 12:12:57 UTC

When a WU is ready to report all the info is in the client_state.
Is there a way to stop the reporting?
In other words is it possible to stop reporting, read the clien_state (easy) and then allow reporting again.
You could send a stop new work, but do you know a beter way.


The same information goes out in the sched_request_*.xml file, in very useful <stderr></stderr> tags, which by any means is always much smaller than the client_state.xml file is. You can read it from there.

I wouldn't interfere at any time with the working of the client, stopping reports or anything else, just for the benefit of a logging program.
ID: 26521 · Report as offensive
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26522 - Posted: 7 Aug 2009, 12:26:32 UTC - in response to Message 26521.  

When a WU is ready to report all the info is in the client_state.
Is there a way to stop the reporting?
In other words is it possible to stop reporting, read the clien_state (easy) and then allow reporting again.
You could send a stop new work, but do you know a beter way.


The same information goes out in the sched_request_*.xml file, in very useful <stderr></stderr> tags, which by any means is always much smaller than the client_state.xml file is. You can read it from there.

I wouldn't interfere at any time with the working of the client, stopping reports or anything else, just for the benefit of a logging program.

Thanks that looks like something usefull.
ID: 26522 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 26523 - Posted: 7 Aug 2009, 12:32:23 UTC - in response to Message 26522.  

The same information goes out in the sched_request_*.xml file, in very useful <stderr></stderr> tags, which by any means is always much smaller than the client_state.xml file is. You can read it from there.

I wouldn't interfere at any time with the working of the client, stopping reports or anything else, just for the benefit of a logging program.

Thanks that looks like something usefull.

Certainly does, and the files are persistent - can be read at any time until the next scheduler request. But those requests can come in pretty quick succession - typically ~20 seconds at SETI - and no backup of the previous file is kept.
ID: 26523 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15483
Netherlands
Message 26524 - Posted: 7 Aug 2009, 12:35:05 UTC - in response to Message 26523.  
Last modified: 7 Aug 2009, 12:37:20 UTC

and no backup of the previous file is kept.

In that case, Fred can probably tell his program to make a backup of the sched_request_*.xml file. :-)

Something like:
- Read sched_request* file, check for <stderr> tag.
- If present, make backup with incremental number.
- Use backup to plunder for data.
ID: 26524 · Report as offensive
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26525 - Posted: 7 Aug 2009, 12:45:03 UTC - in response to Message 26524.  

and no backup of the previous file is kept.

In that case, Fred can probably tell his program to make a backup of the sched_request_*.xml file. :-)

Something like:
- Read sched_request* file, check for <stderr> tag.
- If present, make backup with incremental number.
- Use backup to plunder for data.

A backup was something I had in mind but there are some potential problems.
When a WU completes and is uploaded a request for more work and an report may be seconds away.
But let's see what I can do, the goal is to have less impact not more than BOINC.
I think I can go ahead with this for a couple of days....
So I can spot some errors the moment they occur.
ID: 26525 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5082
United Kingdom
Message 26528 - Posted: 7 Aug 2009, 14:43:10 UTC - in response to Message 26525.  

A backup was something I had in mind but there are some potential problems.
When a WU completes and is uploaded a request for more work and an report may be seconds away.
But let's see what I can do, the goal is to have less impact not more than BOINC.
I think I can go ahead with this for a couple of days....
So I can spot some errors the moment they occur.

Knowing some BOINC quirks may help you here.

If the application exits with an error, I think you get an automatic comms backoff of 60 seconds, so no immediate sched_request. There's usually no upload file for an exit_error, so the error text will definitely be in the next sched_request, which as you say is likely to be pretty soon after the 60 seconds are up.

If the application exits early, but reports success - e.g. a SETI dash-9 overflow - then as you say the cache/EDF recalculation may trigger an immediate work fetch: but there will be a file to upload, and the upload won't be complete when the sched_request goes in. So the error text won't appear until the next sched_request, or possibly even later if the upload handler is playing up.
ID: 26528 · Report as offensive
Fred - efmer.com
Avatar

Send message
Joined: 8 Aug 08
Posts: 570
Netherlands
Message 26554 - Posted: 9 Aug 2009, 17:25:27 UTC - in response to Message 26528.  

Oeps another thing I forgot to ask.
I want to do this remotely.
Is there a way to read a file by using the Boinc core client.
So an RPC read on a specific XML file on a remote computer.
ID: 26554 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15483
Netherlands
Message 26555 - Posted: 9 Aug 2009, 17:50:30 UTC - in response to Message 26554.  

Not without you sharing that computer's BOINC Data directory (and underlying files and maps) with the other computers on the network.
ID: 26555 · Report as offensive

Message boards : BOINC client : Reading WU report file after uploading

Copyright © 2024 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.