<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:52:52 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-39705] IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys</title>
                <link>https://jira.mongodb.org/browse/SERVER-39705</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;IndexBuildInterceptor makes an incorrect assumption that a document &lt;a href=&quot;https://github.com/mongodb/mongo/blob/04882fa7f5210cfb14918ecddbbc5acbd88e86b6/src/mongo/db/index/index_build_interceptor.cpp#L384-L386&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;must generate keys&lt;/a&gt; to be &lt;a href=&quot;https://github.com/mongodb/mongo/blob/04882fa7f5210cfb14918ecddbbc5acbd88e86b6/src/mongo/db/index/index_build_interceptor.cpp#L389-L397&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;considered multikey&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In particular, &lt;a href=&quot;https://docs.mongodb.com/manual/core/index-sparse/#sparse-compound-indexes&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;sparse compound indexes&lt;/a&gt; may not generate keys, but will consider a document to be multikey[1]. MongoDB&apos;s validation code is strict and will compare an &lt;a href=&quot;https://github.com/mongodb/mongo/blob/04882fa7f5210cfb14918ecddbbc5acbd88e86b6/src/mongo/db/catalog/private/record_store_validate_adaptor.cpp#L110-L117&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;index&apos;s multikey to the multikey output of every document&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[1] Consider the index {&lt;tt&gt;a: 1, b: &quot;2dsphere&quot;&lt;/tt&gt;} (&lt;tt&gt;2dsphere&lt;/tt&gt; makes an index &quot;auto-sparse&quot;). Consider the document {&lt;tt&gt;_id: 1, a: &lt;span class=&quot;error&quot;&gt;&amp;#91;1,2&amp;#93;&lt;/span&gt;&lt;/tt&gt;}. Because &lt;tt&gt;b&lt;/tt&gt; is omitted, the sparse-ness will result in no index keys being generated. However, because &lt;tt&gt;a&lt;/tt&gt; is an array, that field of the compound index will be considered to be multikey.&lt;/p&gt;</description>
                <environment></environment>
        <key id="701749">SERVER-39705</key>
            <summary>IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="benety.goh@mongodb.com">Benety Goh</assignee>
                                    <reporter username="daniel.gottlieb@mongodb.com">Daniel Gottlieb</reporter>
                        <labels>
                            <label>KS</label>
                    </labels>
                <created>Thu, 21 Feb 2019 02:44:36 +0000</created>
                <updated>Sun, 29 Oct 2023 22:23:48 +0000</updated>
                            <resolved>Sun, 16 Jun 2019 10:48:56 +0000</resolved>
                                                    <fixVersion>4.2.0-rc3</fixVersion>
                    <fixVersion>4.3.1</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="2314864" author="xgen-internal-githook" created="Mon, 8 Jul 2019 09:55:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; Always observe multikey changes in IndexBuildInterceptor::sideWrite.&lt;/p&gt;

&lt;p&gt;This re-applies commit 5bd904dff90a0e6332d6d4630053141e6617c5de with additional&lt;br/&gt;
change to the js test hybrid_sparse_compound_geo_index.js.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 62e3fdae6062cf1fe5e55932eb6aa26f0f593d17)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/122835074f1032301a35a322266f80d0a4bb2e1d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/122835074f1032301a35a322266f80d0a4bb2e1d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2314527" author="xgen-internal-githook" created="Sun, 7 Jul 2019 23:22:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; update write ops check filter before writing to side table&lt;/p&gt;

&lt;p&gt;This applies to hybrid index builds for partial indexes.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit ea632e0e020c98e39b9c86f4e1f78fba7841e792)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/bae9fbb43a0430fae792f9eb5402c6033a1d47b4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/bae9fbb43a0430fae792f9eb5402c6033a1d47b4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2314488" author="xgen-internal-githook" created="Sun, 7 Jul 2019 19:53:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; IndexCatalogImpl::_unindexRecord() checks filter before calling IndexBuildInterceptor::sideWrite()&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 17ec6e3bd06770c23090f4287adce13a5301a4d7)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/965fad828c1992347630ed2fc79e976ed2b54e60&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/965fad828c1992347630ed2fc79e976ed2b54e60&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2314450" author="xgen-internal-githook" created="Sun, 7 Jul 2019 16:41:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; IndexCatalogImpl::_indexKeys() accepts document to be indexed&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 4d4892bedbea98ff0bfba3f5d8443ca911877e21)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/70141083f13ea9b8b103fada778883212236d2b0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/70141083f13ea9b8b103fada778883212236d2b0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2314295" author="xgen-internal-githook" created="Sat, 6 Jul 2019 20:57:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; add regression tests for hyrid index builds.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 16538326c83b85c6f900085d612a3286f49b48e7)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b7def5792993ee3128690b3bea257f65bb8b159e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b7def5792993ee3128690b3bea257f65bb8b159e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2314242" author="xgen-internal-githook" created="Sat, 6 Jul 2019 15:32:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; add js tests for hybrid index builds on sparse and partial geo ndexes&lt;/p&gt;

