There was a bug in the API that caused apps that use critical sections
(like most GPU apps)
to sometimes not exit when the client exits or crashes.
I checked in a fix.

BTW, for apps that handle status events themselves,
the flag indicating the client has died is status.no_heartbeat.

-- David

On 26-Oct-2014 11:30 AM, Raistmer the Sorcerer wrote:

If BOINC client stopped unexpectedly (crashed or killed via task manager for 
example) CPU apps exit after some time. But SETI OpenCL apps continue to run to 
completion.
Such behavior can and (was demonstrated) will result in subsequent result computation 
error with some BOINC message like "result file too long" or smth alike.

OpenCL apps working in BOINC's "critical section" and poll flags periodically 
to see if exit required.

Currently I use next poll function to check exit condition:

inline void ExitCheck(){
check_repeat:
if (boinc_status.quit_request || boinc_status.abort_request || !canRun) {
/* fprintf(stderr,"DEBUG: polled for exit/suspend request: exit needed. Flags 
are: boinc_status.quit_request=%d, \
boinc_status.abort_request=%d, canRun=%d\n",
boinc_status.quit_request,boinc_status.abort_request,canRun);*/
DoSyncExit();
}else if(boinc_status.suspended){
Sleep(100); //R:await in sleep 100ms
/* fprintf(stderr,"DEBUG: polled for exit/suspend request: sleep needed. Flags 
are: boinc_status.quit_request=%d, \
boinc_status.abort_request=%d, canRun=%d\n",
boinc_status.quit_request,boinc_status.abort_request,canRun);*/
goto check_repeat;//R: check again if exit required or sleep continues
}else{
/* fprintf(stderr,"DEBUG: polled for exit/suspend request: exit NOT needed. 
Flags are: boinc_status.quit_request=%d, \
boinc_status.abort_request=%d, canRun=%d\n",
boinc_status.quit_request,boinc_status.abort_request,canRun);*/
}
} What another flags should be checked if any to prevent orphaned state for GPU apps? 
Does BOINC API have measures to properly end task running in "critical section" 
in case of BOINC client crash?

wbr

_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to