El Sáb 22 Ago 2009 17:54:07 Nicolás Alvarez escribió: > 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?
Yet another user on IRC having the same problem, 6.6 manager not starting client. He asks if manager auto-starting client is a dropped feature. -- Nicolas _______________________________________________ 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.