[Senna-dev 156] Rev 54のmysqlバインディングでのindex失敗

Back to archive index

Kazuhiro Osawa ko****@yappo*****
2005年 10月 29日 (土) 13:31:34 JST


大沢です。

下記の環境、下記の条件でalter tableでのfulltextインデックス作成時に
Segmentation fault.がでました。

OS: CentOS 4.2
MySQL: 4.0.26
Senna: Revision: 54
/etc/my.cnf: ft_min_word_len=2
etc: バインディングパッチを改変することなく、素直にセットアップした


------------------------------------------mysqlコマンド側の挙動
mysql> alter table SEARCH_DATA add fulltext SEARCH_TEXT(SEARCH_TEXT);
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
------------------------------------------

------------------------------------------gdbの結果
bash-3.00$ gdb ./libexec/mysqld
(gdb) run
Starting program: /home/mysql/libexec/mysqld
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1208097088 (LWP 26106)]
(no debugging symbols found)
051029 12:46:11 Warning: setrlimit couldn't increase number of open files to more than 1024 (request: 2510)
051029 12:46:11 Warning: Changed limits: max_connections: 500  table_cache: 257
[New Thread -1292682320 (LWP 26109)]
[New Thread -1303172176 (LWP 26110)]
[New Thread -1313662032 (LWP 26111)]
[New Thread -1324151888 (LWP 26112)]
[New Thread -1339421776 (LWP 26113)]
[New Thread -1349911632 (LWP 26114)]
[New Thread -1360401488 (LWP 26115)]
051029 12:46:11  InnoDB: Started
[New Thread -1505113168 (LWP 26116)]
/home/mysql/libexec/mysqld: ready for connections.
Version: '4.0.26'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
[New Thread -1505317968 (LWP 26117)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1505317968 (LWP 26117)]
0x001246a5 in sen_lex_open (sym=0x90a27d0,
    str=0x94c5a008 "http://site-s.com/kosaka/ ミスマガ!小阪由佳! ミスマガジン小阪由佳の待ち受けサイト 小阪由佳 ミスマガジン 壁紙 待ち受け グラビア ", '?' <repeats 12 times>, "\217・????\217・??????歹\001\0043??\016??\217妃攀??\001????\b", '?' <repeats 20 times>..., addp=Variable "addp" is not available.
) at lex.c:225
225       for (p = s + strlen(s) - 1; *p == '\n' || isspace(*p); p--) { *p = '\0'; }

------------------------------------------

------------------------------------------bt
(gdb) bt
#0  0x001246a5 in sen_lex_open (sym=0x90a27d0,
    str=0x94c5a008 "http://site-s.com/kosaka/ ミスマガ!小阪由佳! ミスマガジン小阪由佳の待ち受けサイト 小阪由佳 ミスマガジン 壁紙 待ち受け グラビア ", '?' <repeats 12 times>, "\217・????\217・??????歹\001\0043??\016??\217妃攀??\001????\b", '?' <repeats 20 times>..., addp=Variable "addp" is not available.
) at lex.c:225
#1  0x00126ac4 in sen_index_add (i=0x9070c40, key=0xa6466b8c,
    value=0x94c5a008 "http://site-s.com/kosaka/ ミスマガ!小阪由佳! ミスマガジン小阪由佳の待ち受けサイト 小阪由佳 ミスマガジン 壁紙 待ち受け グラビア ", '?' <repeats 12 times>, "\217・????\217・??????歹\001\0043??\016??\217妃攀??\001????\b", '?' <repeats 20 times>...) at index.c:731
#2  0x00126d9b in sen_index_upd (i=0x9070c40, key=0xa6466b8c, oldvalue=0x0,
    newvalue=0x94c5a008 "http://site-s.com/kosaka/ ミスマガ!小阪由佳! ミスマガジン小阪由佳の待ち受けサイト 小阪由佳 ミスマガジン 壁紙 待ち受け グラビア ", '?' <repeats 12 times>, "\217・????\217 ・??????歹\001\0043??\016??\217妃攀??\001????\b", '?' <repeats 20 times>...) at index.c:806
#3  0x082d734f in ft_sen_index_add ()
#4  0x082d2055 in sort_ft_key_read ()
#5  0x082dacdb in _create_index_by_sort ()
#6  0x082d551e in mi_repair_by_sort ()
#7  0x0816c85e in ha_myisam::repair ()
#8  0x0816cd41 in ha_myisam::activate_all_index ()
#9  0x0817ea70 in mysql_alter_table ()
#10 0x08112b25 in mysql_execute_command ()
#11 0x0811608c in mysql_parse ()
#12 0x08116b94 in dispatch_command ()
#13 0x0811788c in handle_one_connection ()
#14 0x00c9a341 in start_thread () from /lib/tls/libpthread.so.0
#15 0x00b1a6fe in clone () from /lib/tls/libc.so.6
------------------------------------------

基本的にデータはEUCなのですが、落ちたデータが入っている行の内容は
文字コードがぐちゃぐちゃに存在しているようでした。

#もちろん、該当サイトが汚いわけでなくこちら側のクロウラのbugです

ちなみにN-gramを使うようにコードを変更
http://blog.nomadscafe.jp/archives/000408.html
したところ再現せずに、indexの作成を完了しました。

---
osawa



Senna-dev メーリングリストの案内
Back to archive index