BOINC Software, Work Manager's Result states

Message boards : Number crunching : BOINC Software, Work Manager's Result states
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Paul D. Buck
Volunteer tester

Send message
Joined: 19 Jul 00
Posts: 3898
Credit: 1,158,042
RAC: 0
United States
Message 15467 - Posted: 11 Aug 2004, 14:15:55 UTC
Last modified: 11 Aug 2004, 14:17:03 UTC

Ok, here we go ...

From the file gui_titles.C we have the following list of the states of a work unit that are going to be stored in a variable named g_szMiscItems:

 char g_szMiscItems[MAX_MISC_STR][256] = {
    "New",
    "Running",
    "Ready to run",
    "Computation error", // Computation done
    "Ready to report", // Results uploaded / Files uploaded
    "Acknowledged",
    "Error: invalid state",
    "Completed",
    "Uploading",
    "Downloading",
    "Retry in",
    "Download failed",
    "Upload failed",
    "Suspended"
};

with the numbers 0 to 13 for each text item.

In wingui_mainwindow.cpp these values are displayed in function: void CMainWindow::UpdateGUI(CLIENT_STATE* pcs)

for the Work Tab we have the code:
            // status
            switch(re->state) {
                case RESULT_NEW:
                    strBuf.Format(g_szMiscItems[0]); break;
                case RESULT_FILES_DOWNLOADING:
                    if (re->ready_to_report) {
                        strBuf.Format(g_szMiscItems[11]);
                    } else {
                        strBuf.Format(g_szMiscItems[9]);
                    }
                    break;
                case RESULT_FILES_DOWNLOADED:
                    if (at) strBuf.Format(g_szMiscItems[1]);
                    else strBuf.Format(g_szMiscItems[2]);
                    break;
                case RESULT_COMPUTE_DONE:
                    strBuf.Format(g_szMiscItems[3]); break;
                    break;
                case RESULT_FILES_UPLOADING:
                    if (re->ready_to_report) {
                        strBuf.Format(g_szMiscItems[12]);
                    } else {
                        strBuf.Format(g_szMiscItems[8]);
                    }
                    break;
                default:
                    if (re->got_server_ack) strBuf.Format(g_szMiscItems[5]);
                    else if (re->ready_to_report) strBuf.Format(g_szMiscItems[4]);
                    else {
                        strBuf.Format("%s %d", g_szMiscItems[6], re->state);
                    }
                    break;
            }
            if (gstate.activities_suspended) {
                strBuf = CString(g_szMiscItems[13]) + " (" + strBuf + ")";
            }
            if (m_ResultListCtrl.GetItemText(i, 7) != strBuf)
                m_ResultListCtrl.SetItemText(i, 7, strBuf);

Which means that we can see all but state number 7 (Completed), and 10 (Retry in) and why state 10 is left off the work tab when the other transfer states are possible escapes me. Later in this same function we have the update for the transfers tab which uses states 8 through 13 ...

The primary selector is "state" with a secondary and tertiary selectors of ready_to_report and got_server_ack.

Now my problem is that I have not been able to find the logic that transitions the WU through the states and of the 14 possible transitions the only one I am sure of is state 13 (Suspended; mostly because I forced it last night).

I would have thought that after the WU was done we would have been in state 7 (Completed) then when the data file has been transferred to the Data Server we would have gone into state 4 (Ready to report) until the scheduling server was contacted and the result reported.

Remember, as Tom Lehrer said; base 8 is just like base 10 really ... if you are missing 2 fingers ...



ID: 15467 · Report as offensive

Message boards : Number crunching : BOINC Software, Work Manager's Result states


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.