[groonga-dev,03041] Re: MariaDBバンドル版Mroonga 4.09でMroongaがインストール出来ない問題について

Back to archive index

Kouhei Sutou kou****@clear*****
2015年 1月 5日 (月) 23:34:17 JST


須藤です。

In <54AA9****@gmail*****>
  "[groonga-dev,03040] MariaDBバンドル版Mroonga 4.09でMroongaがインストール出来ない問題について" on Mon, 05 Jan 2015 23:13:17 +0900,
  hiroshi hatake <cosmo****@gmail*****> wrote:

> Windows版のMroonga 4.09のリリースが遅れていてすいません。。

大丈夫です!

> Windows版Mroongaをビルドして次のようにMroongaをインストールしようとし
> た ところ、
> 次のような症状がでてしまい、Mroongaのインストールが完了しません。
> 
> * mysqld.exeを起動させる
> * Mroongaをインストールするsqlをmysqlに読み込ませる。
> * MySQL Clientがserverのコネクションを失う。

おぉ。。。

> ---
> cmd> start .\bin\mysqld.exe
> cmd> .\bin\mysql -u root < .\share\mroonga\install.sql
> 
> cmd>.\bin\mysql -u root < .\share\mroonga\install.sql

これはコピペミスじゃなくて実際に2回実行しているのですか?

> 他にログがでていないか調べたところ、
> mysqldがエラーログ([HOSTNAME].err)をdataディレクトリに出していました。
> 
> ---
...
> mysqld.exe!test_plugin_options()[sql_plugin.cc:3968]

ここあたりのコードはこうなっていて、

  3952        /*
  3953          PLUGIN_VAR_STR command-line options without PLUGIN_VAR_MEMALLOC, point
  3954          directly to values in the argv[] array. For plugins started at the
  3955          server startup, argv[] array is allocated with load_defaults(), and
  3956          freed when the server is shut down.  But for plugins loaded with
  3957          INSTALL PLUGIN, the memory allocated with load_defaults() is freed with
  3958          freed() at the end of mysql_install_plugin(). Which means we cannot
  3959          allow any pointers into that area.
  3960          Thus, for all plugins loaded after the server was started,
  3961          we copy string values to a plugin's memroot.
  3962        */
  3963        if (mysqld_server_started &&
  3964            ((o->flags & (PLUGIN_VAR_STR | PLUGIN_VAR_NOCMDOPT |
  3965                           PLUGIN_VAR_MEMALLOC)) == PLUGIN_VAR_STR))
  3966        {
  3967          sysvar_str_t* str= (sysvar_str_t *)o;
  3968          if (*str->value)
  3969            *str->value= strdup_root(mem_root, *str->value);
  3970        }

↓に

  3964            ((o->flags & (PLUGIN_VAR_STR | PLUGIN_VAR_NOCMDOPT |
  3965                           PLUGIN_VAR_MEMALLOC)) == PLUGIN_VAR_STR))

該当しそうな条件のMroongaの変数は↓くらいなんですよねぇ。

static MYSQL_SYSVAR_STR(default_wrapper_engine, mrn_default_wrapper_engine,
                        PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
                        "The default engine for wrapper mode",
                        NULL,
                        NULL,
                        NULL);

これ関連のコードをstorage/mroonga/ha_mroonga.ccから削除して
ビルドすると直るか確認してもらえませんか?

> Mroongaを登録しようとしているところでmysqldが異常終了しているようで
> す。。。
> この問題を解決するのに他に必要そうな情報はありますか?

登録するSQLを1つずつ実行して具体的にどのSQLが原因かを調べる
のがよさそうに思います。

あとdataディレクトリーにgroonga.logというファイルがあると思
うので、そこになにかないか確認した方がよい気がします。

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/




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