[groonga-dev,04890] Mroongaバグ報告(9)

アーカイブの一覧に戻る
渡部克仁 watan****@ksw*****
2021年 9月 9日 (木) 13:12:29 JST


【秘密】関係者外秘
To:堀本様

渡部@国際ソフトウェアと申します。

早速のご回答ありがとうございます。
先延ばしになっている件、承知いたしました。

お手数をおかけしますが、よろしくお願いいたします。


On 2021/09/09 12:00, groon****@lists***** wrote:
> groonga-dev
> メーリングリストへの投稿は以下のアドレスに送ってください.
> 
> 	groon****@lists*****
> 
> Webブラウザを使って入退会するには以下のURLにどうぞ.
> 
> 	https://lists.osdn.me/mailman/listinfo/groonga-dev
> メールを使う場合,件名(Subject:)または本文に help
> と書いて以下の アドレスに送信してください.
> 	groon****@lists*****
> 
> メーリングリストの管理者への連絡は,以下のアドレスにお願いします.
> 
> 	groon****@lists*****
> 
> 返信する場合,件名を書き直して内容がわかるようにしてください.
> そのままだと,以下のようになってしまいます.
> "Re: groonga-dev まとめ読み, XX 巻 XX 号"
> 
> 
> 本日の話題:
> 
>     1. [groonga-dev,04888] Re: Mroongaバグ報告(8) (Horimoto Yasuhiro)
>     2. [groonga-dev,04889] Re: Mroongaバグ報告(8) (Sutou Kouhei)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Wed, 08 Sep 2021 13:12:15 +0900 (JST)
> From: Horimoto Yasuhiro <horim****@clear*****>
> To: groon****@lists*****
> Subject: [groonga-dev,04888] Re: Mroongaバグ報告(8)
> Message-ID:
> 	<20210****@clear*****>
> Content-Type: Text/Plain; charset=utf-8
> 
> 堀本です。
> 
> 対応する予定ではいるのですが、ここ数ヶ月、手が空かないので
> 先延ばしになっています。すみません。。。
> 
> もうしばらくお待ちいただければと思います。
> 
> 以上です。失礼いたします。
> 
> From: 渡部克仁 <watan****@ksw*****>
> Subject: [groonga-dev,04887] Mroongaバグ報告(8)
> Date: Wed, 8 Sep 2021 09:45:25 +0900
> 
>> 【秘密】関係者外秘
>> To:堀本様
>>
>> 渡部@国際ソフトウェアと申します。
>>
>> 下記バグについて、今後の対応計画などはありますでしょうか。
>>
>> 2021-07-30にリリースされたMroonga 11.05、
>> 2021-08-29にリリースされたMroonga 11.06、
>> 共にリリースノートを拝見しましたが、該当する改良が見当たら
>> なかったため、確認させていただいている次第です。
>>
>> 以上、よろしくお願いいたします。
>>
>>
>> On 2021/07/07 12:13, 渡部克仁 wrote:
>>> 【秘密】関係者外秘
>>> To:堀本様
>>> 渡部@国際ソフトウェアと申します。
>>> ご報告ありがとうございます。
>>> 原因が判明して安堵いたしました。
>>> ご丁寧に調査いただき感謝申し上げます。
>>> Mroongaの修正については、引き続きご対応よろしくお願いいたします。
>>> On 2021/07/07 12:00, groon****@lists***** wrote:
>>>> groonga-dev
>>>> メーリングリストへの投稿は以下のアドレスに送ってください.
>>>>
>>>>      groon****@lists*****
>>>>
>>>> Webブラウザを使って入退会するには以下のURLにどうぞ.
>>>>
>>>>      https://lists.osdn.me/mailman/listinfo/groonga-dev
>>>> メールを使う場合,件名(Subject:)または本文に help
>>>> と書いて以下の アドレスに送信してください.
>>>>      groon****@lists*****
>>>>
>>>> メーリングリストの管理者への連絡は,以下のアドレスにお願いします.
>>>>
>>>>      groon****@lists*****
>>>>
>>>> 返信する場合,件名を書き直して内容がわかるようにしてください.
>>>> そのままだと,以下のようになってしまいます.
>>>> "Re: groonga-dev まとめ読み, XX 巻 XX 号"
>>>>
>>>>
>>>> 本日の話題:
>>>>
>>>>      1. [groonga-dev,04876] Re: Mroongaバグ報告(6) (Horimoto Yasuhiro)
>>>>
>>>>
>>>>
>> ----------------------------------------------------------------------
>>>>
>>>> Message: 1
>>>> Date: Tue, 06 Jul 2021 16:28:20 +0900 (JST)
>>>> From: Horimoto Yasuhiro <horim****@clear*****>
>>>> To: groon****@lists*****
>>>> Subject: [groonga-dev,04876] Re: Mroongaバグ報告(6)
>>>> Message-ID:
>>>>      <20210****@clear*****>
>>>> Content-Type: Text/Plain; charset=utf-8
>>>>
>>>> 堀本です。
>>>>
>>>> 原因と対処方法がわかったので、報告いたします。
>>>> 原因はMroongaのバグでした。
>>>>
>>>> 以下の提示いただいたクエリーを実行した際
>>>> MariaDBのオプティマイザーは、IN句内のサブクエリーを実行した結果のテー
>>>> ブルと
>>>> IN句の外側のテーブル(Posts)テーブルをSEMI JOINで結合します。
>>>>
>>>> SELECT Id, ChannelId, RootId
>>>>      FROM Posts p3
>>>>     WHERE Id IN (
>>>>      SELECT * FROM
>>>>        (SELECT RootId
>>>>           FROM Posts
>>>>          WHERE UpdateAt > 1617352409099 AND
>>>>                ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a'
>>>>          LIMIT 1000)
>>>>       temp_tab);
>>>>
>>>> IN句の中のサブクエリーの結果は以下のようになり、
>>>> 以下の表の値と、Posts.Idの値が同じレコードを抽出します。
>>>>
>>>> つまり、''(空文字)と"twn3smcaei8wjbqsm8bcmo8qah"と一致する
>>>> Posts.Idを持つレコードを抽出します。
>>>>
>>>> +----------------------------+
>>>> | RootId                     |
>>>> +----------------------------+
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> | twn3smcaei8wjbqsm8bcmo8qah |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> +----------------------------+
>>>> 20 rows in set (0.001 sec)
>>>>
>>>> この時、Mroongaを使用していると、''と一致するレコードとして
>>>> 任意のIDを持つレコードを抽出してしまい、意図しないIDのレコードが結果に
>>>> 含まれてしまいます。
>>>> InnoDBでは、再現しないため、Mroonga特有の問題です。
>>>>
>>>> Mroongaを修正しますが、さしあたっては以下の対処方法で
>>>> 正しい結果が得られます。
>>>>
>>>> 今回の問題は、''のような空文字のレコードを持つ表との結合
>>>> で発生します。したがって、''のようなレコードが含まれないように
>>>> することで現象の発生を防げます。
>>>>
>>>> RootIdはIdと比較しており、IdはNOT NULL属性なので、RootIdが''なレコード
>>>> は除外しても問題ないと考えます。
>>>>
>>>> そのため、問題のクエリーのIN句の中のサブクエリーに
>>>> 以下のように、RootId <> ''を追加してRootIdが''なレコードを除外します。
>>>> このようにすることで、期待する結果が得られます。
>>>>
>>>> SELECT Id, ChannelId, RootId
>>>>      FROM Posts p3
>>>>     WHERE Id IN (
>>>>      SELECT * FROM
>>>>        (SELECT RootId
>>>>           FROM Posts
>>>>          WHERE UpdateAt > 1617352409099 AND
>>>>                ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a' AND
>>>>                RootId <> ''
>>>>          LIMIT 1000)
>>>>       temp_tab);
>>>>
>>>> Mroongaの修正が完了しましたら、また改めて連絡します。
>>>>
>>>> 以上です。失礼いたします。
>>>>
>>
>> _______________________________________________
>> groonga-dev mailing list
>> groon****@lists*****
>> https://lists.osdn.me/mailman/listinfo/groonga-dev
> 
> ------------------------------
> 
> Message: 2
> Date: Wed, 08 Sep 2021 15:37:32 +0900 (JST)
> From: Sutou Kouhei <kou****@clear*****>
> To: groon****@lists*****
> Subject: [groonga-dev,04889] Re: Mroongaバグ報告(8)
> Message-ID: <20210****@clear*****>
> Content-Type: Text/Plain; charset=utf-8
> 
> 須藤です。
> 
> おまたせしました。ようやく直しました。
> 今月末のリリースにはこの修正が含まれます。
> 
> In <d5608****@ksw*****>
>    "[groonga-dev,04887] Mroongaバグ報告(8)" on Wed, 8 Sep 2021 09:45:25 +0900,
>    渡部克仁 <watan****@ksw*****> wrote:
> 
>> 【秘密】関係者外秘
>> To:堀本様
>>
>> 渡部@国際ソフトウェアと申します。
>>
>> 下記バグについて、今後の対応計画などはありますでしょうか。
>>
>> 2021-07-30にリリースされたMroonga 11.05、
>> 2021-08-29にリリースされたMroonga 11.06、
>> 共にリリースノートを拝見しましたが、該当する改良が見当たら
>> なかったため、確認させていただいている次第です。
>>
>> 以上、よろしくお願いいたします。
>>
>>
>> On 2021/07/07 12:13, 渡部克仁 wrote:
>>> 【秘密】関係者外秘
>>> To:堀本様
>>> 渡部@国際ソフトウェアと申します。
>>> ご報告ありがとうございます。
>>> 原因が判明して安堵いたしました。
>>> ご丁寧に調査いただき感謝申し上げます。
>>> Mroongaの修正については、引き続きご対応よろしくお願いいたします。
>>> On 2021/07/07 12:00, groon****@lists***** wrote:
>>>> groonga-dev
>>>> メーリングリストへの投稿は以下のアドレスに送ってください.
>>>>
>>>>      groon****@lists*****
>>>>
>>>> Webブラウザを使って入退会するには以下のURLにどうぞ.
>>>>
>>>>      https://lists.osdn.me/mailman/listinfo/groonga-dev
>>>> メールを使う場合,件名(Subject:)または本文に help
>>>> と書いて以下の アドレスに送信してください.
>>>>      groon****@lists*****
>>>>
>>>> メーリングリストの管理者への連絡は,以下のアドレスにお願いします.
>>>>
>>>>      groon****@lists*****
>>>>
>>>> 返信する場合,件名を書き直して内容がわかるようにしてください.
>>>> そのままだと,以下のようになってしまいます.
>>>> "Re: groonga-dev まとめ読み, XX 巻 XX 号"
>>>>
>>>>
>>>> 本日の話題:
>>>>
>>>>      1. [groonga-dev,04876] Re: Mroongaバグ報告(6) (Horimoto Yasuhiro)
>>>>
>>>>
>>>>
>> ----------------------------------------------------------------------
>>>>
>>>> Message: 1
>>>> Date: Tue, 06 Jul 2021 16:28:20 +0900 (JST)
>>>> From: Horimoto Yasuhiro <horim****@clear*****>
>>>> To: groon****@lists*****
>>>> Subject: [groonga-dev,04876] Re: Mroongaバグ報告(6)
>>>> Message-ID:
>>>>      <20210****@clear*****>
>>>> Content-Type: Text/Plain; charset=utf-8
>>>>
>>>> 堀本です。
>>>>
>>>> 原因と対処方法がわかったので、報告いたします。
>>>> 原因はMroongaのバグでした。
>>>>
>>>> 以下の提示いただいたクエリーを実行した際
>>>> MariaDBのオプティマイザーは、IN句内のサブクエリーを実行した結果のテー
>>>> ブルと
>>>> IN句の外側のテーブル(Posts)テーブルをSEMI JOINで結合します。
>>>>
>>>> SELECT Id, ChannelId, RootId
>>>>      FROM Posts p3
>>>>     WHERE Id IN (
>>>>      SELECT * FROM
>>>>        (SELECT RootId
>>>>           FROM Posts
>>>>          WHERE UpdateAt > 1617352409099 AND
>>>>                ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a'
>>>>          LIMIT 1000)
>>>>       temp_tab);
>>>>
>>>> IN句の中のサブクエリーの結果は以下のようになり、
>>>> 以下の表の値と、Posts.Idの値が同じレコードを抽出します。
>>>>
>>>> つまり、''(空文字)と"twn3smcaei8wjbqsm8bcmo8qah"と一致する
>>>> Posts.Idを持つレコードを抽出します。
>>>>
>>>> +----------------------------+
>>>> | RootId                     |
>>>> +----------------------------+
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> | twn3smcaei8wjbqsm8bcmo8qah |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> |                            |
>>>> +----------------------------+
>>>> 20 rows in set (0.001 sec)
>>>>
>>>> この時、Mroongaを使用していると、''と一致するレコードとして
>>>> 任意のIDを持つレコードを抽出してしまい、意図しないIDのレコードが結果に
>>>> 含まれてしまいます。
>>>> InnoDBでは、再現しないため、Mroonga特有の問題です。
>>>>
>>>> Mroongaを修正しますが、さしあたっては以下の対処方法で
>>>> 正しい結果が得られます。
>>>>
>>>> 今回の問題は、''のような空文字のレコードを持つ表との結合
>>>> で発生します。したがって、''のようなレコードが含まれないように
>>>> することで現象の発生を防げます。
>>>>
>>>> RootIdはIdと比較しており、IdはNOT NULL属性なので、RootIdが''なレコード
>>>> は除外しても問題ないと考えます。
>>>>
>>>> そのため、問題のクエリーのIN句の中のサブクエリーに
>>>> 以下のように、RootId <> ''を追加してRootIdが''なレコードを除外します。
>>>> このようにすることで、期待する結果が得られます。
>>>>
>>>> SELECT Id, ChannelId, RootId
>>>>      FROM Posts p3
>>>>     WHERE Id IN (
>>>>      SELECT * FROM
>>>>        (SELECT RootId
>>>>           FROM Posts
>>>>          WHERE UpdateAt > 1617352409099 AND
>>>>                ChannelId = 'i9rsh6im4ffepfpdgm51hjze3a' AND
>>>>                RootId <> ''
>>>>          LIMIT 1000)
>>>>       temp_tab);
>>>>
>>>> Mroongaの修正が完了しましたら、また改めて連絡します。
>>>>
>>>> 以上です。失礼いたします。
>>>>
>>
>> _______________________________________________
>> groonga-dev mailing list
>> groon****@lists*****
>> https://lists.osdn.me/mailman/listinfo/groonga-dev
> 
> ------------------------------
> 
> Subject: まとめ読みフッタ
> 
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> https://lists.osdn.me/mailman/listinfo/groonga-dev
> 
> 
> ------------------------------
> 
> 以上: groonga-dev まとめ読み, 151 巻, 3 号
> ***************************************************
> 



groonga-dev メーリングリストの案内
アーカイブの一覧に戻る