Opened 17 years ago

Closed 17 years ago

Last modified 15 years ago

#350 closed Defect (fixed)

Bad executables can cause infinite loop

Reported by: charlief Owned by: davea
Priority: Major Milestone: Undetermined
Component: Client - Daemon Version:
Keywords: Cc:

Description (last modified by Nicolas)

If a defective project application always exits with code 0, the BOINC Client will restart it forever and will never contact the server. The message window does show "If this happns repeatedly, you may need to reset the project" but many users may not notice this, and some won't follow the instructions even though they do see it.

Suggestion: If the Client detects this happening N times within M minutes, abort the task.

This happened with setiathome-5.21.powerpc-apple-darwin. All the associated files had the executable set, so the BOINC Client tried to execute the setiathome-5.21_AUTHORS file instead of the application.

At 2:21 PM -0700 7/19/07, Jeff Cobb wrote:

The underlying problem is that the executable name is different
than the directory name:

   setiathome_5.21_powerpc-apple-darwin/
               setiathome-5.21.powerpc-apple-darwin

When the name match fails, the boinc client may resort to using
the executable flag. 

So another possibility might be to create an error condition when there is no match, ideally at the server.

I'm not sure what directory Jeff means here, as the application file is in the "BOINC Data/projects/setiathome.berkeley.edu/" directory on my Mac; there is no directory with a name like the one Jeff mentions. Perhaps he is talking about a directory on the BOINC server, but it's unclear to me how that would affect the BOINC Client's choice of executables.

Change History (4)

comment:1 Changed 17 years ago by charlief

Owner: changed from DaveA to davea

comment:2 Changed 17 years ago by Nicolas

Description: modified (diff)

fix typo on description

comment:3 Changed 17 years ago by Nicolas

It is indeed a server directory. The problem with that filename is the directory has an underscore between version and platform, and the executable has a period. I find it surprising that update_versions searches for the first executable file to mark as <main_file/> (that flag is sent to client) if filename match fails... Shouldn't it just give an error?

comment:4 Changed 17 years ago by Nicolas

Component: Client - Scheduler PolicyClient - Daemon
Resolution: fixed
Status: newclosed

This is actually two bugs.

  • If the app quits with code 0, client shouldn't restart it indefinitely - fixed in [13207]
  • update_versions shouldn't take the first file as executable - fixed in [13201]
Note: See TracTickets for help on using tickets.