[groonga-dev,04891] Re: Mroongaバグ報告(9)

Back to archive index
Horimoto Yasuhiro horim****@clear*****
2021年 9月 9日 (木) 13:43:55 JST


堀本です。

すみません。あの後、須藤さんが修正してくれました。([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