Wrapper and {abort/}

Message boards : API : Wrapper and {abort/}
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Ananas

Send message
Joined: 27 Jun 06
Posts: 305
Germany
Message 17179 - Posted: 4 May 2008, 11:45:50 UTC
Last modified: 4 May 2008, 12:22:24 UTC

We're currently trying to track down a wrapper problem, probably causing hanging of the wrapped application.


The situation might have been caused by hitting max_cpu_time (i.e. rsc_fpops_bound violated), which leads to a call to abort_task(), sending "<abort/>" to the API.


When the API receives "<abort/>", it sets the variable "abort_request" (Member of BOINC_STATUS) but this seems to be a readonly variable (I find it only as an l-value, never used as r-value).

The actual reaction on Windows seems to be an immediate DebugBreak(), which (IMO) doesn't give the wrapper any chance to treat the wrapped application correct (i.e. kill it or send some other signal to that task).


Can anyone tell if we might on the right track?

If this is the case, the "abort" handling for wrapper applications would have to be revised, the wrapper needs a chance to kill the wrapped program.


p.s.: The described scenario is an attempt to explain, why you often find messy stderr.txt with wrapper output in non-wrapper projects. An example from a Rosetta(!) result :

<core_client_version>5.8.16</core_client_version>
<![CDATA[
<stderr_txt>
wrapper: starting
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
wrapper: starting
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
running crunch_1.01_windows_intelx86.exe
called boinc_finish
wrapper: starting
running S005r6gSimulatorWin32.exe
# cpu_run_time_pref: 10800
# random seed: 3304467
======================================================
DONE ::     1 starting structures  9836.66 cpu seconds
This process generated      6 decoys from       6 attempts
======================================================


BOINC :: Watchdog shutting down...
BOINC :: BOINC support services shutting down...
# cpu_run_time_pref: 10800
======================================================
DONE ::     1 starting structures  10756.7 cpu seconds
This process generated     37 decoys from      37 attempts
======================================================


Those stderr.txt keep growing, which means that the CC is not able to delete them from the slot directory, before a new task starts there.


Another example (this is a SETI result, containing Chess output in this case) :

<core_client_version>5.5.0</core_client_version>
<message>
Maximum disk usage exceeded
</message>
<stderr_txt>
Chess960athome Wrapper (build 17; 200606301254) starting

Preparing input file
Generated random engine name engine_r9961.exe
Preparing launch.bat
launch.bat: engine_r9961.exe < input > ../../projects/www.chess960athome.org_alpha/chess960_444_14_1_0
Copying glaurung dependencies
Retval for kpk.bin: 0
Retval for engine_r9961.exe: 0
Ready to lauch launch.bat
Process created
Sleeping to let chess engine start
Enumerating processes
Enumerating processes
Found process: engine_r9961.exe (ID: 1712)
ID: 17179 · Report as offensive

Message boards : API : Wrapper and {abort/}

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.