Thread 'How to catch project reset?'

Message boards : Server programs : How to catch project reset?
Message board moderation

To post messages, you must log in.

AuthorMessage
SerVal

Send message
Joined: 5 Mar 07
Posts: 7
Russia
Message 69803 - Posted: 30 May 2016, 8:24:33 UTC

Parsing scheduler request:

  if ((d_boinc_used_project == 0) & (rpc_seqno > 0)) 
  {
     Log.project_reset(hostid, user_name, platform_name);
  }


That's right?

*and would like also to catch "remove project".
ID: 69803 · Report as offensive
ChristianB
Volunteer developer
Volunteer tester

Send message
Joined: 4 Jul 12
Posts: 321
Germany
Message 69807 - Posted: 30 May 2016, 16:04:21 UTC

What do you want to achieve? Do you want to detect if a host was reset by the user? I'm not sure if all Clients behave the same way or if the request looks like a project attach to the server. It's possible the reset is different becaue it already sends a hostid which is in the DB.

The "remove project" is something you can't detect on the server because there is no communication from the client at this step.
ID: 69807 · Report as offensive
SerVal

Send message
Joined: 5 Mar 07
Posts: 7
Russia
Message 69810 - Posted: 30 May 2016, 18:37:07 UTC - in response to Message 69807.  

Thank.
Do you want to detect if a host was reset by the user?

I want to detect if project was reset by clicking "Reset project" on Boinc Manager.

What do you want to achieve?

UPDATE Results set exit_code = ERR_ABORTED_BY_USER, received_time = @now, ..
 where hostid=@host_reset


The "remove project" is something you can't detect on the server because there is no communication from the client at this step.

Ok. In that case server will wait report_deadline for results not received from host. :(
ID: 69810 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5130
United Kingdom
Message 69813 - Posted: 30 May 2016, 18:55:46 UTC

I don't think the act of clicking 'reset project' is automatically communicated to the server, either - you would probably first see the next request for work, with no application versions or tasks in progress.
ID: 69813 · Report as offensive
SerVal

Send message
Joined: 5 Mar 07
Posts: 7
Russia
Message 69816 - Posted: 30 May 2016, 19:56:17 UTC - in response to Message 69813.  

you would probably first see the next request for work, with no application versions or tasks in progress.

Thank you, I'll see what happens while dont_sent_work = 1 and project reset.
ID: 69816 · Report as offensive
ChristianB
Volunteer developer
Volunteer tester

Send message
Joined: 4 Jul 12
Posts: 321
Germany
Message 69829 - Posted: 31 May 2016, 7:00:57 UTC - in response to Message 69810.  

Thank.
Do you want to detect if a host was reset by the user?

I want to detect if project was reset by clicking "Reset project" on Boinc Manager.

What do you want to achieve?

UPDATE Results set exit_code = ERR_ABORTED_BY_USER, received_time = @now, ..
 where hostid=@host_reset


The "remove project" is something you can't detect on the server because there is no communication from the client at this step.

Ok. In that case server will wait report_deadline for results not received from host. :(


Keep in mind that this is the opposite of the resend lost work mechanism that resends tasks after a project reset at the host.

You should take a look at authenticate_user() how this host recognition works. You also need to find out how the three types of requests differ from each other. With the three types I mean the first scheduler request after: nely installing the client on a new host, reattaching after detaching the project and the first work request after resetting a project. In theory you have to check if this behavior changes in older Clients. Chances are that the current behavior is consistent for the 7.4 and 7.6 Client versions.
ID: 69829 · Report as offensive

Message boards : Server programs : How to catch project reset?

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.