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

tcmalloc issues with OS X 10.10

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 2.8.0-rc0
    • Fix Version/s: 2.8.0-rc1
    • Component/s: Internal Code
    • Labels:
      None
    • Operating System:
      ALL
    • Steps To Reproduce:
      Hide

      Running this like so will reproduce the problem (the third fork will fail)
      ./mongo --nodb test.js

      You can even replace the "mongod" binary with "true" and it will still fail.

      var name = "mixed_storage_and_version";
      var oldVersion = "2.6";
      var newVersion = "latest";
       
      var nodes = {
          n0: {binVersion: newVersion},
          n1: {binVersion: newVersion},
          n2: {binVersion: newVersion}
      };
      printjson(nodes);
       
      var replTest = new ReplSetTest({nodes: nodes, name: name});
      var conns = replTest.startSet();

      Show
      Running this like so will reproduce the problem (the third fork will fail) ./mongo --nodb test.js You can even replace the "mongod" binary with "true" and it will still fail. var name = "mixed_storage_and_version"; var oldVersion = "2.6"; var newVersion = "latest";   var nodes = { n0: {binVersion: newVersion}, n1: {binVersion: newVersion}, n2: {binVersion: newVersion} }; printjson(nodes);   var replTest = new ReplSetTest({nodes: nodes, name: name}); var conns = replTest.startSet();

      Description

      The mongodb shell has the ability to fork new processes as part of our testing framework. After upgrading to OS X 10.10, I discovered that the shell now has odd behavior when forking: after forking successfully two times, the third fork fails. After calling the fork() function call, the parent receives a pid but the child never starts running and does not appear in a 'ps' process list.
      dtruss never shows the third fork system call completing, although it does show that the child process with the new pid is blocked on an internal semaphore.

      Compiling with --allocator=system seems to avoid this issue. Note that MCI builds already build binaries for Mac OS X without tcmalloc.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              acm Andrew Morrow
              Reporter:
              milkie Eric Milkie
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: