Troubleshooting
Content:
MySQL suggested settings
max_allowed_packet |
This should be at least 500M if possible (the units are bytes). |
For all TCW software, the mySQL variable max_allowed_packet must be a reasonable
size. To check the value, either:
./runSingle -v
or, start mysql and type:
show variables like "max_allowed_packet";
To change this variable, start mysql and type:
set global max_allowed_packet=1073741824;
Testing on:
MacOS Catalina with MySQL v8.0.17 |
the above variable seems to be the only important one. |
Linux x86.64 (Centos 7) with MariaDB v10.4.12 |
two more variable are important for assembly, as discussed in the next section. |
MariaDB
Two MySQL settings are especially important for assembly performance (and generally for InnoDB table
performance).
innodb_buffer_pool_size |
The default is too low for most purposes. You should set this to around 1Gb if possible (note that
the units are bytes). |
innodb_flush_log_at_trx_commit |
The default setting is 1, which results in very slow uploading of data.
|
To check the values, start mysql and type:
show variables like "innodb_buffer_pool_size";
show variables like "innodb_flush_log_at_trx_commit";
To change the variables, then type:
set global innodb_buffer_pool_size=1073741824;
set global innodb_flush_log_at_trx_commit=0;
Alternatively, You can set these in the MySQL configuration file my.cnf and restart MySQL.
Note that my.cnf is typically located at /etc/my.cnf, on both Linux and Mac.
If TCW cannot connect to the database, generally the problem is the access privileges of the DB_user
in the HOSTS.cfg (firewalls are another common problem - talk to your system administrator).
MySQL privileges are very specific and must exactly match the hostname in HOSTS.cfg.
For example, if DB_host = localhost, DB_user=user, then privileges must be granted to 'user@localhost'.
Sometimes you may need equivalent variants, e.g. if localhost has IP 74.125.239.17
and domain my.domain.org, you may also need 'user@74.125.239.17' and 'user@my.domain.org'.
Privilege problems are easiest to debug by running the 'mysql' command line client.
Run:
mysql -u <DB_user> -p -h <DB_host>
and enter the DB_password when prompted. If this fails, then the user/password privileges have
to be corrected. If it succeeds, then try to add and drop a test database:
>create database TCW_PRIVTEST;
>drop database TCW_PRIVTEST;
If this fails you can still run TCW, but you will need an administrator to create
the TCW database since runSingleTCW cannot do it.
Java applications must specify their memory usage in advance, so it is very
important to set it high enough.
The setting is adjusted by editing the appropriate launch script,
by increasing the "-Xmx" parameter value on the java command line.
If you run out during initial project loading, edit the execLoadLib script to increase
the numeric value of "-Xmx8192m", and load using ./execLoadLib <project>.
If you run out during instantiation/assembly, edit the execAssm script to increase
the numeric value of "-Xmx8192m" , and run the instantiation using ./execAssm <project>.
If you run out of memory while annotating, edit the execAnno script to increase
the numeric value of "-Xmx8192m", and add your annotation using ./execAnno <project>.
If you run out of memory with
runDE, viewSingleTCW, runMultiTCW, or viewMultiTCW,
edit the respective script to increase
the numeric value of "-Xmx8192m" and re-run.
These program are in the TCW subdirectories /Ext/linux and /Ext/mac.
Not executable
If on startup, you get a message like:
***Error: file is not executable: ext/mac/mafft/mafft.bat
From the /Ext directory, chmod -R 775 mafft to give all necessary
executables and scripts in the directory permission to execute.
NOTE: MacOS 10.15 (Catalina) does not allow downloaded programs to execute. Running through TCW,
you will either get popup that states "xxx cannot be opened because developer cannot be verified", or
the program will just fail. See MacOS.
External program fails
Generally, the command is written to the terminal by TCW. Copy and paste it at the command line. By executing it like
this, you will see all the external programs messages, which generally elucidates the
problem.
If this does not work, try executing it in the /Ext directory,
which may indicate the problem.
It may be necessary to compile the program for your machine and replace the existing
executable, in which case, see Install Replace Executable.
Program | Error file | Log file
|
---|
RunSingleTCW
| Build Database | sTCW.error1.log | projects/<name>/logs/load.log
| Instantiate | sTCW.error1.log | projects/<name>/logs/inst.log
| Annotate | sTCW.error.log | projects/<name>/logs/anno.log
| Everything else
| runAS | sTCW.error.log | projects/DBfasta/logs
| runDE | sTCW.error.log | -
| viewSingleTCW | sTCW.error.log | -
| runMultiTCW | mTCW.error.log | projcmp/<name>/logs
| viewMultiTCW | sTCW.error.log | -
|
The error log file may indicate the problem, otherwise,
email it to tcw at agcol.arizona.edu.
|