<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:17:19 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-48507] Rethink wiredtiger_open contract</title>
                <link>https://jira.mongodb.org/browse/SERVER-48507</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;del&gt;&lt;tt&gt;unsupported WiredTiger file version&lt;/tt&gt; should be &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ec400290afe55c470cb14fbafb79e9f649d7cb1/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp#L414&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;added here&lt;/a&gt; and call &lt;tt&gt;setWtIncompatible&lt;/tt&gt;&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;del&gt;Consider having &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4ec400290afe55c470cb14fbafb79e9f649d7cb1/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp#L426&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Version incompatibility detected&lt;/a&gt; also &lt;tt&gt;setWtIncompatible&lt;/tt&gt;.&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;New description:&lt;br/&gt;
See how MongoDB and WT can cooperate to better express error cases on &lt;tt&gt;wiredtiger_open&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;MongoDB behaviors today that can hopefully be simplified:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;MongoDB tries calling &lt;tt&gt;wiredtiger_open&lt;/tt&gt; with a specific order of &quot;compatibility versions&quot; to learn the journal files WT discovered at startup.
	&lt;ul&gt;
		&lt;li&gt;Having a way to do this in one call would be great.&lt;/li&gt;
		&lt;li&gt;If multiple calls is still required, consider having a better way to suppress repeated &lt;a href=&quot;https://github.com/mongodb/mongo/blob/93a75ad40b00da1d30e5d01c26afda1488c9edf2/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp#L426-L428&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;compatibility error messages&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/93a75ad40b00da1d30e5d01c26afda1488c9edf2/src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp#L430-L437&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;This line specifically&lt;/a&gt; is for WT refusing to startup on 4.0 or earlier data files.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Knowing whether WT has modified data files.
	&lt;ul&gt;
		&lt;li&gt;When MongoDB is running with &lt;tt&gt;&amp;#45;&amp;#45;repair&lt;/tt&gt; it first creates a &quot;repair lock file&quot;. That lock file can be safely removed after repair completes.&lt;/li&gt;
		&lt;li&gt;However, it&apos;s typical that newer MongoDB versions can be used to repair older data (to help lessen the burden of backporting). It can be unclear if a &lt;tt&gt;wiredtiger_open&lt;/tt&gt; with &lt;tt&gt;salvage&lt;/tt&gt; fails because data was corrupted, or if WT refused to look at the data files because of a versioning error (e.g: 4.4 on 4.0 data files) that&apos;s outside of any compatibility constraint.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="1367048">SERVER-48507</key>
            <summary>Rethink wiredtiger_open contract</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="daniel.gottlieb@mongodb.com">Daniel Gottlieb</reporter>
                        <labels>
                    </labels>
                <created>Fri, 29 May 2020 20:28:32 +0000</created>
                <updated>Tue, 6 Dec 2022 02:25:25 +0000</updated>
                                                                            <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="3642427" author="sue.loverso" created="Tue, 2 Mar 2021 17:06:16 +0000"  >&lt;p&gt;This was a lot to page back into my head after 9 months. I think the crux of the issue is that MongoDB&apos;s code referenced in &lt;a href=&quot;https://jira.mongodb.org/browse/WT-6327?focusedCommentId=3148566&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3148566&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;this comment&lt;/a&gt; depends on WiredTiger performing version checks in a specific order and during that ticket changes to WT changed the order. That is where the fragility is.&lt;/p&gt;

&lt;p&gt;I think at some point a cross-team discussion and revisit of compatibility and versions should be done to see if there is a way to make this more robust. It is probably its own project.&lt;/p&gt;

&lt;p&gt;Some solutions could be something to do with error messages, or some way of changing the WT API so that it accepts a list of versions to check, all in one call, to remove the need for this sort of error checking in server code and repeated calls to &lt;tt&gt;wiredtiger_open&lt;/tt&gt; or something else we haven&apos;t thought of.&lt;/p&gt;</comment>
                            <comment id="3192942" author="daniel.gottlieb@10gen.com" created="Fri, 5 Jun 2020 18:08:09 +0000"  >&lt;p&gt;Removing 4.4 required. WT has put in a change that obviated the need for this. However, the API is fragile and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=sue.loverso&quot; class=&quot;user-hover&quot; rel=&quot;sue.loverso&quot;&gt;sue.loverso&lt;/a&gt; would like to revisit how MongoDB and WT communicate error cases on &lt;tt&gt;wiredtiger_open&lt;/tt&gt; and how we can make the API more expressive. The goal would be for MongoDB to remove code that changes behavior based on the log messages WT emits.&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">
                                        <issuelink>
            <issuekey id="1366144">WT-6327</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>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 1 Mar 2021 19:33:52 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 49 weeks, 1 day 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 49 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>sue.loverso@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxnrov:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr253z:</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_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

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

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