Skip to content

Upgrade jemalloc, re-enable Windows GNU #31030

Closed

Description

@alexcrichton

As of the time of this writing, we are running jemalloc at the revision rust-lang/jemalloc@91010a9 which I believe is the 4.0.4 release of jemalloc. Previously we were running rust-lang/jemalloc@e24a1a0 which I believe is somewhere in the 3.6 series. We attempted to upgrade jemalloc many times between these two commits eventually reaching the conclusion that the previous behavior of --enable-lazy-lock on Windows is fundamentally racy in jemalloc right now unfortunately. This led to a successful upgrade of jemalloc to where we are today.

Unfortunately, however, there is a deadlock in jemalloc 4.0.4 so we are attempting to downgrade back to 3.6. There were no known problems other than some Windows issues with jemalloc 3.6, so we believe it'll be fine for awhile. In this downgrade, however, it appears that the implementation of --disable-lazy-lock is somewhat broken as well, causing the initial downgrade to fail to land.

As a result, the downgrade attempt will disable jemalloc on Windows entirely. This issue will track re-enabling it on Windows as well as re-upgrading once the deadlock bug is fixed. As far as I know the only reason to not enable Windows is that lots of locking support was improved in 4.0.*, and the only reason to not upgrade immediately is the deadlock bugs we've encountered.

Activity

  1. alexcrichton commented on Jan 19, 2016

    @alexcrichton
    MemberAuthor

    FWIW one of my Rust projects with CI-every-night has started deadlocking recently, and after some investigation it turned up the exact same stack trace as rustdoc itself, so that's at least another data point for the deadlock in jemalloc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions