[groonga-dev,04892] Mroongaバグ報告(10)

Back to archive index
渡部克仁 watan****@ksw*****
2021年 9月 9日 (木) 14:11:39 JST


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

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

次のMroongaのリリースで解決の件、承知いたしました。
ご対応、感謝申し上げます。

以上、よろしくお願いいたします。


On 2021/09/09 13:43, Horimoto Yasuhiro wrote:
> 堀本です。
> 
> すみません。あの後、須藤さんが修正してくれました。([groonga-dev,04889])
> なので、次のMroongaのリリースで、この問題は解決します。
> 
> From: 渡部克仁 <watan****@ksw*****>
> Subject: [groonga-dev,04890] Mroongaバグ報告(9)
> Date: Thu, 9 Sep 2021 13:12:29 +0900
> 
>> 【秘密】関係者外秘
>> 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 mailing list
>> groon****@lists*****
>> https://lists.osdn.me/mailman/listinfo/groonga-dev



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