Page 1 of 12

Langouste -- WU upload/download de-coupler (+upload capping)

Posted: Sun Sep 27, 2009 5:28 pm
by tear
Dec 13, 2013
This post will not be updated any more. To follow Langouste development please visit http://area51dev.blogspot.com



UPDATE: Langouste 15.17 is now available. See CHANGES below for more information.
Linux users: when configuring the client always use 127.0.0.1 as the proxy address;
          do _not_ use localhost as it may render client unable to contact Langouste (and, subsequently, upload or download any WUs)

Langouste does upload capping (see section 6)!
Langouste works on Microsoft Windows systems: Windows users are encouraged to read sections 1, 2, 3 and 5

Code: Select all

$ cat README.txt 

Contents:
0. License
1. What does Langouste do?
2. How is Langouste useful?
3. Supported configurations (PLEASE READ!)
4. Linux information
4.1. Building Langouste
4.2. Using Langouste
4.3. Upgrading Langouste
4.4. How do I know it's working?
5. Windows information
5.1. Using Langouste
5.2. Upgrading Langouste
5.3. How do I know it's working?
6. Rate limiting (upload capping) feature
6.1. Rate limiting with decoupling (1 Langouste per machine)
7. Known issues and caveats
8. Support
9. Credits



0. License

  Langouste is licensed under GNU General Public License version 2.
  See COPYING.txt for details.



1. What does Langouste do?

  Upon client's attempt to contact collection server (with a WU to return)
  it forks a copy of the client (in temporary directory) with -send
  parameter and terminates connection "original" client was attempting to
  make. If forked client is able to send data back, corresponding
  wuresults_*.dat file is wiped from original client's work directory
  (so original client's autosend bails out and removes it from queue).



2. How is Langouste useful?

  Its intended purpose is to make WU download and return processes
  asynchronous (in other words to enable simultaneous downloads and uploads).

  Processed SMP and SMP -bigadv WUs are usually large (25-100MB).  When WU
  processing is complete client sends back the results but new WU is not
  retrieved until after upload is complete.

  On relatively fast links (1Mbit up) bigadv upload takes ~12 minutes (+5
  extra minutes of FAH client/server processing).
  Moreover, due to client deficiencies (see
  http://foldingforum.org/viewtopic.php?f=44&t=10615) results file cleaning
  takes additional time (depending on underlying filesystem -- between
  several and 20+ minutes).

  As Langouste decouples upload and download processes a new WU can be
  downloaded while WU upload continues in background thus saving time.
  Time that can be spent on simulation.



3. Supported configurations (PLEASE READ!)

  Langouste is supported on modern Linux distributions running Folding@Home
  clients 6.02 (32-bit) and 6.34 (64-bit).

  Langouste is also supported on 32- and 64-bit Windows running
  Folding@Home clients (console, console+GPU, console+SMP, systray, systray+GPU)
  6.23, 6.30, 6.41, _not_ in service mode.

  Minimal requirement is Windows XP with Service Pack 2. Windows Vista and 7
  are also supported.



4. Linux information

4.1. Building Langouste

    1. Make sure gcc, make and appropriate development packages are installed
    2. Run 'make'
    3. Run 'sudo make install' or otherwise run 'make install' as root.

       Langouste installs documentation, helper script and rudimentary
       SysV initscript to  /usr/share/langouste3/. Sample configuration
       file is installed to /etc/langouste3/.



4.2. Using Langouste

    1. Copy helper script (from /usr/share/langouste3/) to FAH client's
       directory
    2. Pick a non-used port for Langouste to use (I use 8880)
    3. Start Langouste*,**,***: 'langouste3 -l port-from-step-2'
    4. Reconfigure FAH client (-config or -configonly)
        - set proxy host to 127.0.0.1 (do not leave 'localhost' there)
        - set proxy port to port from step 2****
    5. Enjoy

    *) if you wish to run Langouste in the backgound (otherwise you need
       to keep Langouste terminal window open at all times) add -D option
       to Langouste's command line, e.g. langouste3 -l port-from-step-2 -D

   **) it is  _critical_ Langouste is run as the same user as FAH client(s)
       (it has no effect otherwise)

  ***) Langouste also supports reading configuration from a file -- use
       '-c' option to specify a file; for configuration options see
       langouste.conf.example (located in /etc/langouste3/ after installation)

 ****) Langouste is designed to handle multiple clients (on same machine) --
       running single instance is good enough



4.3. Upgrading Langouste

    1. Build and install Langouste per 4.1.
    2. Pick a time when FAH client is not sending or receiving data (shutting
       client down is not necessary)
    3. Terminate existing instance of Langouste
    4. Start new instance of Langouste
    5. Copy new helper script (from /usr/share/langouste3/) to FAH client
       directory
    6. Remove old Langouste directory/binary (for safety)



4.4. How do I know it's working?

  First off, even if you intend to run Langouste as a daemon (in the
  background) running it in the foreground for a while is recommended (just
  to make sure things work as expected).

  Anyway, the easiest way is to examine forked client's log at (or after)
  the time WU is returned (/tmp/langouste directory). See reference log
  in dist/linux/reflogs/ directory.

  Langouste terminal output follows (informative).

  Client (PID 11899) attempts to return a WU but initial connection
  is terminated and a new client instance (set up to return the WU) is forked
  (via helper script -- PID 11982):

    Thu Jun  6 00:45:00 2013 Accepted connection from 127.0.0.1:53282
    Thu Jun  6 00:45:00 2013 PID for socket: 11899
    Thu Jun  6 00:45:00 2013 PID 11899: issending: 0
    Thu Jun  6 00:45:00 2013 (0) Connection from 127.0.0.1:53282 -- slot 0
    Thu Jun  6 00:45:00 2013 (0) [FAH] PID 11899 is most likely contacting WU server, content length: 91590673
    Thu Jun  6 00:45:00 2013 (0) [FAH] Helper pid: -1
    Thu Jun  6 00:45:00 2013 (0) [FAH] PID 11899: numcores: 0
    Thu Jun  6 00:45:00 2013 (0) [FAH] now: 1370501100, last helper launched at: 0
    Thu Jun  6 00:45:00 2013 (0) [FAH] Launching helper: '/proc/11899/cwd/langouste-helper.sh' (exe name: '/home/folding/fah/fah6')...
    Thu Jun  6 00:45:00 2013 (0) [FAH] Forked 11982
    Thu Jun  6 00:45:00 2013 (0) Local: received 16384 bytes, sent 0 bytes


  Helper output (normally mixed with Langouste output in the terminal -- not logged):

    DIRNAME: /proc/11899/cwd
    READLINK: /home/folding/fah
    BASENAME: langouste-helper.sh
    /proc/11899/cwd/langouste-helper.sh: launching asynchronous part, using /home/folding/fah/langouste-helper.sh


  As original client doesn't know we're doing anything in the background,
  it continues (for a while) its WU return attempts, which are repeatedly
  denied by Langouste -- we see the following sequence several times:

    Thu Jun  6 00:45:00 2013 Accepted connection from 127.0.0.1:53283
    Thu Jun  6 00:45:00 2013 PID for socket: 11899
    Thu Jun  6 00:45:00 2013 PID 11899: issending: 0
    Thu Jun  6 00:45:00 2013 (0) Connection from 127.0.0.1:53283 -- slot 0
    Thu Jun  6 00:45:00 2013 (0) [FAH] PID 11899 is most likely contacting WU server, content length: 91590673
    Thu Jun  6 00:45:00 2013 (0) [FAH] Helper pid: -1
    Thu Jun  6 00:45:00 2013 (0) [FAH] PID 11899: numcores: 0
    Thu Jun  6 00:45:00 2013 (0) [FAH] now: 1370501100, last helper launched at: 1370501100
    Thu Jun  6 00:45:00 2013 (0) [FAH] WARNING: can only launch one helper in 2 minutes (per client)
    Thu Jun  6 00:45:00 2013 (0) Local: received 16384 bytes, sent 0 bytes


  Eventually, original client gives up WU return attempts and initiates
  download of a new WU:

    Thu Jun  6 00:45:00 2013 Accepted connection from 127.0.0.1:53288
    Thu Jun  6 00:45:00 2013 PID for socket: 11899
    Thu Jun  6 00:45:00 2013 PID 11899: issending: 0
    Thu Jun  6 00:45:00 2013 (0) Connection from 127.0.0.1:53288 -- slot 0
    Thu Jun  6 00:45:00 2013 (0) [FAH] PID 11899 is contacting main assignment server
    Thu Jun  6 00:45:00 2013 (0) resolving 'assign.stanford.edu:8080'
    Thu Jun  6 00:45:00 2013 (0) Connecting to: 171.67.108.200:8080
    Thu Jun  6 00:45:00 2013 (0) Connected.
    Thu Jun  6 00:45:00 2013 (0) Local connection closed (bsize: 0).
    Thu Jun  6 00:45:00 2013 (0) Local: received 559 bytes, sent 396 bytes
    Thu Jun  6 00:45:00 2013 (0) Remote: received 396 bytes, sent 559 bytes
    Thu Jun  6 00:45:01 2013 Accepted connection from 127.0.0.1:53290
    Thu Jun  6 00:45:01 2013 PID for socket: 11899
    Thu Jun  6 00:45:01 2013 PID 11899: issending: 0
    Thu Jun  6 00:45:01 2013 (0) Connection from 127.0.0.1:53290 -- slot 0
    Thu Jun  6 00:45:01 2013 (0) [FAH] PID 11899 is most likely contacting WU server, content length: 512
    Thu Jun  6 00:45:01 2013 (0) resolving '128.143.231.201:8080'
    Thu Jun  6 00:45:01 2013 (0) Connecting to: 128.143.231.201:8080
    Thu Jun  6 00:45:01 2013 (0) Connected.


  One minute after first WU return attempt the forked (background) client
  kicks in:

    Thu Jun  6 00:46:00 2013 Accepted connection from 127.0.0.1:54401
    Thu Jun  6 00:46:00 2013 PID for socket: 12011
    Thu Jun  6 00:46:00 2013 PID 12011: issending: 1
    Thu Jun  6 00:46:00 2013 (1) Connection from 127.0.0.1:54401 -- slot 1
    Thu Jun  6 00:46:00 2013 (1) [FAH] PID -1 is most likely contacting WU server, content length: 91590673
    Thu Jun  6 00:46:00 2013 (1) resolving '128.143.231.201:8080'
    Thu Jun  6 00:46:00 2013 (1) Connecting to: 128.143.231.201:8080
    Thu Jun  6 00:46:01 2013 (1) Connected.


  Original client completes download of new WU:

    Thu Jun  6 00:48:08 2013 (0) Remote connection closed (rbsize: 0).
    Thu Jun  6 00:48:08 2013 (0) Local: received 631 bytes, sent 30348818 bytes
    Thu Jun  6 00:48:08 2013 (0) Remote: received 30348818 bytes, sent 631 bytes


  And, again, tries to return the WU (the one that's already being handled
  by the forked client) several times.

    Thu Jun  6 00:48:08 2013 Accepted connection from 127.0.0.1:53292
    Thu Jun  6 00:48:08 2013 PID for socket: 11899
    Thu Jun  6 00:48:08 2013 PID 11899: issending: 0
    Thu Jun  6 00:48:08 2013 (0) Connection from 127.0.0.1:53292 -- slot 0
    Thu Jun  6 00:48:08 2013 (0) [FAH] PID 11899 is most likely contacting WU server, content length: 91590673
    Thu Jun  6 00:48:08 2013 (0) [FAH] Helper pid: 12011
    Thu Jun  6 00:48:08 2013 (0) [FAH] PID 11899: numcores: 0
    Thu Jun  6 00:48:08 2013 (0) [FAH] Helper (pid 12011) already running
    Thu Jun  6 00:48:08 2013 (0) [FAH] If you're sure that's not the case, please remove /tmp/fah/f1
    Thu Jun  6 00:48:08 2013 (0) Local: received 16384 bytes, sent 0 bytes


  Finally, forked (background) client completes the upload:

    Thu Jun  6 00:52:22 2013 (1) Complete request sent.
    Thu Jun  6 00:52:22 2013 (1) Remote connection closed (rbsize: 0).
    Thu Jun  6 00:52:22 2013 (1) Local: received 91590797 bytes, sent 634 bytes
    Thu Jun  6 00:52:22 2013 (1) Remote: received 634 bytes, sent 91590797 bytes
    Thu Jun  6 00:52:22 2013 (1) Ratelimit: sent 91590797 byte(s) in 381.824 seconds, 239877 Bps (234.25 kBps)



5. Windows information

5.1. Using Langouste

    1. Unzip Langouste archive
    2. Copy helper batch file (from dist\win32\ directory) to FAH client's
       directory (console) or, if using systray client, to Folding@Home data
       files directory
    3. Pick a non-used port for Langouste to use (I use 8880)
    4. Start cmd.exe
    5. Change directory to dist\win32\ subdirectory of the unzipped archive
    6. Start Langouste*,**,***: langouste3-15.10.exe -l port-from-step-3
    7. Reconfigure FAH client:
        - set proxy host to 127.0.0.1 (do not leave 'localhost' there)
        - set proxy port to port from step 3****
    8. Enjoy

    *) it is  _critical_ Langouste is run as the same user as FAH client(s)
       (it has no effect otherwise)

   **) Langouste also supports reading configuration from a file -- use
       '-c' option to specify a file; for configuration options see
       langouste.conf.example (located in dist/)

  ***) Langouste also supports reading configuration from a file -- use
       '-c' option to specify a file; for configuration options see
       langouste.conf.example (located in dist\ directory)

 ****) Langouste is designed to handle multiple clients (on same machine) --
       running single instance is good enough



5.2. Upgrading Langouste

    0. Pick a time when FAH client is not sending or receiving data (shutting
       client down is not necessary)
    1. Terminate existing instance of Langouste with Control+C
    2. Start new instance of Langouste
    3. Copy new helper script (from dist\win32\ directory) to FAH client
       directory (console) or, if using systray client, to Folding@Home data
       files directory
    4. Remove old Langouste directory/binary (for safety)



5.3. How do I know it's working?

    This section is yet to be written. For now, see reference FAH client,
    Langouste and Langouste helper logs (captured with version 0.14.1)
    in dist\win32\reflogs\ (courtesy of DonMarkoni).



6. Rate limiting (upload capping) feature

  Langouste releases 0.15 and later come with a feature that enables user
  to limit upload rates.

  Capping uploads to as much as 90% of upstream bandwith makes heaven and
  earth difference with interactive sessions (ssh et al.) and regular "web
  browsing" too -- DNS queries and TCP ACKs require a bit of (ideally
  low-latency) upstream bandwidth.



6.1. Rate limiting with decoupling (1 Langouste per machine)

  How to? Just add -r <rate-in-bytes-per-second> parameter to you current
  command line; see following example (and terminal log):

    $ langouste3 -l 8880 -r 240000
    Thu Jun  6 00:40:59 2013 Langouste3 15.9 (compiled Thu Jun  6 00:40:52 MDT 2013 by folding@goldfinger)
    Thu Jun  6 00:40:59 2013 Langouste3 comes with ABSOLUTELY NO WARRANTY; for details
    Thu Jun  6 00:40:59 2013 see `COPYING.txt' file located in source directory
    Thu Jun  6 00:40:59 2013 Default Langouste helper temp directory: /tmp/langouste-kszysiu/
    Thu Jun  6 00:40:59 2013 Ratelimit: Output rate: 240000 bytes/s (234.37 kBps)
    Thu Jun  6 00:40:59 2013 Listening on 127.0.0.1:8880
    (...)
    Thu Jun  6 00:52:22 2013 (1) Ratelimit: sent 91590797 byte(s) in 381.824 seconds, 239877 Bps (234.25 kBps)


  IMPORTANT CAVEAT: multiple machines in the same network won't know about
                    others' existence;
                    two (or more) machines returning WUs simultaneously may
                    (and normally will) exceed limits imposed on any single
                    machine;
                    on the other hand, turnaround time of SMP and SMP bigadv
                    WUs is fairly long so probability of such "clash" isn't
                    really very high



7. Known issues and caveats

    I-1. Using Langouste results in local WU count not being updated; note
         that Stanford statistics are _not_ affected by this issue.

         Report: http://foldingforum.org/viewtopic.php?f=14&t=11615&start=30#p125534

         Comments: updating local WU count is tricky and possible
                   solutions are prone to variety of race-conditions;
                   I'm currently reluctant to resolving the issue
                   at the cost of reliability



8. Support

    Using foldingforum.org is recommended. Please post in this thread:

    http://foldingforum.org/viewtopic.php?f=14&t=11615



9. Credits

    Langouste was written and is maintained by Kris Rusocki <kszysiu@gmail.com>

    Special thanks go to:

	#area51 crew -- for ideas, test feedback and more
			(esp. firedfly for CMD scripting assistance)

        Punchy -- for a great deal of troubleshooting assistance, resolving
                  Langouste's issues on SLES 10 and excellent Windows port
                  alpha-test feedback
        
        pholcman -- for excellent feedback on rate limiting feature and
                    general troubleshooting assistance (esp. case with
                    Langouste residing on other-than-system volume)

        DonMarkoni -- for excellent Windows port alpha-test feedback
        metal03326 -- for excellent Windows port alpha-test feedback

        Blasphemous Cannibal -- for extraordinary amount of persistence
                                while troubleshooting "infinite loop" issue

        Hyperlife -- for help with IPv6 localhost name resolution issue
Change log (since first official release):
2013-11-25 -- New release (langouste3-15.17)
-- Linux: fixes a bug that could, under very specific circumstances
  cause multiple helpers to be launched at WU upload attempts


2013-11-15 -- New release (langouste3-15.16)
-- fixes a bug where oneunit status would not be properly reported after
  the client is killed, thanks to Rusty Bowling <bowlinra@hotmail.com>
  for the report


2013-10-31 -- New release (langouste3-15.15)
-- ensures that post-WU-upload timeout is set at 15 minutes, not 10


2013-10-23 -- New release (langouste3-15.14)
-- improves reliability of 'oneunit' feature
-- automatically turns 'oneunit' feature off after client shutdown
-- Linux: requires root to start/stop Langouste3 service


2013-10-22 -- New release (langouste3-15.13)
-- Linux: fixes a bug related to oneunit mode which could cause multiple
  helpers to be launched and impair oneunit mode;
  thanks to Rusty Bowling <bowlinra@hotmail.com> for report and
  troubleshooting help


2013-10-12 -- New release (langouste3-15.12)
-- features oneunit configuration option; it allows users to prevent
  client from downloading next WU without restarting the client (client
  gets terminated); feature integrates with bundled initscript
-- optimizes accesses to per-PID data
-- more elegantly handles negative numbers provided to enable/disable options
-- refactors/cleans up several code paths


2013-09-30 -- New release (langouste3-15.11)
-- underwent internal reorganization of config file parsing code
-- Linux: adds initial support for control interface (via Unix domain socket)
-- Linux: adds rudimentary control program (langouste3-control)
-- Linux: updates initscript with LSB helper functions
-- extends timestamps from int to time_t where appropriate


2013-08-30 -- New release (langouste3-15.10)
-- adds configuration file support: Langouste can now be configured by
  a configuration file (-c command-line option), see sample configuration
  file in dist directory for details
-- Linux: adds possibility of running Langouste as specific user (to facilitate
  starting Langouste at system startup -- -U command-line option)
-- Linux: includes pidfile support and rudimentary SysV initscript
  (needs to be installed manually)
-- adds upstream proxy capability (so Langouste can talk to the world
  via HTTP proxy if so desired -- -X command-line option)
-- reorganizes layout of usage information
-- Linux: simplifies code related to lazy signals feature
-- Makefile: installs initscript in /usr/share/langouste3 and sample
  configuration file in /etc/langouste3/
-- Makefile: improves 'uninstall' target


2013-06-08 -- New release (langouste3-15.9)
-- Drops leading 0 from version number given maturity of the project
-- Linux: introduces support of 64-bit i-node (socket) numbers;
  previous Langouste versions do not decouple uploads if client
  socket is assigned a number that exceeds 32 bits (rare occurence)
-- Linux: places helper's work directory in /dev/shm (to mitigate
  client's fsync bug)
-- avoids occasional spurious iterations of main loop (harmless issue)
-- increases activity timeout from 5 to 10 minutes
-- reorganizes portions of the code (for easier maintenance)
-- improves certain logging messages
-- adds an option that allows not returning any WUs (shall anyone
  want to capture a completed unit)
-- uses more intuitive value as 'max timeout'
-- Linux: simplifies signal handling code
-- Makefile: installs licensing information, documentation and the helper
  script to /usr/share/langouste3/
-- Makefile: removes log files on distclean
-- includes minor documentation update


2012-07-29 -- New release (langouste3-0.15.8.1)
-- resolves Windows build issue
-- makes Windows helper script work again (broken in 0.15.8)
-- includes minor spelling fix


2012-04-22 -- Internal release (langouste3-0.15.8)
-- includes all-new robust Makefile, which also allows system-wide
  installation (for convenience) on Linux
-- improves on the helper script; now it first tries to return most
  recent results (so that possible server issues with old WUs
  don't impact most recently completed WUs)
-- improves client-server timeout logic; over last year we've seen
  evidence of client and server timeout logic being poorly implemented;
  to cope with these issues, Langouste 0.15.8 implements following
  timeouts:
  - activity timeout (no traffic in either direction while downloading
   or uploading): 5 minutes
  - post-WU-upload timeout (server's response after completing the upload):
   15 minutes
  - connect timeout (carried over from past releases): 30 seconds
-- improves ratelimit behavior in case of name resolution delays, scheduling
  delays and system time changes (monotonic clock support is coming soon)
-- includes minor code cleanups


2011-04-25 -- New release (langouste3-0.15.7)
-- resolves two major Linux issues; upgrade strongly recommended
-- Linux: resolves issue that could cause Langouste to completely
  stop responding once helper script has started (WU return);
  such situation would require restart of Langouste
-- Linux: resolves issue that could prevent Langouste from correctly
  launching background client; such situation would result
  in delayed WU return
-- includes minor documentation update


2010-08-30 -- New release (langouste3-0.15.6)
-- includes two reliability bugfixes (Windows); upgrade is
  recommeneded
-- Windows: resolves an issue that could result in Langouste
  ceasing to operate and going into infinite loop under
  certain conditions (thanks to Blasphemous Cannibal for
  troubleshooting assistance)
-- Windows: plugs process handle leak
-- minor cosmetic improvements (compiler warnings, messages)
-- minor documentation tweaks


2010-08-03 -- New release (langouste3-0.15.5)
-- adds reliability improvements: upgrade is recommended
-- Langouste now implements own TCP connection timeout (30s) instead
  of relying on FAH client timeout (1h)
-- Linux: improves helper behaviour in a scenario when original client
  gets shut down when helper is running
-- Linux: improves behaviour with paths containing whitespace characters
-- Windows: adds support for Langouste residing on drive other system
  drive
-- non-zero verbosity levels now use epoch timestamps with microsecond
  resolution
-- minor code optimizations and cosmetic fixes
-- adds .txt extension to README, CHANGES and COPYING files (for Windows
  users)
-- ACLs now accept CIDR masks
-- ACLs and network mode disabled until release-ready
-- NEW: introduces upload capping feature (see section 6 of README.txt
  for more information)


2010-07-19 -- New release (langouste3-0.14.4)
-- Maintenance release
-- Linux: improves robustness in corner-case path and/or client binary names;
  updated helper script _must_ be used
-- Windows: fixes (cosmetic) issue that could result in Langouste producing
  Winsock errors at shutdown
-- adds missing parameter to Usage/Help screen
-- misc documentation updates


2010-07-18 -- New release (langouste3-0.14.3)
-- Linux: maintenance release; upgrade if you're experiencing issues
  related to item below
-- resolves issue that could result in Langouste not being able download
  data
-- cleanup: closing all fds after fork has been replaced with FD_CLOEXEC
-- b&w: RX/TX byte counters have been added
-- some messages are now much more informative
-- minor documentation updates have been committed
-- Langouste has been reworked to accommodate Windows porting (porting.c,
  core*.c)
-- Langouste is now available for Microsoft Windows platforms!; see README
  for details


2010-01-23 -- New release (langouste3-0.12.4)
-- maintenance release; upgrade if you're experiencing issues related
  to items below
-- adds logic preventing langouste from handling clients run by other
  users
-- adds ownership check of /tmp/fah directory
-- changes langouste TMPDIR to /tmp/langouste-$USER
-- fixes a bug that caused HTTP requests without Content-Length header
  be interpreted as a requests with non-zero Content-Length (bug affected
  standalone proxy mode; no interference with FAH)
-- cosmetic code improvements
-- minor Makefile tweaks
-- minor documentation updates


2010-01-01 -- New release (langouste3-0.12.2)
-- maintenance release; upgrade if you're experiencing issues related
 to items below
-- adds support for SLES 10 (SP2); it uses a different format of socket
 entries in /proc/pid/fd (thanks go to bingo-dog for troubleshooting and
 initial fix)
-- resolves a bug in socket lookup code that could result (under
 certain circumstances) in langouste not being able to find FAH
 client's PID; this bug has not been seen in the wild
 (thanks go to bingo-dog for identification and initial fix)
-- [advanced users] lazy signals finally work as expected
-- corrects a typo in an error message (found by bingo-dog)
-- tunes up the Makefile
-- adds clarifications to README (langouste needs to be run as the
 same user as FAH client(s))

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Mon Sep 28, 2009 9:24 pm
by Hyperlife
I finally got around to trying this out, and it works like a charm. Thanks, tear!

The only downside I can see is that the completed WU count is not updated in the original client.cfg, but that's a minor complaint.

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Mon Sep 28, 2009 11:46 pm
by Anglik666
Works for me as well, thanx tear

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Tue Sep 29, 2009 2:01 am
by k1wi
planning to give this a go asap :)
(damn u ADSL!)
Slightly hesitant, but it doesn't sound too taxing :)

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Tue Sep 29, 2009 2:45 am
by tear
Hyperlife wrote:I finally got around to trying this out, and it works like a charm. Thanks, tear!

The only downside I can see is that the completed WU count is not updated in the original client.cfg, but that's a minor complaint.
Hey Hyperlife, guys,

Thanks for the feedback. Appreciate it.

Yes, that's a side effect of having the "other" client send the results. It can be cured by copying client.cfg back to
original directory (under different name) and doing "mv" (after returning results, that is). I'll try incorporating this
in next release.
On the other hand; there's a risk of langouste vs. user-changing-client's-configuration race -- oh well....

On a side note (for anyone who's interested) -- I've started integration of rate-limiting code. Scheduled for release in a week or so.


tear

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Tue Oct 20, 2009 5:06 pm
by p2501
Downloaded, will try it soon. Thank you for taking your time with this tool, it get's even more important with bigadv. Are there any updates btw?

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Tue Oct 20, 2009 5:16 pm
by tear
Hey p2501,


I have a WIP version with Hyperlife's suggestion and upload capping feature (no bugfixes).

I still need to hunt down one bug (related to upload capping) but due to a trade show coming
up at work I'll get back to it no earlier than late October.

Thanks for interest and feel free to share your thoughts!


tear

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Thu Oct 22, 2009 4:33 pm
by Jagaer
Works great, thanks!

Hope your code gets incorporated into the baseline (I mean that as a compliment)

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Sun Nov 01, 2009 10:03 am
by p2501
Found the time to try it, now there's only 5 minutes time between finishing of one bigadv and start of another, instead of 30-40 minutes (or even more on ext4). Thanks alot for this, tear! Btw, I'm also running the client on tmpfs because of these ext4 troubles, do you have (or know where to get) a handy backup script in case of reboots or whatever?

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Sun Nov 01, 2009 2:04 pm
by susato
Reported to the developers, thanks tear.

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Mon Nov 02, 2009 3:37 am
by tear
p2501 wrote:Thanks alot for this, tear! Btw, I'm also running the client on tmpfs because of these ext4 troubles, do you have (or know where to get) a handy backup script in case of reboots or whatever?
My pleasure!

Script, yes... I use one that makes a .tar.gz archive (intervals specified by cron) but I have no plans to officially release it (read: support it).
I can make it available to you if you like.

Anachron's approach a little bit different -- he keeps two past copies of client directory (no archiving).
He also came up with a "startup" script that makes whole solution seamless (really cool thing -- user launches client from hard drive, from then on everything happens automagically).

The discussion we had (and Anachron's backup script) is located there.
It seems he didn't post his "startup" script -- you'd need to check with him I suppose.


tear

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Mon Nov 16, 2009 9:49 pm
by DonMarkoni
Hi!
Could anyone post links to tools needed for building langouste and if anyone have time to write just a little more detailed installation.
I understand the way of work and all settings, but I really don't get it how to build it from this:

Code: Select all

3. Bulding langouste

    0. Make sure gcc, make and appropriate development packages are installed
    1. Run "make dep"
    2. Run "make"

  All that should create "langouste3" binary
Sorry, I'm Linux noob. :oops:
Help will be appreciated very much.

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Mon Nov 16, 2009 10:16 pm
by tear
A) What specifically would you like to know? (ask "How do I ... ?")
B) How familiar are you with terminal/shell?

You need to download the archive and extract it (either via some UI tool or command-line).
Then, in shell (terminal) you need to go to the directory you've just extracted and just type
these commands:

Code: Select all

make dep
make
then you should be able to see langouste3 file; type "ls -l" and check if it's there.

Again, feel free to ask specific questions; they are way better than "I need more details".


tear

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Tue Nov 17, 2009 4:41 pm
by DonMarkoni
Thanks for quick reply.
I did dl langouste, extracted it, but I don't have development tools, as I should be having according to instructions:
Make sure gcc, make and appropriate development packages are installed
Where do I get them?
Thanks.
BTW, why langouste doesn't come precompiled?

Re: Langouste -- WU upload/download de-coupler [Linux only]

Posted: Tue Nov 17, 2009 5:52 pm
by tear
Every Linux distribution has a software/package management system (you use it
to install new software, remove unused software and so on). I don't know how Ubuntu's
tool called but you should able to find (point-and-click) it. Then it's just matter of
locating/searching for "gcc", "make" and installing them.

As Ubuntu's based on Debian you might also try (as an alternative to previous paragraph)
running these commands in the terminal:

Code: Select all

apt-get install gcc
apt-get install make
I haven't used Debian in a long, long time so I might be slightly off here.
I'm sure other folks could be of more help. Guys?

As to why it doesn't come precompiled -- to me it's just not... kosher. Many things
affect binary compatibility and certain risks exist when providing precompiled binaries
(vide: Folding@home clients).

If there's enough interest I might provide binaries.


tear