<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:05:14 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>[DOCS-12429] Incorrect description of behavior of fsyncLock with WT</title>
                <link>https://jira.mongodb.org/browse/DOCS-12429</link>
                <project id="10380" key="DOCS">Documentation</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Description&quot;&gt;&lt;/a&gt;Description&lt;/h2&gt;

&lt;p&gt;In our &lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/db.fsyncLock/#behavior&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;description of fsyncLock&lt;/a&gt; we say that fsyncLock ensures &quot;that the data files do not change&quot;, but I don&apos;t believe this is true: it only ensures that they don&apos;t change in a way that will corrupt a copy taken while the instance is fsyncLock&apos;ed.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;Scopeofchanges&quot;&gt;&lt;/a&gt;Scope of changes&lt;/h2&gt;
&lt;h2&gt;&lt;a name=&quot;ImpacttoOtherDocs&quot;&gt;&lt;/a&gt;Impact to Other Docs&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;Establish definition for &lt;tt&gt;fsynclock&lt;/tt&gt; with better examples of what it does/does not do&lt;/li&gt;
	&lt;li&gt;Document and backport.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;&lt;a name=&quot;MVP%28WorkandDate%29&quot;&gt;&lt;/a&gt;MVP (Work and Date)&lt;/h2&gt;
&lt;h2&gt;&lt;a name=&quot;Resources%28ScopeorDesignDocs%2CInvision%2Cetc.%29&quot;&gt;&lt;/a&gt;Resources (Scope or Design Docs, Invision, etc.)&lt;/h2&gt;</description>
                <environment></environment>
        <key id="684697">DOCS-12429</key>
            <summary>Incorrect description of behavior of fsyncLock with WT</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="9">Done</resolution>
                                        <assignee username="ravind.kumar">Ravind Kumar</assignee>
                                    <reporter username="bruce.lucas@mongodb.com">Bruce Lucas</reporter>
                        <labels>
                    </labels>
                <created>Wed, 6 Feb 2019 14:13:28 +0000</created>
                <updated>Mon, 30 Oct 2023 20:46:34 +0000</updated>
                            <resolved>Mon, 11 Feb 2019 17:27:08 +0000</resolved>
                                                    <fixVersion>Server_Docs_20231030</fixVersion>
                                    <component>manual</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2145245" author="xgen-internal-githook" created="Mon, 11 Feb 2019 22:16:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rkumar-mongo&apos;, &apos;email&apos;: &apos;ravind.kumar@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-12429&quot; title=&quot;Incorrect description of behavior of fsyncLock with WT&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-12429&quot;&gt;&lt;del&gt;DOCS-12429&lt;/del&gt;&lt;/a&gt;: Clarify fsync/db.fsyncLock data file lock behavior&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/d9aee3d9176dd2adecbe7c61b9b68b54a4d80642&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/d9aee3d9176dd2adecbe7c61b9b68b54a4d80642&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2144628" author="ravind.kumar" created="Mon, 11 Feb 2019 17:27:30 +0000"  >&lt;p&gt;Changes published to &lt;tt&gt;master/v4.0&lt;/tt&gt; -&amp;gt; &lt;tt&gt;v3.2&lt;/tt&gt;. &lt;/p&gt;</comment>
                            <comment id="2144625" author="xgen-internal-githook" created="Mon, 11 Feb 2019 17:26:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rkumar-mongo&apos;, &apos;email&apos;: &apos;ravind.kumar@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-12429&quot; title=&quot;Incorrect description of behavior of fsyncLock with WT&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-12429&quot;&gt;&lt;del&gt;DOCS-12429&lt;/del&gt;&lt;/a&gt;: Clarify fsync/db.fsyncLock data file lock behavior&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/10778a2ae1656da089c7b3321161c4d38f0da5c5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/10778a2ae1656da089c7b3321161c4d38f0da5c5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2144624" author="xgen-internal-githook" created="Mon, 11 Feb 2019 17:26:13 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rkumar-mongo&apos;, &apos;email&apos;: &apos;ravind.kumar@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-12429&quot; title=&quot;Incorrect description of behavior of fsyncLock with WT&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-12429&quot;&gt;&lt;del&gt;DOCS-12429&lt;/del&gt;&lt;/a&gt;: Clarify fsync/db.fsyncLock data file lock behavior&lt;br/&gt;
Branch: v3.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/30a9472376c4a4fa5c703e6baeea19e6dd6010a1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/30a9472376c4a4fa5c703e6baeea19e6dd6010a1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2144497" author="xgen-internal-githook" created="Mon, 11 Feb 2019 16:31:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rkumar-mongo&apos;, &apos;email&apos;: &apos;ravind.kumar@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-12429&quot; title=&quot;Incorrect description of behavior of fsyncLock with WT&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-12429&quot;&gt;&lt;del&gt;DOCS-12429&lt;/del&gt;&lt;/a&gt;: Clarify fsync/db.fsyncLock data file lock behavior&lt;br/&gt;
Branch: v3.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/e454095c47cfa8bdf93d3ebb834d3d75aa0290c7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/e454095c47cfa8bdf93d3ebb834d3d75aa0290c7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2144280" author="xgen-internal-githook" created="Mon, 11 Feb 2019 15:28:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rkumar-mongo&apos;, &apos;email&apos;: &apos;ravind.kumar@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-12429&quot; title=&quot;Incorrect description of behavior of fsyncLock with WT&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-12429&quot;&gt;&lt;del&gt;DOCS-12429&lt;/del&gt;&lt;/a&gt;: Clarify fsync/db.fsyncLock data file lock behavior&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/docs/commit/57e34e7d86d556297e1330904a66f39be45b749a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/docs/commit/57e34e7d86d556297e1330904a66f39be45b749a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2141058" author="alexander.gorrod" created="Thu, 7 Feb 2019 15:41:16 +0000"  >&lt;blockquote&gt;&lt;p&gt;From a documentation perspective I think what we need to say is that under WT fsyncLock does not prevent the data files from changing, but it does ensure that it is safe to copy the files even though they may change during the process.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That sounds like an accurate description to me.&lt;/p&gt;</comment>
                            <comment id="2139745" author="bruce.lucas@10gen.com" created="Wed, 6 Feb 2019 17:10:40 +0000"  >&lt;p&gt;OK. From a documentation perspective I think what we need to say is that under WT fsyncLock does not prevent the data files from changing, but it does ensure that it is safe to copy the files even though they may change during the process.&lt;/p&gt;

&lt;p&gt;The importance of the distinction is illustrated by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37814&quot; title=&quot;db.fsyncLock() do not prevent writes to database on a separate filesystem&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37814&quot;&gt;&lt;del&gt;SERVER-37814&lt;/del&gt;&lt;/a&gt;: some backup programs, including tar, will notice that the files have changed and complain, and users see this as a problem because it differs from the documentation. (Some backup programs might even fail in this case, I think, and if so that would make fsyncLock problematic, but that&apos;s a different topic.)&lt;/p&gt;</comment>
                            <comment id="2139722" author="daniel.gottlieb@10gen.com" created="Wed, 6 Feb 2019 17:00:41 +0000"  >&lt;blockquote&gt;
&lt;p&gt;there is something you need to do via the WT API to ensure correct hot backup conditions&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;As a clarification, I wouldn&apos;t consider these hot backups. The system is up, but it is not accepting any writes. There&apos;s a 4.2 (completed) project that allows file system copies while still accepting writes. It uses the same WT backup cursor technique under the hood, just without taking a global X lock.&lt;/p&gt;</comment>
                            <comment id="2139715" author="daniel.gottlieb@10gen.com" created="Wed, 6 Feb 2019 16:58:14 +0000"  >&lt;p&gt;Yes, we create a backup cursor on WT. That call is what satisfies the second property.&lt;/p&gt;</comment>
                            <comment id="2139659" author="daniel.gottlieb@10gen.com" created="Wed, 6 Feb 2019 16:27:34 +0000"  >&lt;p&gt;&lt;del&gt;That&apos;s getting rather in the weeds. I don&apos;t think it&apos;s useful to describe &quot;which bytes can change on disk&quot;, nor do I think that&apos;s a stable contract.&lt;/del&gt; I may have misread the request. Logical means nothing the user should care about. It&apos;s the data the user interfaces with (the stuff they insert/read/update/delete/aggregate/map reduce along with the collections/indexes/constraints they make).&lt;/p&gt;

&lt;p&gt;I&apos;d prefer if the documentation stipulated two things:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The logical data (as in, what can be queried from a client) will not change.&lt;/li&gt;
	&lt;li&gt;The files on disk can be copied elsewhere. Starting up a mongod on those files (using flags that go through all recovery processes, which we can provide more information on what that means) will have data that&apos;s indistinguishable from the node which is &lt;tt&gt;fsyncLocked&lt;/tt&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It&apos;s probably best to caveat data down to &quot;what users put into the database&quot; and not internal writes. Examples of internal writes include update to &lt;tt&gt;&amp;lt;database&amp;gt;.system.* collections&lt;/tt&gt; and replication related collections in the &lt;tt&gt;local&lt;/tt&gt; database. I don&apos;t think* any of those can be occur while the system is &lt;tt&gt;fsyncLocked&lt;/tt&gt;, but stating so seems like an unnecessary thing to guarantee.&lt;/p&gt;</comment>
                            <comment id="2139595" author="ravind.kumar" created="Wed, 6 Feb 2019 15:50:32 +0000"  >&lt;p&gt;Can we define or maybe spitball some examples of &apos;logical changes&apos; that would not occur? That I think might be more useful for users as far as conceptualizing exactly what &lt;tt&gt;fsynclock&lt;/tt&gt; does and does not do. Or does journal flushes + checkpoints more or less cover what &lt;tt&gt;fsynclock&lt;/tt&gt; does allow. &lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="623429">SERVER-37814</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>12.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 6 Feb 2019 14:46:50 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>DOCSP-1769</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>emet.ozar@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alexander.gorrod@mongodb.com</customfieldvalue>
            <customfieldvalue>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>ravind.kumar</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huldv3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hub84f:</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_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hul04f:</customfieldvalue>

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