Skip to content

Lemonade should be more resilient downloading models #1546

Description

@littlett77

Platform

Linux/Ubuntu

Lemonade Version

10.0.1

GPU / APU Model

strix halo

Component

Desktop App / UI

Bug Description

  1. in the event of a network interruption (frequently happening here) occurring during a "lemonade(server) pull" for some model, eventual subsequent retries to download the same not yet fully retrieved model, lemonade should not erase the already partially retrived model but it should instead just continue to download it from where it was left, appending to the remaining part of the same model

  2. when a network interruption as above described occurs leaving a partially downloaded model in a uncompleted state, lemonade should not show the model as if it was fully retrieved and ready to be run/served

  3. should the user deliberately interrupt some model downloading process using ctrl-c, model file and other files relics are left dangling into the relative directory such that when invoking lemonade (even for just printing the list of available/downloaded models names), it crashes in that precise listing position requiring the user to remove the uncompleted model directory in order to be able to run lemonade stuff again

Steps to Reproduce

  1. lemonade-server serve
  2. lemonade(-server) pull *
    *. btw, why NPU models listed/pulled/run/served from lemonade(-server) and flm aren't named exactly the same?
  3. [optional] disconnect from the net or interrupt w/ ctrl-c

Expected vs Actual Behavior

Lemonade should check if a model has been really fully retrieved (maybe checksumming it or by creating a lock file at pull start and removing it after downloading 100%); in case it was not completed it should ask the user to continue retriving it, to clear the model's directory or to skip. In any case and especially in this last case, lemonade should also skip a model directory if it contains partially retrieved files affecting lemonade itself ability to run

Log Output

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions