mysql:11419
From: yukie nakamura <yukie nakamura <yukie@xxxxxxxxxx>>
Date: Mon, 23 May 2005 14:46:36 +0900
Subject: [mysql 11419] ファンクション実行できません。
先月からmysqlを使いはじめた、中村と申します。 データベースはoracle、sybase等の使用経験が数年あります。 Red Hat Linux 8に5.0.4-betaをインストールして、プロシージャ、ファンクショ ンの機能を試そうとしているのですが、 実行時、削除時にエラーが発生して困っています。 私の行った手順は 1、ファンクション作成 2、実行(ERROR 2013発生) 3、ファンクションステイタスを表示 です。 ファンクション自体は作成されているようです。 errファイルをみると、bugやmisconfiguredの記述があるのですが、バグやコン フィギュアのミスが原因なのでしょうか。 検索エンジン、過去ログでも調べてみましたが、まだ新しい機能だからなのか、 関連する情報は見つかりませんでした。 また、mysqlのフォーラムにも投稿してみましたが、質問の仕方が不十分だった のか回答はありませんでした。 http://forums.mysql.com/list.php?98 以下に実行内容、mysqlbug の出力内容、my.cnf の内容 、err ファイルの出力 も添付します。 なにか対処法がありましたらおしえてください。 よろしくお願いいたします。 <実行内容 > mysql> use test Database changed mysql> delimiter // mysql> CREATE FUNCTION hello22 (s CHAR(20)) RETURNS CHAR(50) -> RETURN CONCAT('Hello, ',s,'!'); -> // Query OK, 0 rows affected (0.00 sec) mysql> delimiter ; mysql> SELECT hello22('world'); ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> mysql> SHOW FUNCTION STATUS ; +------+------------+----------+----------------+---------------------+---------------------+---------------+---------+ | Db | Name | Type | Definer | Modified | Created | Security_type | Comment | +------+------------+----------+----------------+---------------------+---------------------+---------------+---------+ | test | domain | FUNCTION | root@localhost | 2005-05-19 13:44:23 | 2005-05-19 13:44:23 | DEFINER | | | test | hello | FUNCTION | root@localhost | 2005-05-16 14:47:35 | 2005-05-16 14:47:35 | DEFINER | | | test | hello2 | FUNCTION | root@localhost | 2005-05-17 11:02:08 | 2005-05-17 11:02:08 | DEFINER | | | test | hello22 | FUNCTION | root@localhost | 2005-05-23 14:13:16 | 2005-05-23 14:13:16 | DEFINER | | | test | helloworld | FUNCTION | root@localhost | 2005-05-19 13:53:37 | 2005-05-19 13:53:37 | DEFINER | | +------+------------+----------+----------------+---------------------+---------------------+---------------+---------+ 5 rows in set (0.01 sec) <mysqlbug の出力内容 > SEND-PR: -*- send-pr -*- SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as SEND-PR: will all comments (text enclosed in `<' and `>'). SEND-PR: From: yukie To: mysql@xxxxxxxxxx Subject: [50 character or so descriptive subject here (for reference)] >Description: <precise description of the problem (multiple lines)> >How-To-Repeat: <code/input/activities to reproduce the problem (multiple lines)> >Fix: <how to correct or work around the problem, if known (multiple lines)> >Submitter-Id: <submitter ID> >Originator: nakamura >Organization: <organization of PR author (multiple lines)> >MySQL support: [none | licence | email support | extended email support ] >Synopsis: <synopsis of the problem (one line)> >Severity: <[ non-critical | serious | critical ] (one line)> >Priority: <[ low | medium | high ] (one line)> >Category: mysql >Class: <[ sw-bug | doc-bug | change-request | support ] (one line)> >Release: mysql-5.0.4-beta (Source distribution) >C compiler: gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >C++ compiler: g++ (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >Environment: <machine, os, target, libraries (multiple lines)> System: Linux andy 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686 i686 i386 GNU/Linux Architecture: i686 Some paths: /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc GCC: /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs から spec を読み込み中 コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit スレッドモデル: posix gcc バージョン 3.2 20020903 (Red Hat Linux 8.0 3.2-7) Compilation info: CC='gcc' CFLAGS='' CXX='g++' CXXFLAGS='' LDFLAGS='' ASFLAGS='' LIBC: lrwxrwxrwx 1 root root 14 5月 12 18:48 /lib/libc.so.6 -> libc-2.2.93.so -rwxr-xr-x 1 root root 1235468 9月 6 2002 /lib/libc-2.2.93.so -rw-r--r-- 1 root root 2233342 9月 6 2002 /usr/lib/libc.a -rw-r--r-- 1 root root 178 9月 6 2002 /usr/lib/libc.so Configure command: ./configure '--with-charset=ujis' '--with-extra-charsets=all' '--with-innodb' <my.cnf の内容 > # Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 64M) where MySQL plays # an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server) # # You can copy this file to # /etc/my.cnf to set global options, # mysql-data-dir/my.cnf to set server-specific options (in this # installation this directory is /usr/local/mysql/var) or # ~/.my.cnf to set user-specific options. # # In this file, you can use all long options that a program supports. # If you want to know which options a program supports, run the program # with the "--help" option. # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /tmp/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M default-table-type=InnoDB default-character-set=ujis # 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=mysql-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=mysql-bin # Point the following paths to different dedicated disks #tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname # Uncomment the following if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000 # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /usr/local/mysql/var/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /usr/local/mysql/var/ #innodb_log_arch_dir = /usr/local/mysql/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] interactive-timeout <err ファイルの出力 > 050520 14:57:19 InnoDB: Started; log sequence number 0 68730 050520 14:57:19 [Note] Recovering after a crash using mysql-bin 050520 14:57:19 [Note] Starting crash recovery... 050520 14:57:19 InnoDB: Starting recovery for XA transactions... 050520 14:57:19 InnoDB: 0 transactions in prepared state after recovery 050520 14:57:19 [Note] Crash recovery finished. 050520 14:57:19 InnoDB: Starting recovery for XA transactions... 050520 14:57:19 InnoDB: 0 transactions in prepared state after recovery 050520 14:57:19 [Note] /usr/local/mysql/libexec/mysqld: ready for connections. Version: '5.0.4-beta-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution 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=258048 max_used_connections=1 max_connections=100 threads_connected=1 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 92783 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd=0x8924a00 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... Cannot determine thread, fp=0x4171a908, backtrace may not be correct. Stack range sanity check OK, backtrace follows: 0x816bfb0 0x4002d47e 0x8255935 0x20202020 New value of fp=0x20202020 failed sanity check, terminating stack trace! Please read http://dev.mysql.com/doc/mysql/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved stack trace is much more helpful in diagnosing the problem, so please do resolve it Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x88fbdf0 = CALL simpleproc20(@a) thd->thread_id=10 The manual page at http://www.mysql.com/doc/en/Crashing.html contains information that should help you find out what is causing the crash. Number of processes running now: 0 050523 14:08:02 mysqld restarted 050523 14:08:02 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 050523 14:08:02 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 74256. InnoDB: Doing recovery: scanned up to log sequence number 0 74256 InnoDB: Last MySQL binlog file position 0 1068, file name ./mysql-bin.000028 050523 14:08:02 InnoDB: Started; log sequence number 0 74256 050523 14:08:02 [Note] Recovering after a crash using mysql-bin 050523 14:08:02 [Note] Starting crash recovery... 050523 14:08:02 InnoDB: Starting recovery for XA transactions... 050523 14:08:02 InnoDB: 0 transactions in prepared state after recovery 050523 14:08:02 [Note] Crash recovery finished. 050523 14:08:02 InnoDB: Starting recovery for XA transactions... 050523 14:08:02 InnoDB: 0 transactions in prepared state after recovery 050523 14:08:02 [Note] /usr/local/mysql/libexec/mysqld: ready for connections. Version: '5.0.4-beta-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution 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=258048 max_used_connections=1 max_connections=100 threads_connected=1 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 92783 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd=0x8901bb0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... Cannot determine thread, fp=0x4171a908, backtrace may not be correct. Stack range sanity check OK, backtrace follows: 0x816bfb0 0x4002d47e 0x8255935 0x20202020 New value of fp=0x20202020 failed sanity check, terminating stack trace! Please read http://dev.mysql.com/doc/mysql/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved stack trace is much more helpful in diagnosing the problem, so please do resolve it Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x891e9e0 = CALL simpleproc22(@a) thd->thread_id=1 The manual page at http://www.mysql.com/doc/en/Crashing.html contains information that should help you find out what is causing the crash. Number of processes running now: 0 050523 14:11:37 mysqld restarted 050523 14:11:37 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 050523 14:11:37 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 74266. InnoDB: Doing recovery: scanned up to log sequence number 0 74266 InnoDB: Last MySQL binlog file position 0 1068, file name ./mysql-bin.000028 050523 14:11:37 InnoDB: Started; log sequence number 0 74266 050523 14:11:37 [Note] Recovering after a crash using mysql-bin 050523 14:11:37 [Note] Starting crash recovery... 050523 14:11:37 InnoDB: Starting recovery for XA transactions... 050523 14:11:37 InnoDB: 0 transactions in prepared state after recovery 050523 14:11:37 [Note] Crash recovery finished. 050523 14:11:37 InnoDB: Starting recovery for XA transactions... 050523 14:11:37 InnoDB: 0 transactions in prepared state after recovery 050523 14:11:37 [Note] /usr/local/mysql/libexec/mysqld: ready for connections. Version: '5.0.4-beta-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution 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=258048 max_used_connections=1 max_connections=100 threads_connected=1 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 92783 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd=0x8901bb0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... Cannot determine thread, fp=0x4171a908, backtrace may not be correct. Stack range sanity check OK, backtrace follows: 0x816bfb0 0x4002d47e 0x8255935 0x20202020 New value of fp=0x20202020 failed sanity check, terminating stack trace! Please read http://dev.mysql.com/doc/mysql/en/Using_stack_trace.html and follow instructions on how to resolve the stack trace. Resolved stack trace is much more helpful in diagnosing the problem, so please do resolve it Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x891e9e0 = SELECT hello22('world') thd->thread_id=1 The manual page at http://www.mysql.com/doc/en/Crashing.html contains information that should help you find out what is causing the crash. Number of processes running now: 0 050523 14:13:28 mysqld restarted 050523 14:13:28 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 050523 14:13:28 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 74266. InnoDB: Doing recovery: scanned up to log sequence number 0 74266 InnoDB: Last MySQL binlog file position 0 1068, file name ./mysql-bin.000028 050523 14:13:28 InnoDB: Started; log sequence number 0 74266 050523 14:13:28 [Note] Recovering after a crash using mysql-bin 050523 14:13:28 [Note] Starting crash recovery... 050523 14:13:28 InnoDB: Starting recovery for XA transactions... 050523 14:13:28 InnoDB: 0 transactions in prepared state after recovery 050523 14:13:28 [Note] Crash recovery finished. 050523 14:13:28 InnoDB: Starting recovery for XA transactions... 050523 14:13:28 InnoDB: 0 transactions in prepared state after recovery 050523 14:13:28 [Note] /usr/local/mysql/libexec/mysqld: ready for connections. Version: '5.0.4-beta-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution [mysql@andy mysql]$ 中村 yukie@xxxxxxxxxx