Permalink
Commits on May 9, 2012
  1. SERVER-5805 -- Fix error uncovered by dur_passthrough fsync.js.

    When a Lock::GlobalWrite goes out of scope, it must uncondtionally undo any greediness changes made
    when the Lock::GlobalWrite was constructed.  If the object stopped greed at construction, was subsequently
    downgraded to global read state ('R'), and then went out of scope, it must do extra work to ensure that
    greed is restarted.  This change reintroduces that extra work, which was erroneously removed in an earlier
    patch.
    andy10gen committed May 9, 2012
  2. Updating packager.py to use the correct GPG signing key instead of th…

    …e last person to update the Changelog
    miketheman committed May 9, 2012
  3. Remove LockStepWriteUpgradeTest from dbtests/threadedtests, because i…

    …t deadlocks.
    
    This test deadlocks against the durability thread because its design isn't prepared for the existence of
    threads that aren't participating in the test.
    andy10gen committed May 9, 2012
  4. Fix issues in MemoryMappedFile::map (Windows)

    Add fassert on failure of CreateFileMapping.  Improve
    error reporting on API failures.  Fix incorrect "length"
    displayed for failure of MapViewOfFile().  Use "W" version
    of some Windows APIs so we are not sensitive to the state
    of the UNICODE macro: use toWideString instead of
    toNativeString for the same reason.
    tadmarshall committed May 8, 2012
  5. increase StackChecker maximum to 256KB. used for _DEBUG builds

    also call stackCheck from various places inside the c++ unit tests so we can see what they use
    here's a few actuals from a test run on windows debug 64 bit build:
    
    test basic 22KB
    test pdfile 36KB
    test btree 36KB
    test jsobj 156KB (?)
    test query 43KB
    test perf 170KB
    test perf insert-big 209KB
    dwight committed May 9, 2012
  6. fix isnan for Windows

    milkie committed May 9, 2012
  7. fix conflicting assert ids

    milkie committed May 9, 2012
  8. Fix remap private view memory leak and formalize w->X ugprade process.

    Makes the upgrade R_to_W() block until it succeeds.
    
    Replaces "runExclusively" with a new "X" state, which is equivalent to "W", but
    can only be reached from "w".  Client code in "w" calls "w_to_X()", which blocks
    until all other threads in "w" call w_to_X() or call unlock_w().  At that point,
    exactly one thread returns from w_to_X() with return value "true".  This thread
    is the "exclusive writer", and may behave like it's in "W" state.  When that
    thread calls "X_to_w()", it reverts to "w" state, and releases all the other
    threads that called w_to_X() back into "w" state.
    
    Because X_to_w() is effectively a barrier, we use generation counters to make
    sure that fast racers don't cause deadlocks or race through the barrier.  The
    generation counters are generationX and generationXExit.
    
    Use of w_to_X() is wrapped in the Lock::DBWrite::UpgradeToExclusive() guard
    object, which has a "gotUpgrade()" method to check if a particular thread was
    the exclusive worker for the upgrade period.
    
    Decision making about which condition variables to notify is more fully
    delegated to the notifyWeUnlocked() method of QLock, to eliminate some
    inadvertent deadlocks due that surfaced when R_to_W() was made to wait until
    success.
    
    May help SERVER-5533, because it fixes a greediness logic bug exercised by
    fsync-and-lock.
    
    This patch also introduces a directed test of the w->X functionality,
    though it could use the addition of of extra "noise" work.
    andy10gen committed May 4, 2012
  9. SERVER-5475 out-parameter should be a ref

    Greg Studer committed May 9, 2012
Commits on May 8, 2012
  1. SERVER-5746 Wrong initialization for ReplicaSetMonitor Nodes

    Modified the initialization of the ok member variable of ReplicaSetMonitor::Node to true if conn smart pointer is not null.
    renctan committed May 3, 2012
  2. comment

    dwight committed May 8, 2012
  3. durThread should try to commit sooner if data is piling up. hopefully…

    … then a commitIfNeeded invocation, which is uglier, is then avoided
    dwight committed May 8, 2012
  4. the less #ifs the better

    dwight committed May 8, 2012
  5. tab minor

    dwight committed May 8, 2012
Commits on May 7, 2012
  1. Include only what you use

    andy10gen committed May 5, 2012
  2. Visual Studio -- precompiled headers

    Turn off precompiled headers for all Visual Studio
    projects to match the current scons behavior.  Add
    db/lockstat.cpp and db/lockstate.cpp where needed.
    tadmarshall committed May 7, 2012
  3. fix verison number conflict

    erh committed May 7, 2012
  4. include what you need

    erh committed Apr 28, 2012