Changes between Version 1 and Version 2 of ServerDebug


Ignore:
Timestamp:
Apr 24, 2007, 8:40:18 PM (17 years ago)
Author:
Nicolas
Comment:

Required manual changes to automatic conversion.

Legend:

Unmodified
Added
Removed
Modified
  • ServerDebug

    v1 v2  
    55
    66== Log files ==
    7  Most error conditions are reported in the log files. Make sure you know where these are. If you're interested in the history of a particular WU or result, grep for WU#12345 or RESULT#12345 (12345 represents the ID) in the log files. The html/ops pages also provide an interface for this.
     7
     8Most error conditions are reported in the log files. Make sure you know where these are. If you're interested in the history of a particular WU or result, grep for WU!#12345 or RESULT!#12345 (12345 represents the ID) in the log files. The html/ops pages also provide an interface for this.
     9
    810== Database query tracing ==
    9  If you uncomment the symbol SHOW_QUERIES in db/db_base.C, and recompile everything, all database queries will be written to stderr (for daemons, this goes to log files; for command-line apps it's written to your terminal). This is verbose but extremely useful for tracking down database-level problems.
     11
     12If you uncomment the symbol SHOW_QUERIES in db/db_base.C, and recompile everything, all database queries will be written to stderr (for daemons, this goes to log files; for command-line apps it's written to your terminal). This is verbose but extremely useful for tracking down database-level problems.
    1013== Getting core dumps from the scheduler ==
    11  In sched/main.C put:
    1214
     15In sched/main.C put:
    1316
    1417{{{
    1518#define DUMP_CORE_ON_SEGV 1
    1619}}}
    17  and recompile.
     20and recompile.
     21
    1822== Running the scheduler under a debugger ==
    19  The scheduler is a CGI program. It reads from stdin and writes to stdout, so you can also run it with a command-line debugger like gdb:
     23
     24The scheduler is a CGI program. It reads from stdin and writes to stdout, so you can also run it with a command-line debugger like gdb:
    2025 * Copy the "scheduler_request_X.xml" file from a client to the    machine running the scheduler.  (X = your project URL)
    2126 * Run the scheduler under the debugger, giving it this file as stdin,    i.e.:
    2227{{{
    23    gdb cgi
    24    (set a breakpoint)
    25    r < scheduler_request_X.xml
     28gdb cgi
     29(set a breakpoint)
     30r < scheduler_request_X.xml
    2631}}}
    2732 * You may have to doctor the database as follows:
    2833{{{
    29    update host set rpc_seqno=0, rpc_time=0 where hostid=N
    30  }}}
    31     to keep the scheduler from rejecting the request.
     34update host set rpc_seqno=0, rpc_time=0 where hostid=N
     35}}}
     36 to keep the scheduler from rejecting the request.
    3237
    33  This is useful for figuring out why your project is generating 'no work available' messages.  As an alternative to this, edit handle_request.C, and put a call to debug_sched(sreq, sreply, "../debug_sched") just before sreply.write(fout). Then, after recompiling, touch a file called 'debug_sched' in the project root directory. This will cause transcripts of all subsequent scheduler requests and replies to be written to the cgi-bin/ directory with separate small files for each request.  The file names are sched_request_H_R where H=hostid and R=rpc sequence number. This can be turned off by deleting the 'debug_sched' file.
     38This is useful for figuring out why your project is generating 'no work available' messages.  As an alternative to this, edit handle_request.C, and put a call to debug_sched(sreq, sreply, "../debug_sched") just before sreply.write(fout). Then, after recompiling, touch a file called 'debug_sched' in the project root directory. This will cause transcripts of all subsequent scheduler requests and replies to be written to the cgi-bin/ directory with separate small files for each request.  The file names are sched_request_H_R where H=hostid and R=rpc sequence number. This can be turned off by deleting the 'debug_sched' file.
     39
    3440== MySQL interfaces ==
    35  You should become familiar with MySQL tools such as
     41
     42You should become familiar with MySQL tools such as
    3643 * mytop: like 'top' for MySQL
    3744 * the mysql interpreter ('mysql') and in particular the 'show processlist;' query.