It seems this message passed unnoticed. 
Is it intended design decision to leave GPU tasks running indefinitely (up to 
finish or hang) in case of BOINC client crash ?


Sun, 26 Oct 2014 21:48:54 +0300 от Raistmer the Sorcerer <[email protected]>:
>On my host test case resulted in error:
>
><core_client_version>7.0.64</core_client_version>
><![CDATA[
><message>
>(unknown error) - exit code 194 (0xc2)
></message>
><stderr_txt>
>
>Both OpenCL results were marked as computation error on next BOINC client 
>start.
>
>
>
>
>Sun, 26 Oct 2014 21:30:24 +0300 от Raistmer the Sorcerer < [email protected] >:
>>
>>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
>>-- 
>>Raistmer the Sorcerer
>>_______________________________________________
>>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.
>
>_______________________________________________
>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.
_______________________________________________
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