Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-15483

Calling advanceTo() with key where cursor is positioned hangs in mmapv1

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • 2.7.6
    • Storage

    Description

      Relevant snippet of test case extracted below:

      scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
      scoped_ptr<SortedDataInterface> sorted( harnessHelper->newSortedDataInterface() );
       
      scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
       
      WriteUnitOfWork uow( opCtx.get() );
      sorted->insert( opCtx.get(), key1, loc1, false );
      uow.commit();
       
      scoped_ptr<SortedDataInterface::Cursor> cursor( sorted->newCursor( opCtx.get(), 1 ) );
      cursor->locate( key1, loc1 );
       
      vector<const BSONElement*> keyEnd( 1 );
      vector<bool> keyEndInclusive( 1 );
       
      cursor->advanceTo( key1, 1, false, keyEnd, keyEndInclusive );

      The hang only occurs when advanceTo() is called on the key where the cursor is currently positioned, and that is the last entry in the index. For example, calling cursor->advanceTo(key2, 1, false, keyEnd, keyEndInclusive) instead positions the cursor correctly at EOF.

      Attachments

        Activity

          People

            max.hirschhorn@mongodb.com Max Hirschhorn
            max.hirschhorn@mongodb.com Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: