Skip to content

System.Memory binding #3055

Closed
Closed

Description

@jcaspes

Hello @mgravell

After upgrading to Release version 2.12.14, a binding error appear when including StackExchange.Redis in a .net 4.8 project.
Indeed, by looking dependencies, we can see that two versions of System.Memory is now used:

Image

The new reference to System.IO.Hashing in this commit (94e0090 and c979c6b), have introduced system.memory V 4:0:1:2 but System.IO.pipeline.dll 2.2.8 from your unoficial pipeline package reference system.memory 4:0:1:1.

I made a PR that fix this issue, your pipeline package version 2.2.16 fix the dependency, but also needed to upgrade Microsoft.Bcl.AsyncInterfaces and Microsoft.Extensions.Logging.Abstractions

Activity

  1. NickCraver commented on Apr 14, 2026

    @NickCraver
    Collaborator

    You're in need of a proper binding redirect, these are generally generated for you automatically. The fix is never for every package to upgrade (that would require all package combinations in the world to agree).

    This comes up often enough we made a post for it: https://nickcraver.com/blog/2020/02/11/binding-redirects/

  2. jcaspes commented on Apr 14, 2026

    @jcaspes
    ContributorAuthor

    Yes, I know, but as I explained, we have a lot of tools that didn't have a .config file or a bindingredirect until now.

    That's why I tried to figure out where the problem came from after upgrading StackExchange.Redis from 2.9.32 to 2.12.14 to avoid starting with redirect, to stay "clean" ;-).

    Also i think that in this case it's not a "all package combinations in the world to agree" but just StackExchange.Redis that is not agree with it's own dependencies :-) like you can see in my screenshot in this issue first post or with the simple 4.8 project that only reference StackExchange.Redis 2.12.14 here : #3056 (comment)

    And this is due to the recent inclusion of System.IO.Hashing of SDK 9 here 94e0090 so there is a mix of SDK versions.

  3. mgravell commented on Apr 16, 2026

    @mgravell
    Collaborator

    (just for clarity: many of my thoughts are shown on the PR)

  4. mgravell commented on Jul 22, 2026

    @mgravell
    Collaborator

    Thanks for the report. StackExchange.Redis 3.0 ships a substantial rewrite of the low-level IO core — a new RESPite-based stack that replaces Pipelines.Sockets.Unofficial and the old backlog/write loop — and we're confident this issue is addressed by that work.

    Closing as resolved in 3.0. If you can still reproduce on 3.0.x, please comment and we'll reopen and investigate with fresh diagnostics.

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