Skip to content

Investigate failure to load caches above 2^32 - 1 bytes #336

Description

@woodruffw

Opening this as a reminder to myself.

This is likely related to #238 and #200: some recent torch wheels are >= 2.5GB, and pip appears to download them repeatedly without hitting the cache. My only SWAG so far is that this is because the body itself overflows msgpack's signed 32 bit limit on binary objects, per the spec.

Haven't fully diagnosed yet.

See: https://news.ycombinator.com/item?id=40659973

Activity

  1. self-assigned this
    on Jun 12, 2024
  2. woodruffw commented on Jun 13, 2024

    @woodruffw
    MemberAuthor

    Looked some more into this: the person who reported this said that torch was serving 2 GB+ wheels, but I can't see any: https://pypi.org/project/torch/#files

    That being said, I suspect this is still causing unnecessary cache misses due to #200: we end up storing large downloads (such as 700 MB torche wheels) that never get "hit", since the default msgpack load behavior is to limit binary bodies to ~100MB: https://msgpack-python.readthedocs.io/en/latest/api.html

  3. woodruffw commented on Jun 13, 2024

    @woodruffw
    MemberAuthor

    Hmm, I've still been unable to trigger this: it looks like msgpack.loads(payload) sets its maximum limits based on len(payload), so we should never really hit a binary object limit in practice.

  4. pradyunsg commented on Jul 13, 2024

    @pradyunsg
    Contributor

    2^32 - 1 GB

    You spooked me -- you probably want to say bytes here.

  5. woodruffw commented on Jul 13, 2024

    @woodruffw
    MemberAuthor

    Indeed, sorry!

  6. changed the title [-]Investigate failure to load caches above `2^32 - 1` GB[/-] [+]Investigate failure to load caches above `2^32 - 1` bytes[/+] on Jul 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions