Subject: Re: mysqld - innodb, pthread_mutex_unlock
To: Juan RP <firstname.lastname@example.org>
From: rudolf <email@example.com>
Date: 01/30/2006 13:04:05
Juan RP wrote:
> On Mon, 30 Jan 2006 03:47:18 +0100
> rudolf <firstname.lastname@example.org> wrote:
>>I have some problems with mysqld 5.0.18 (pkgsrc-2005Q4 with current
>>databases/mysql5-client and databases/mysql5-server) on an amd64 (one
>>Xeon) machine. The daemon refuses to start if it's configured to run
>>innodb engine and there are the innodb files present in mysql data
>>directory (it starts correctly only when it initially creates the
>>innodb files, subsequent restart again fails). It is possible to
>>start it correctly with "--skip-innodb", but once I also got:
>>mysqld: Error detected by libpthread: Invalid mutex.
>>Detected by file
>>line 334, function "pthread_mutex_unlock".
>>See pthread(3) for information.
>>Do you have any idea what could be wrong? (u)limits are stretched to
>>maximum for the process so this shouldn't be the problem. It's NetBSD
>>3.0, amd64, 2G RAM, slightly modified GENERIC kernel.
> For unknown reasons mysql is trying to unlock an invalid mutex,
> the pthread library detects it and refuses to start.
> As a workaround you can use the environment
> variable "PTHREAD_DIAGASSERT=AE" to ignore and do not log the errors
> to stdout (see pthread(3)).
> Can you please tell me how to get this error? I'll try to fix mysql
Unfortunately I can't reproduce it. It happened only once, probably
during database shutdown (if the log output is properly ordered). The
full (from start to end) log context is:
060430 03:04:29 Starting mysqld daemon with databases from /var/mysql
060430 03:04:29 mysqld started
060130 3:04:29 [Note] /usr/pkg/libexec/mysqld: ready for connections.
Version: '5.0.18' socket: '/var/run/mysql/mysql.sock' port: 3306
060130 3:04:43 [Note] /usr/pkg/libexec/mysqld: Normal shutdown
060130 3:04:44 [Note] /usr/pkg/libexec/mysqld: Shutdown complete
mysqld: Error detected by libpthread: Invalid mutex.
Detected by file
line 334, function "pthread_mutex_unlock".
See pthread(3) for information.
060430 03:04:44 STOPPING server from pid file /var/mysql/server.pid
060430 03:04:44 mysqld ended
This was without the innodb engine, otherwise the creation of the innodb
files is in the log too. And with the innodb engine and files in the
mysql data directory it doesn't start at all, as I already wrote. I'll
keep trying to find out what's wrong with the innodb engine.