List Info

Thread: mysqld - innodb, pthread_mutex_unlock




mysqld - innodb, pthread_mutex_unlock
user name
2006-01-30 02:47:18
Hi,

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 
"/home/builds/ab/netbsd-3-0-RELEASE/src/lib/libpthread/
pthread_mutex.c", 
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.

Thanks,

r.
mysqld - innodb, pthread_mutex_unlock
user name
2006-01-30 06:04:24
On Mon, 30 Jan 2006 03:47:18 +0100
rudolf <netbsdeq.cz> wrote:

> Hi,
> 
> 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 
>
"/home/builds/ab/netbsd-3-0-RELEASE/src/lib/libpthread/
pthread_mutex.c", 
> 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
properly.

mysqld - innodb, pthread_mutex_unlock
user name
2006-01-30 12:04:05
Juan RP wrote:
> On Mon, 30 Jan 2006 03:47:18 +0100
> rudolf <netbsdeq.cz> wrote:
> 
> 
>>Hi,
>>
>>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 
>>"/home/builds/ab/netbsd-3-0-RELEASE/src/lib/lib
pthread/pthread_mutex.c", 
>>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
> properly.
> 

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 
Source distribution
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 
"/home/builds/ab/netbsd-3-0-RELEASE/src/lib/libpthread/
pthread_mutex.c", 
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.

Regards,

r.
mysqld - innodb, pthread_mutex_unlock
user name
2006-01-30 17:05:27
rudolf wrote:
> Juan RP wrote:
> 
>> On Mon, 30 Jan 2006 03:47:18 +0100
>> rudolf <netbsdeq.cz> wrote:
>>
>>
>>> Hi,
>>>
>>> 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 
>>>
"/home/builds/ab/netbsd-3-0-RELEASE/src/lib/libpthread/
pthread_mutex.c", 
>>> 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.

[...]

I made two ktruss outputs:

# ktruss -i /usr/pkg/bin/mysqld_safe --user=mysql
--datadir=/var/mysql 
--pid-file=/var/mysql/`/bin/hostname`.pid >>
/tmp/file.ktruss

http://ttt.eq.cz/my
sqld_ok.ktruss
at the beginning there are no /var/mysql/ib* files - mysqld
starts 
without problems, creating the innodb files at startup

http://ttt.eq.c
z/mysqld_sigill.ktruss
the /var/mysql/ib* files are already created, mysqld gets
sigill when it 
pread's ehmm ... something 

Thoughts?

r.
[1-4]

about | contact  Other archives ( Real Estate discussion Medical topics )