El Jue 11 Jun 2009 11:04:13 Kathryn Marks escribió:
> On Thu, Jun 11, 2009 at 10:37 PM, Jorden van der Elst 
<els...@gmail.com>wrote:
> > Hi Rom,
> >
> > Why did all of the 6.6.36 versions go out as recommended versions
> > without even testing them?
> > Now we're getting reports in that BOINC Manager won't start the client
> > when you run the boinc-manager script, plus an apparent key library
> > file is missing on starting BM on 32bit Linux. it works correctly on
> > 64bit Linux.
>
> I'm on 64 bit Fedora 10 currently.  The run_manager script starts the
> manager but the manager fails to start the client.  This is in a clean
> install in ~/kathryn/BOINC (directory created by the .sh).

Almost two months later, still no new 6.6 with this fixed. I guess PTP and ATI 
are more important (or hyped) than getting Linux BOINC to *work at all*.

Code to detect if the client is running, for non-Windows:

    sprintf(path, "%s/%s", (char *)wxGetApp().GetDataDirectory().char_str(), 
LOCK_FILE_NAME);
    if (file_lock.lock(path)) {
        running = true;
    } else {
        file_lock.unlock(path);
    }

file_lock.lock() tries to open() the file and then lock it with fcntl(). If 
that fails, then the client is assumed to be running and locking the file 
exclusively. Even if the failure is not actually because of exclusive locking 
by another process. Nobody ever looks at errno.

Here's the code that fills in the variable later returned by GetDataDirectory,
on Linux (that is, after removing Win-only and Mac-only code):

void CBOINCGUIApp::DetectDataDirectory() {
}

The string is initialized to wxEmptyString, so after this code (or lack 
thereof), it will stay empty. Empty string + "/lockfile" = "/lockfile", which 
is a file in the filesystem root. I have confirmed with strace that this is 
the path the manager is trying to open().

Since the manager doesn't run as root (at least I'd hope nobody is that 
stupid), it cannot open() a file in the filesystem root. Since 
FILE_LOCK::lock fails, the client is assumed to be running, and it's not 
started again. And then this happens:

<maelcum> hi. i just upgraded from 6.4.something to the latest version and now 
the manager doesn't show any projects anymore.
<maelcum> it's as if i didn't have any accounts.
<maelcum> this is on linux.
<maelcum> what can i do?
[...]
<PovAddict> go to Messages
<PovAddict> look for a line starting with "Data directory:"
<maelcum> messages is 100% empty
<PovAddict> o_o
<PovAddict> then it's not running at all, I'd say...
<maelcum> okay, that's a start

This was "fixed" in r18420 by first checking if the lockfile exists, but 
citing a "rare race condition". (Obviously committed before even testing if 
it compiled, since r18421 added a missing parenthesis). It was then ported to 
the 6.8 branch, but not to 6.6.

Can we now have a working 6.6 for Linux please?
_______________________________________________
boinc_dev mailing list
boinc_dev@ssl.berkeley.edu
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