<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:53:27 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-228] make sure when running out of space in 32-bit mode, corruption doesn&apos;t occur</title>
                <link>https://jira.mongodb.org/browse/SERVER-228</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description></description>
                <environment></environment>
        <key id="10432">SERVER-228</key>
            <summary>make sure when running out of space in 32-bit mode, corruption doesn&apos;t occur</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="eliot">Eliot Horowitz</reporter>
                        <labels>
                    </labels>
                <created>Tue, 11 Aug 2009 10:40:46 +0000</created>
                <updated>Thu, 14 Apr 2016 15:19:30 +0000</updated>
                            <resolved>Tue, 17 Nov 2015 21:47:19 +0000</resolved>
                                                                    <component>Stability</component>
                                        <votes>4</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1091098" author="eliot" created="Tue, 17 Nov 2015 21:47:19 +0000"  >&lt;p&gt;we do not support 32-bit anymore, so this is not relevant&lt;/p&gt;</comment>
                            <comment id="12138" author="auto" created="Thu, 4 Feb 2010 22:01:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;login&apos;: &apos;astaple&apos;, &apos;name&apos;: &apos;Aaron&apos;, &apos;email&apos;: &apos;aaron@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-228&quot; title=&quot;make sure when running out of space in 32-bit mode, corruption doesn&amp;#39;t occur&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-228&quot;&gt;&lt;del&gt;SERVER-228&lt;/del&gt;&lt;/a&gt; update test t now that we don&apos;t exit when disk is full&lt;br/&gt;
&lt;a href=&quot;http://github.com/mongodb/mongo/commit/e5a49e306fd7bf199493ae469d3bb3636ab79cf3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://github.com/mongodb/mongo/commit/e5a49e306fd7bf199493ae469d3bb3636ab79cf3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="11705" author="aaron" created="Mon, 11 Jan 2010 14:26:10 +0000"  >&lt;p&gt;I went ahead and pushed the cleaner response to running out of disk space (assert rather than simply exit) since that seems like an improvement regardless.&lt;/p&gt;</comment>
                            <comment id="11704" author="auto" created="Mon, 11 Jan 2010 14:24:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Aaron&apos;, &apos;email&apos;: &apos;aaron@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-228&quot; title=&quot;make sure when running out of space in 32-bit mode, corruption doesn&amp;#39;t occur&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-228&quot;&gt;&lt;del&gt;SERVER-228&lt;/del&gt;&lt;/a&gt; assert rather than exit when run out of disk space&lt;br/&gt;
&lt;a href=&quot;http://github.com/mongodb/mongo/commit/d377e7ad992b5fe515525da68e4ef44349818c7b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://github.com/mongodb/mongo/commit/d377e7ad992b5fe515525da68e4ef44349818c7b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="11699" author="eliot" created="Mon, 11 Jan 2010 13:14:21 +0000"  >&lt;p&gt;Ok. Def don&apos;t want transaction log right now so deferring&lt;/p&gt;</comment>
                            <comment id="11696" author="aaron" created="Mon, 11 Jan 2010 12:37:15 +0000"  >&lt;p&gt;Not trying to beat a dead horse, but here&apos;s what I was thinking with the transaction log:&lt;/p&gt;

&lt;p&gt;If the transaction log is supposed to prevent inconsistent data when the db stops running suddenly, then it should prevent partial execution of commands.  One way to do this would be to write only to the transaction log while running a command, then apply writes from the log in order to commit the command&apos;s changes.  We would allocate and mmap every disk pointer in the transaction log before attempting to write any of the log in order to prevent out of memory / out of space problems.  (Any such error and we&apos;d simply not write the transaction log operations to disk.)  Might be some issues with the size of the transaction log - I don&apos;t know if that is going to be limited somehow.&lt;/p&gt;

&lt;p&gt;It seems like the only alternative to this approach for dealing with partial commands resulting when the db stops suddenly is to implement command rollback / completion for a fresh db instance &amp;#8211; the next time the db starts, it will clean up or complete an interrupted command.  Since the new db instance (currently) lacks information on the context in which the command was originally run, this might require a fair amount of work to implement.  If we do plan to go this route though, then implementing rollback on mmap / disk allocation failure would be a place to start.&lt;/p&gt;

&lt;p&gt;The first step in any case should be to make running out of disk space no worse than an mmap failure - should just assert through the same call hierarchy.  I&apos;ll start by implementing that.&lt;/p&gt;</comment>
                            <comment id="11639" author="eliot" created="Tue, 5 Jan 2010 22:29:00 +0000"  >&lt;p&gt;Maybe - but I don&apos;t think that&apos;s the right solution to this problem.&lt;br/&gt;
I think we should handle for real.&lt;br/&gt;
Alos, even with a transaction log, could be bad.  You&apos;ll come back up ok, but then just keep crashing over and over. &lt;/p&gt;</comment>
                            <comment id="11637" author="aaron" created="Tue, 5 Jan 2010 22:19:09 +0000"  >&lt;p&gt;So right now running out of disk space is even worse - pre allocation threads just exit the process once they run out of space, and this can happen at any time regardless of what the db is doing, just like an unfriendly process kill.&lt;/p&gt;

&lt;p&gt;I remember at one point we were considering implementing a transaction log in order to fix up corruption caused by a dying db.  Is that still planned?&lt;/p&gt;</comment>
                            <comment id="11635" author="eliot" created="Tue, 5 Jan 2010 21:58:29 +0000"  >&lt;p&gt;How do we handle running out of disk space?&lt;br/&gt;
Should be fairly similar, no?&lt;br/&gt;
if we have problems with that, then we have problems with this unless we cheat via pre-alloc, but i think it ends up at the same place.&lt;/p&gt;

&lt;p&gt;If so - we should try and figure out all the cases, and at the very least enumerate them all and figure out how hard it is to fix.&lt;/p&gt;</comment>
                            <comment id="11634" author="aaron" created="Tue, 5 Jan 2010 20:15:51 +0000"  >&lt;p&gt;So what is meant by corruption here?  Theoretically, any command that saves some data to a non capped collection (and there are plenty of these) could trigger an mmap exception and leave the db in an inconsistent state as a result of the command being partially completed.&lt;/p&gt;

&lt;p&gt;It seems reasonable to handle certain cases - for example, rolling back creation of a namespace if file allocation fails while we&apos;re part way through allocating extents, but I don&apos;t know if we want to guard every programmatic write.&lt;/p&gt;
</comment>
                            <comment id="10847" author="dwight_10gen" created="Mon, 5 Oct 2009 10:49:19 +0000"  >&lt;p&gt;a problem with create index failing has been taking care of.&lt;/p&gt;

&lt;p&gt;however, there may be other issues (unclear) still pending.&lt;/p&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="21106">SERVER-3625</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11.0</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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 5 Oct 2009 10:49:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        8 years, 13 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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 13 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>aaron</customfieldvalue>
            <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>dwight@mongodb.com</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpwp3:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6358</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_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_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht0q33:</customfieldvalue>

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