Bug #2360 | Seg Fault during create_temp_file when data files accessed over NFS | ||
---|---|---|---|
Submitted: | 12 Jan 2004 11:07 | Modified: | 9 Feb 2004 7:34 |
Reporter: | Kevin Weston | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 3.23.56 | OS: | Linux (Red Hat 8.0) |
Assigned to: | CPU Architecture: | Any |
[12 Jan 2004 11:07]
Kevin Weston
[12 Jan 2004 11:08]
Kevin Weston
Stack Trace
Attachment: stack_trace.txt (text/plain), 996 bytes.
[17 Jan 2004 12:13]
MySQL Verification Team
We strongly discourage using NFS for datadir or tmpdir. Small excerpt from the manual. If done, it should be used with external locking enabled. Usually NFS file locking is handled by the `lockd' daemon, but at the moment there is no platform that will perform locking 100% reliably in every situation. If done, it should be used with external locking enabled.
[17 Jan 2004 13:26]
Kevin Weston
Problem was not actually fixed by moving files to local disk. However, problem is no longer encountered after applying the /etc/my.cnf setting recommended for large servers w/ 1-2GB RAM.
[17 Jan 2004 13:56]
Sergei Golubchik
could you show the difference between old my.cnf and a new one ?
[20 Jan 2004 8:19]
Kevin Weston
Old my.cnf was default for RedHat: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid New my.cnf: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-innodb # much of this is from my-huge.cnf skip-locking set-variable = key_buffer=384M set-variable = max_allowed_packet=1M set-variable = table_cache=512 set-variable = sort_buffer=2M set-variable = record_buffer=2M set-variable = thread_cache=8 # Try number of CPU's*2 for thread_concurrency set-variable = thread_concurrency=4 set-variable = myisam_sort_buffer_size=64M log-bin server-id = 1 [mysqldump] quick set-variable = max_allowed_packet=16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL safe-updates [mysql.server] user=mysql basedir=/var/lib tmpdir=/database/scratch [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysqld_safe] open-files-limit=8192 [isamchk] set-variable = key_buffer=256M set-variable = sort_buffer=256M set-variable = read_buffer=2M set-variable = write_buffer=2M [myisamchk] set-variable = key_buffer=256M set-variable = sort_buffer=256M set-variable = read_buffer=2M set-variable = write_buffer=2M [mysqlhotcopy] interactive-timeout
[9 Feb 2004 7:34]
Sergei Golubchik
For now I will assume the reason was in "skip-locking" option. Our manual suggests to have external locking always OFF on Linux.