| 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.
