RE: MySQL malloc error on Solaris

2006-03-23 Thread Ubaidul Khan


Following is the configuraton of mysqld:

- Excerpt from my.cnf -
   # The MySQL server
   [mysqld]
   user= mysql
   port= 4406
   socket  = /tmp/mysql.sock
   #socket = /tmp/mysql_4.0.13.sock
   set-variable= max_connections=150
   skip-locking
   key_buffer = 16M
   max_allowed_packet = 1M
   table_cache = 64
   sort_buffer_size = 512K
   net_buffer_length = 8K
   myisam_sort_buffer_size = 8M
   local-infile = 0
   # Clients authenticate to server must do so by the IP only
   skip-name-resolve
   # Display only the databases the authenticated user has privileges to
   safe-show-database

   # Don't listen on a TCP/IP port at all. This can be a security 
enhancement,

   # if all processes that need to connect to mysqld run on the same host.
   # All interaction with mysqld must be made via Unix sockets or named 
pipes.

   # Note that using this option without enabling named pipes on Windows
   # (via the enable-named-pipe option) will render mysqld useless!
   #
   #skip-networking

   # Replication Master Server (default)
   # binary logging is required for replication
   #log-bin

   # required unique id between 1 and 2^32 - 1
   # defaults to 1 if master-host is not set
   # but will not function as a master if omitted
   server-id   = 1

   # Replication Slave (comment out master section to use this)
   #
   # To configure this host as a replication slave, you can choose between
   # two methods :
   #
   # 1) Use the CHANGE MASTER TO command (fully described in our manual) -
   #the syntax is:
   #
   #CHANGE MASTER TO MASTER_HOST=host, MASTER_PORT=port,
   #MASTER_USER=user, MASTER_PASSWORD=password ;
   #
   #where you replace host, user, password by quoted strings and
   #port by the master's port number (3306 by default).
   #
   #Example:
   #
   #CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
   #MASTER_USER='joe', MASTER_PASSWORD='secret';
   #
   # OR
   #
   # 2) Set the variables below. However, in case you choose this method, 
then
   #start replication for the first time (even unsuccessfully, for 
example
   #if you mistyped the password in master-password and the slave fails 
to

   #connect), the slave will create a master.info file, and any later
   #change in this file to the variables' values below will be ignored 
and
   #overridden by the content of the master.info file, unless you 
shutdown

   #the slave server, delete master.info and restart the slaver server.
   #For that reason, you may want to leave the lines below untouched
   #(commented) and instead use CHANGE MASTER TO (see above)
   #
   # required unique id between 2 and 2^32 - 1
   # (and different from the master)
   # defaults to 2 if master-host is set
   # but will not function as a slave if omitted
   #server-id   = 2
   #
   # The replication master for this slave - required
   #master-host =   hostname
   #
   # The username the slave will use for authentication when connecting
   # to the master - required
   #master-user =   username
   #
   # The password the slave will authenticate with when connecting to
   # the master - required
   #master-password =   password
   #
   # The port the master is listening on.
   # optional - defaults to 3306
   #master-port =  port
   #
   # binary logging - not required for slaves, but recommended
   log-bin = /usr/local/mysql/var/myupdate-bin.log

   # Point the following paths to different dedicated disks
   #tmpdir = /tmp/
   #log-update = /usr/local/mysql/var/myupdate.log
   # Logs connections and queries to file. Use for troubleshooting, disable 
afterward

   s
   #log= /usr/local/mysql/var/myquery.log

   # Uncomment the following if you are using BDB tables
   #bdb_cache_size = 4M
   #bdb_max_lock = 1

   # Uncomment the following if you are using InnoDB tables
   #innodb_data_home_dir = /opt/mysql_4.0.13/var/
   #innodb_data_file_path = ibdata1:10M:autoextend
   #innodb_log_group_home_dir = /opt/mysql_4.0.13/var/
   #innodb_log_arch_dir = /opt/mysql_4.0.13/var/
   # You can set .._buffer_pool_size up to 50 - 80 %
   # of RAM but beware of setting memory usage too high
   #innodb_buffer_pool_size = 16M
   #innodb_additional_mem_pool_size = 2M
   # Set .._log_file_size to 25 % of buffer pool size
   #innodb_log_file_size = 5M
   #innodb_log_buffer_size = 8M
   #innodb_flush_log_at_trx_commit = 1
   #innodb_lock_wait_timeout = 50

   [mysqldump]
   quick
   max_allowed_packet = 16M

   [mysql]
   no-auto-rehash
   # Remove the next comment character if you are not familiar with SQL
   #safe-updates

   [isamchk]
   key_buffer = 20M
   sort_buffer_size = 20M
   read_buffer = 2M
   write_buffer = 2M

   [myisamchk]
   key_buffer = 20M
   sort_buffer_size = 20M
   read_buffer = 2M
   write_buffer = 2M

   [mysqlhotcopy]
   

Re: MySQL malloc error on Solaris

2006-03-23 Thread Heikki Tuuri

Ubaidul,

ok, there is nothing in my.cnf that can explain why memory runs out.

What kind of query are you running when the memory runs out? Does 'top' show 
that the mysqld process size grows uncontrollably?


If you are using the C client interface, do you use 'mysql_store_result()' 
or 'mysql_use_result()'? For huge resultsets, one of them uses a huge amount 
of memory in the server.


Best regards,

Heikki

Oracle Corp./Innobase Oy
InnoDB - transactions, row level locking, and foreign keys for MySQL

InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM 
tables

http://www.innodb.com/order.php

- Original Message - 
From: Ubaidul Khan [EMAIL PROTECTED]

Newsgroups: mailing.database.myodbc
Sent: Thursday, March 23, 2006 11:06 PM
Subject: RE: MySQL malloc error on Solaris




Following is the configuraton of mysqld:

- Excerpt from my.cnf -
   # The MySQL server
   [mysqld]
   user= mysql
   port= 4406
   socket  = /tmp/mysql.sock
   #socket = /tmp/mysql_4.0.13.sock
   set-variable= max_connections=150
   skip-locking
   key_buffer = 16M
   max_allowed_packet = 1M
   table_cache = 64
   sort_buffer_size = 512K
   net_buffer_length = 8K
   myisam_sort_buffer_size = 8M
   local-infile = 0
   # Clients authenticate to server must do so by the IP only
   skip-name-resolve
   # Display only the databases the authenticated user has privileges to
   safe-show-database

   # Don't listen on a TCP/IP port at all. This can be a security
enhancement,
   # if all processes that need to connect to mysqld run on the same host.
   # All interaction with mysqld must be made via Unix sockets or named
pipes.
   # Note that using this option without enabling named pipes on Windows
   # (via the enable-named-pipe option) will render mysqld useless!
   #
   #skip-networking

   # Replication Master Server (default)
   # binary logging is required for replication
   #log-bin

   # required unique id between 1 and 2^32 - 1
   # defaults to 1 if master-host is not set
   # but will not function as a master if omitted
   server-id   = 1

   # Replication Slave (comment out master section to use this)
   #
   # To configure this host as a replication slave, you can choose between
   # two methods :
   #
   # 1) Use the CHANGE MASTER TO command (fully described in our manual) -
   #the syntax is:
   #
   #CHANGE MASTER TO MASTER_HOST=host, MASTER_PORT=port,
   #MASTER_USER=user, MASTER_PASSWORD=password ;
   #
   #where you replace host, user, password by quoted strings and
   #port by the master's port number (3306 by default).
   #
   #Example:
   #
   #CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
   #MASTER_USER='joe', MASTER_PASSWORD='secret';
   #
   # OR
   #
   # 2) Set the variables below. However, in case you choose this method,
then
   #start replication for the first time (even unsuccessfully, for
example
   #if you mistyped the password in master-password and the slave 
fails

to
   #connect), the slave will create a master.info file, and any later
   #change in this file to the variables' values below will be ignored
and
   #overridden by the content of the master.info file, unless you
shutdown
   #the slave server, delete master.info and restart the slaver 
server.

   #For that reason, you may want to leave the lines below untouched
   #(commented) and instead use CHANGE MASTER TO (see above)
   #
   # required unique id between 2 and 2^32 - 1
   # (and different from the master)
   # defaults to 2 if master-host is set
   # but will not function as a slave if omitted
   #server-id   = 2
   #
   # The replication master for this slave - required
   #master-host =   hostname
   #
   # The username the slave will use for authentication when connecting
   # to the master - required
   #master-user =   username
   #
   # The password the slave will authenticate with when connecting to
   # the master - required
   #master-password =   password
   #
   # The port the master is listening on.
   # optional - defaults to 3306
   #master-port =  port
   #
   # binary logging - not required for slaves, but recommended
   log-bin = /usr/local/mysql/var/myupdate-bin.log

   # Point the following paths to different dedicated disks
   #tmpdir = /tmp/
   #log-update = /usr/local/mysql/var/myupdate.log
   # Logs connections and queries to file. Use for troubleshooting, 
disable

afterward
   s
   #log= /usr/local/mysql/var/myquery.log

   # Uncomment the following if you are using BDB tables
   #bdb_cache_size = 4M
   #bdb_max_lock = 1

   # Uncomment the following if you are using InnoDB tables
   #innodb_data_home_dir = /opt/mysql_4.0.13/var/
   #innodb_data_file_path = ibdata1:10M:autoextend
   #innodb_log_group_home_dir = /opt/mysql_4.0.13/var/
   #innodb_log_arch_dir

Re: MySQL malloc error on Solaris

2006-03-20 Thread Heikki Tuuri

Ubaidul,

- Original Message - 
From: Ubaidul Khan [EMAIL PROTECTED]

Newsgroups: mailing.database.myodbc
Sent: Monday, March 20, 2006 8:31 PM
Subject: MySQL malloc error on Solaris



Hello,

We are running MySQL 4.0.13 on Solaris 8 UltrSPARC with 2048 MB of RAM.
This machine has plenty of swap space and has worked fine for over a year
now.  Out of the blue, it stopped working yesterday and after looking
through the error logs, following is what I found:

- Error Message -
   key_buffer_size=16777216
   read_buffer_size=131072
   Fatal signal 11 while backtracing
   060319 16:19:46  mysqld restarted
   Warning: Ignoring user change to 'mysql' because the user was set to
'mysql' earlier on the command
   line
   InnoDB: Fatal error: cannot allocate 48 bytes of
   InnoDB: memory with malloc! Total allocated memory
   InnoDB: by InnoDB 3879876 bytes. Operating system errno: 11
   InnoDB: Cannot continue operation!
   InnoDB: Check if you should increase the swap file or
   InnoDB: ulimits of your operating system.
   InnoDB: On FreeBSD check you have compiled the OS with
   InnoDB: a big enough maximum process size.
   InnoDB: We now intentionally generate a seg fault so that
   InnoDB: on Linux we get a stack trace.
   mysqld got signal 11;
   This could be because you hit a bug. It is also possible that this
binary
   or one of the libraries it was linked against is corrupt, improperly
built,
   or misconfigured. This error can also be caused by malfunctioning
hardware.
   We will try our best to scrape up some info that will hopefully help
diagnose
   the problem, but since we have already crashed, something is definitely
wrong
   and this may fail.

   key_buffer_size=16777216
   read_buffer_size=131072
   060319 16:19:47  mysqld ended
- End of Error Message -

Would increasing shared memory max, make  a difference?


what is your my.cnf like?

InnoDB has only allocated 4 MB of memory, so InnoDB can hardly be the 
culprit.


Do you run a query that uses huge amounts of memory?


Thanks


Best regards,

Heikki

Oracle Corp./Innobase Oy
InnoDB - transactions, row level locking, and foreign keys for MySQL

InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM 
tables

http://www.innodb.com/order.php


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]