&lt;p&gt;(cherry picked from commit db93f75d7db3fbbef85c76238c388ce80e8a6d96)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5df95783f41ebe74967762788325603730160194&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5df95783f41ebe74967762788325603730160194&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2314213" author="xgen-internal-githook" created="Sat, 6 Jul 2019 11:47:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; add multikey paths to MultikeyPathTracker::mergeMultikeyPaths() invariant message&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 1822f7f35f4f86149c81ecbf753957beeebb825a)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8619df155584acfde99c0c1ed0188c33c03129d2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8619df155584acfde99c0c1ed0188c33c03129d2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2286307" author="xgen-internal-githook" created="Sun, 16 Jun 2019 10:47:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; Always observe multikey changes in IndexBuildInterceptor::sideWrite.&lt;/p&gt;

&lt;p&gt;This re-applies commit 5bd904dff90a0e6332d6d4630053141e6617c5de with additional&lt;br/&gt;
change to the js test hybrid_sparse_compound_geo_index.js.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/62e3fdae6062cf1fe5e55932eb6aa26f0f593d17&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/62e3fdae6062cf1fe5e55932eb6aa26f0f593d17&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2286100" author="xgen-internal-githook" created="Sat, 15 Jun 2019 11:57:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; update write ops check filter before writing to side table&lt;/p&gt;

&lt;p&gt;This applies to hybrid index builds for partial indexes.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ea632e0e020c98e39b9c86f4e1f78fba7841e792&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ea632e0e020c98e39b9c86f4e1f78fba7841e792&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2285952" author="xgen-internal-githook" created="Fri, 14 Jun 2019 21:59:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; IndexCatalogImpl::_indexKeys() accepts document to be indexed&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4d4892bedbea98ff0bfba3f5d8443ca911877e21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4d4892bedbea98ff0bfba3f5d8443ca911877e21&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2285951" author="xgen-internal-githook" created="Fri, 14 Jun 2019 21:59:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; add multikey paths to MultikeyPathTracker::mergeMultikeyPaths() invariant message&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1822f7f35f4f86149c81ecbf753957beeebb825a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1822f7f35f4f86149c81ecbf753957beeebb825a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2285637" author="xgen-internal-githook" created="Fri, 14 Jun 2019 18:27:51 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; add regression tests for hyrid index builds.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/16538326c83b85c6f900085d612a3286f49b48e7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/16538326c83b85c6f900085d612a3286f49b48e7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2284186" author="benety.goh" created="Thu, 13 Jun 2019 22:26:33 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40825&quot; title=&quot;In-progress hybrid builds should only record the set difference of removed and inserted keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40825&quot;&gt;&lt;del&gt;SERVER-40825&lt;/del&gt;&lt;/a&gt; fixed some of the CI failures that led the to the commit 11f1122708d82b1e499fed6438854d08a55168d2 being reverted. This &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c557028f8458acacdd98f6549639310bc168e980/src/mongo/db/index/index_build_interceptor.cpp#L379&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;condition&lt;/a&gt; added to &lt;tt&gt;IndexBuildInterceptor::sideWrite()&lt;/tt&gt; would have skipped the multikey checks for unindexing operations that were problematic for the side table updates,&lt;/p&gt;</comment>
                            <comment id="2280378" author="benety.goh" created="Tue, 11 Jun 2019 21:27:16 +0000"  >&lt;p&gt;Reverted commit 11f1122708d82b1e499fed6438854d08a55168d2 due to failures in the CI system where the server hit the invariant in &lt;tt&gt;IndexBuildsInterceptor::sideWrite()&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="2280371" author="xgen-internal-githook" created="Tue, 11 Jun 2019 21:19:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; Always observe multikey changes in IndexBuildInterceptor::sideWrite.&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 11f1122708d82b1e499fed6438854d08a55168d2.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3bf31bf4a07c31365a4d9fd92e380bda0509e842&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3bf31bf4a07c31365a4d9fd92e380bda0509e842&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2279999" author="xgen-internal-githook" created="Tue, 11 Jun 2019 18:26:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; Always observe multikey changes in IndexBuildInterceptor::sideWrite.&lt;/p&gt;

&lt;p&gt;This re-applies commit 5bd904dff90a0e6332d6d4630053141e6617c5de with additional&lt;br/&gt;
change to the js test hybrid_sparse_multikey_index.js.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/11f1122708d82b1e499fed6438854d08a55168d2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/11f1122708d82b1e499fed6438854d08a55168d2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2279910" author="xgen-internal-githook" created="Tue, 11 Jun 2019 17:39:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; IndexCatalogImpl::_unindexRecord() checks filter before calling IndexBuildInterceptor::sideWrite()&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/17ec6e3bd06770c23090f4287adce13a5301a4d7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/17ec6e3bd06770c23090f4287adce13a5301a4d7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2279651" author="xgen-internal-githook" created="Tue, 11 Jun 2019 15:28:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;, &apos;username&apos;: &apos;benety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt; add js tests for hybrid index builds on sparse and partial geo ndexes&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/db93f75d7db3fbbef85c76238c388ce80e8a6d96&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/db93f75d7db3fbbef85c76238c388ce80e8a6d96&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2278754" author="benety.goh" created="Mon, 10 Jun 2019 23:54:35 +0000"  >&lt;p&gt;When adding keys to the index, we check the index filter in &lt;tt&gt;IndexCatalogImpl&lt;/tt&gt; before calling &lt;tt&gt;IndexBuildInterceptor::sideWrite()&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;However, when removing index keys, the filtering is handled by the &lt;tt&gt;IndexAccessMethod&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;To avoid hitting the invariant in the key removal case, it may be sufficient to check the filter for the partial index in &lt;tt&gt;IndexCatalogImpl::_unindexRecord()&lt;/tt&gt; to determine if it is necessary to call &lt;tt&gt;IndexBuildInterceptor::sideWrite()&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;See &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28975&quot; title=&quot;Cannot remove document with 2dsphere partialFilter index&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28975&quot;&gt;&lt;del&gt;SERVER-28975&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2188173" author="daniel.gottlieb@10gen.com" created="Thu, 21 Mar 2019 23:25:03 +0000"  >&lt;p&gt;The patch I attempted exposed a different problem (see linked BF-12249, though I didn&apos;t write up an observation of what that invariant failure means). This ticket is a bug that should be fixed prior to 4.2 being released. Getting the right fix in is tricky/a bit more time consuming because getting the correct multikey + multikeypath state for a set of documents wasn&apos;t meant to be accumulated in memory. My understanding of the code is that it expects changes to multikey to be persisted to disk after each document.&lt;/p&gt;

&lt;p&gt;This has been down prioritized in the short-term to keep focus on the flow control project. It&apos;s currently in the 04-08 sprint. I can try to knowledge share if there&apos;s a candidate for taking on this work sooner than that.&lt;/p&gt;</comment>
                            <comment id="2187860" author="april.schoffer" created="Thu, 21 Mar 2019 19:33:23 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt; can you give us an update on the status of this ticket?&lt;/p&gt;</comment>
                            <comment id="2159814" author="xgen-internal-githook" created="Fri, 22 Feb 2019 16:00:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt;: Always observe multikey changes in IndexBuildInterceptor::sideWrite.&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 5bd904dff90a0e6332d6d4630053141e6617c5de.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c5b27715bff29b0ea7ed01b613bcd47c8882361e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c5b27715bff29b0ea7ed01b613bcd47c8882361e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2158271" author="xgen-internal-githook" created="Thu, 21 Feb 2019 13:37:27 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39705&quot; title=&quot;IndexBuildInterceptor does not faithfully preserve multikey when a document generates no keys&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39705&quot;&gt;&lt;del&gt;SERVER-39705&lt;/del&gt;&lt;/a&gt;: Always observe multikey changes in IndexBuildInterceptor::sideWrite.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5bd904dff90a0e6332d6d4630053141e6617c5de&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5bd904dff90a0e6332d6d4630053141e6617c5de&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="377689">SERVER-28975</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="745166">SERVER-40825</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>23.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000s28tlQAA]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 21 Feb 2019 13:37:27 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 31 weeks, 2 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 31 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>57.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>april.schoffer@mongodb.com</customfieldvalue>
            <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huo8kn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr78mv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2762">Storage NYC 2019-02-25</customfieldvalue>
    <customfieldvalue id="2909">Storage NYC 2019-05-20</customfieldvalue>
    <customfieldvalue id="2983">Execution Team 2019-06-03</customfieldvalue>
    <customfieldvalue id="2984">Execution Team 2019-06-17</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11861" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>User Summary</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11856"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hunutz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>