[GH-ISSUE #3297] Do not allow upper-case letters in the model path #64066

Closed
opened 2026-05-03 16:02:26 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @d3cker on GitHub (Mar 22, 2024).
Original GitHub issue: https://github.com/ollama/ollama/issues/3297

What is the issue?

Hello community.
I'm using locally hosted Docker repository on Synology NAS. Unfortunately I have an issue with one particular model: wizardcoder-python-13b-v1.0.Q6_K.gguf

$ sha256sum wizardcoder-python-13b-v1.0.Q6_K.gguf
a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b  wizardcoder-python-13b-v1.0.Q6_K.gguf

Stored in ollama as:

$ ls -l ~/.ollama/models/blobs/sha256-a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b
-rw------- 1 d3cker users 10679148768 mar 22 00:07 .ollama/models/blobs/sha256-a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b

Model is accessible so I can run it:

$ ollama run synology:8500/wizardcoder/wizardcoder-python13B:latest 
>>> Hi.
Hello, how can I assist you today? 

>>> Send a message (/? for help)

When I try to push this model to the repository I receive this error:
Client:

$ ollama push synology:8500/wizardcoder/wizardcoder-python13B:latest --insecure
retrieving manifest 
Error: file does not exist

Server (with some extra info printed in upload.go and images.go):

[GIN] 2024/03/22 - 17:15:36 | 200 |      29.936µs |       127.0.0.1 | HEAD     "/"
time=2024-03-22T17:15:36.634+01:00 level=INFO source=images.go:960 msg="error uploading blob: &{application/vnd.ollama.image.model sha256:a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b 10679148768  }"
time=2024-03-22T17:15:36.634+01:00 level=INFO source=images.go:961 msg="error uploading blob: {https synology:8500 wizardcoder wizardcoder-python13B latest}"
upload.go: mp.BaseURL: https://synology:8500
upload.go: requestURL: https://synology:8500/v2/wizardcoder/wizardcoder-python13B/blobs/sha256:a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b
time=2024-03-22T17:15:36.652+01:00 level=INFO source=images.go:1141 msg="RESP: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[19] Content-Type:[text/plain; charset=utf-8] Date:[Fri, 22 Mar 2024 16:15:36 GMT] Docker-Distribution-Api-Version:[registry/2.0] X-Content-Type-Options:[nosniff]] {} 19 [] false false map[] 0xc000434480 <nil>}"
upload.go: resp: <nil>
upload.go: err: file does not exist
time=2024-03-22T17:15:36.654+01:00 level=INFO source=images.go:1141 msg="RESP: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[19] Content-Type:[text/plain; charset=utf-8] Date:[Fri, 22 Mar 2024 16:15:36 GMT] Docker-Distribution-Api-Version:[registry/2.0] X-Content-Type-Options:[nosniff]] 0xc000516540 19 [] false false map[] 0xc00017dc20 <nil>}"
time=2024-03-22T17:15:36.654+01:00 level=INFO source=images.go:963 msg="error uploading blob: file does not exist"
[GIN] 2024/03/22 - 17:15:36 | 200 |   20.234864ms |       127.0.0.1 | POST     "/api/push"

What did you expect to see?

I don't have that issue with other models. For example:
Model: https://huggingface.co/TheBloke/open-llama-3b-v2-wizard-evol-instuct-v2-196k-GGUF/blob/main/open-llama-3b-v2-wizard-evol-instuct-v2-196k.Q8_0.gguf

$ sha256sum open-llama-3b-v2-wizard-evol-instuct-v2-196k.Q8_0.gguf 
07bf92495e6310bc343e116089c5c656caf2e8ee479d30eec2804d5a685cc496  open-llama-3b-v2-wizard-evol-instuct-v2-196k.Q8_0.gguf 

Client:

$ ollama push synology:8500/openllama/openllama-3b-v2:latest --insecure
retrieving manifest 
pushing 07bf92495e63... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 3.6 GB                         
pushing d19d7b5ba224... 100% ▕████████████████████████████████████████████████████████████████████████████▏   56 B                         
pushing 6463b496ea44... 100% ▕████████████████████████████████████████████████████████████████████████████▏  146 B                         
pushing c5d3c17f2d37... 100% ▕████████████████████████████████████████████████████████████████████████████▏   40 B                         
pushing fb890504d5eb... 100% ▕████████████████████████████████████████████████████████████████████████████▏  483 B                         
pushing manifest 
success

Server:

[GIN] 2024/03/22 - 17:12:58 | 200 |      42.459µs |       127.0.0.1 | HEAD     "/"
time=2024-03-22T17:12:58.425+01:00 level=INFO source=images.go:960 msg="error uploading blob: &{application/vnd.ollama.image.model sha256:07bf92495e6310bc343e116089c5c656caf2e8ee479d30eec2804d5a685cc496 3641876224  }"
time=2024-03-22T17:12:58.425+01:00 level=INFO source=images.go:961 msg="error uploading blob: {https synology:8500 openllama openllama-3b-v2 latest}"
upload.go: mp.BaseURL: https://synology:8500
upload.go: requestURL: https://synology:8500/v2/openllama/openllama-3b-v2/blobs/sha256:07bf92495e6310bc343e116089c5c656caf2e8ee479d30eec2804d5a685cc496
time=2024-03-22T17:12:58.432+01:00 level=INFO source=images.go:1141 msg="RESP: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[157] Content-Type:[application/json; charset=utf-8] Date:[Fri, 22 Mar 2024 16:12:58 GMT] Docker-Distribution-Api-Version:[registry/2.0] X-Content-Type-Options:[nosniff]] {} 157 [] false false map[] 0xc00058e480 <nil>}"
upload.go: resp: <nil>
upload.go: err: file does not exist
time=2024-03-22T17:12:58.618+01:00 level=INFO source=images.go:1141 msg="RESP: &{202 Accepted 202 HTTP/1.1 1 1 map[Content-Length:[0] Date:[Fri, 22 Mar 2024 16:12:58 GMT] Docker-Distribution-Api-Version:[registry/2.0] Docker-Upload-Uuid:[da6074c8-9cc1-4e7f-afda-073b7ad82bdb] Location:[http://synology:8500/v2/openllama/openllama-3b-v2/blobs/uploads/da6074c8-9cc1-4e7f-afda-073b7ad82bdb?_state=UV5vI2Bjtem4F0vEIVnIapqAC8hrPQZu4w4GbzhXEY57Ik5hbWUiOiJvcGVubGxhbWEvb3BlbmxsYW1hLTNiLXYyIiwiVVVJRCI6ImRhNjA3NGM4LTljYzEtNGU3Zi1hZmRhLTA3M2I3YWQ4MmJkYiIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNC0wMy0yMlQxNjoxMjo1OC4zMzgxNzI1ODJaIn0%3D] Range:[0-0] X-Content-Type-Options:[nosniff]] {} 0 [] false false map[] 0xc00017c5a0 <nil>}"
time=2024-03-22T17:12:58.618+01:00 level=INFO source=upload.go:109 msg="uploading 07bf92495e63 in 37 100 MB part(s)"

Steps to reproduce

  • Deploy registry in a container
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
FROM ./wizardcoder-python-13b-v1.0.Q6_K.gguf


TEMPLATE """{{ .System }}

### Instruction:
{{ .Prompt }}

### Response:
"""

SYSTEM """
Below is an instruction that describes a task. Write a response that appropriately completes the request.
"""

PARAMETER stop "### Instruction:"
PARAMETER stop "### Response:"
  • Create model on ollama server:
$ ollama create localhost:5000/wizardcoder/wizardcoder-python13B:latest --insecure-f Modelfile
  • Push model to local registry:
$ ollama push localhost:5000/wizardcoder/wizardcoder-python13B:latest --insecure

Are there any recent changes that introduced the issue?

I'm not sure if there was any change that introduced the issue. I tried several previous commits and I always end up with the same error.

OS

Linux

Architecture

x86_64

Platform

No response

Ollama version

0.0.0 (commit a5ba0fcf78)

GPU

AMD

GPU info

ROCk module is loaded
=====================    
HSA System Attributes    
=====================    
Runtime Version:         1.1
System Timestamp Freq.:  1000.000000MHz
Sig. Max Wait Duration:  18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model:           LARGE                              
System Endianness:       LITTLE                             
Mwaitx:                  DISABLED
DMAbuf Support:          YES

==========               
HSA Agents               
==========               
*******                  
Agent 1                  
*******                  
  Name:                    Intel(R) Core(TM) i9-10940X CPU @ 3.30GHz
  Uuid:                    CPU-XX                             
  Marketing Name:          Intel(R) Core(TM) i9-10940X CPU @ 3.30GHz
  Vendor Name:             CPU                                
  Feature:                 None specified                     
  Profile:                 FULL_PROFILE                       
  Float Round Mode:        NEAR                               
  Max Queue Number:        0(0x0)                             
  Queue Min Size:          0(0x0)                             
  Queue Max Size:          0(0x0)                             
  Queue Type:              MULTI                              
  Node:                    0                                  
  Device Type:             CPU                                
  Cache Info:              
    L1:                      32768(0x8000) KB                   
  Chip ID:                 0(0x0)                             
  ASIC Revision:           0(0x0)                             
  Cacheline Size:          64(0x40)                           
  Max Clock Freq. (MHz):   4300                               
  BDFID:                   0                                  
  Internal Node ID:        0                                  
  Compute Unit:            28                                 
  SIMDs per CU:            0                                  
  Shader Engines:          0                                  
  Shader Arrs. per Eng.:   0                                  
  WatchPts on Addr. Ranges:1                                  
  Features:                None
  Pool Info:               
    Pool 1                   
      Segment:                 GLOBAL; FLAGS: FINE GRAINED        
      Size:                    65506932(0x3e78e74) KB             
      Allocatable:             TRUE                               
      Alloc Granule:           4KB                                
      Alloc Alignment:         4KB                                
      Accessible by all:       TRUE                               
    Pool 2                   
      Segment:                 GLOBAL; FLAGS: KERNARG, FINE GRAINED
      Size:                    65506932(0x3e78e74) KB             
      Allocatable:             TRUE                               
      Alloc Granule:           4KB                                
      Alloc Alignment:         4KB                                
      Accessible by all:       TRUE                               
    Pool 3                   
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED      
      Size:                    65506932(0x3e78e74) KB             
      Allocatable:             TRUE                               
      Alloc Granule:           4KB                                
      Alloc Alignment:         4KB                                
      Accessible by all:       TRUE                               
  ISA Info:                
*******                  
Agent 2                  
*******                  
  Name:                    gfx1100                            
  Uuid:                    GPU-af532b568c7bef7a               
  Marketing Name:          Radeon RX 7900 XTX                 
  Vendor Name:             AMD                                
  Feature:                 KERNEL_DISPATCH                    
  Profile:                 BASE_PROFILE                       
  Float Round Mode:        NEAR                               
  Max Queue Number:        128(0x80)                          
  Queue Min Size:          64(0x40)                           
  Queue Max Size:          131072(0x20000)                    
  Queue Type:              MULTI                              
  Node:                    1                                  
  Device Type:             GPU                                
  Cache Info:              
    L1:                      32(0x20) KB                        
    L2:                      6144(0x1800) KB                    
    L3:                      98304(0x18000) KB                  
  Chip ID:                 29772(0x744c)                      
  ASIC Revision:           0(0x0)                             
  Cacheline Size:          64(0x40)                           
  Max Clock Freq. (MHz):   2371                               
  BDFID:                   26368                              
  Internal Node ID:        1                                  
  Compute Unit:            96                                 
  SIMDs per CU:            2                                  
  Shader Engines:          6                                  
  Shader Arrs. per Eng.:   2                                  
  WatchPts on Addr. Ranges:4                                  
  Coherent Host Access:    FALSE                              
  Features:                KERNEL_DISPATCH 
  Fast F16 Operation:      TRUE                               
  Wavefront Size:          32(0x20)                           
  Workgroup Max Size:      1024(0x400)                        
  Workgroup Max Size per Dimension:
    x                        1024(0x400)                        
    y                        1024(0x400)                        
    z                        1024(0x400)                        
  Max Waves Per CU:        32(0x20)                           
  Max Work-item Per CU:    1024(0x400)                        
  Grid Max Size:           4294967295(0xffffffff)             
  Grid Max Size per Dimension:
    x                        4294967295(0xffffffff)             
    y                        4294967295(0xffffffff)             
    z                        4294967295(0xffffffff)             
  Max fbarriers/Workgrp:   32                                 
  Packet Processor uCode:: 550                                
  SDMA engine uCode::      19                                 
  IOMMU Support::          None                               
  Pool Info:               
    Pool 1                   
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED      
      Size:                    25149440(0x17fc000) KB             
      Allocatable:             TRUE                               
      Alloc Granule:           4KB                                
      Alloc Alignment:         4KB                                
      Accessible by all:       FALSE                              
    Pool 2                   
      Segment:                 GLOBAL; FLAGS: EXTENDED FINE GRAINED
      Size:                    25149440(0x17fc000) KB             
      Allocatable:             TRUE                               
      Alloc Granule:           4KB                                
      Alloc Alignment:         4KB                                
      Accessible by all:       FALSE                              
    Pool 3                   
      Segment:                 GROUP                              
      Size:                    64(0x40) KB                        
      Allocatable:             FALSE                              
      Alloc Granule:           0KB                                
      Alloc Alignment:         0KB                                
      Accessible by all:       FALSE                              
  ISA Info:                
    ISA 1                    
      Name:                    amdgcn-amd-amdhsa--gfx1100         
      Machine Models:          HSA_MACHINE_MODEL_LARGE            
      Profiles:                HSA_PROFILE_BASE                   
      Default Rounding Mode:   NEAR                               
      Default Rounding Mode:   NEAR                               
      Fast f16:                TRUE                               
      Workgroup Max Size:      1024(0x400)                        
      Workgroup Max Size per Dimension:
        x                        1024(0x400)                        
        y                        1024(0x400)                        
        z                        1024(0x400)                        
      Grid Max Size:           4294967295(0xffffffff)             
      Grid Max Size per Dimension:
        x                        4294967295(0xffffffff)             
        y                        4294967295(0xffffffff)             
        z                        4294967295(0xffffffff)             
      FBarrier Max Size:       32                                 
*** Done ***             

CPU

Intel

Other software

Docker registry from Docker Hub from https://hub.docker.com/_/registry (latest)
Running on ARM based Synology NAS. I also reproduced this issue with registry (b4fd5ad419a22e955f5c05bcdfdfca91125edc3ed09c60b9979f80be954c97d0) running locally on my desktop.

Originally created by @d3cker on GitHub (Mar 22, 2024). Original GitHub issue: https://github.com/ollama/ollama/issues/3297 ### What is the issue? Hello community. I'm using locally hosted Docker repository on Synology NAS. Unfortunately I have an issue with one particular model: *wizardcoder-python-13b-v1.0.Q6_K.gguf* ``` $ sha256sum wizardcoder-python-13b-v1.0.Q6_K.gguf a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b wizardcoder-python-13b-v1.0.Q6_K.gguf ``` Stored in ollama as: ``` $ ls -l ~/.ollama/models/blobs/sha256-a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b -rw------- 1 d3cker users 10679148768 mar 22 00:07 .ollama/models/blobs/sha256-a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b ``` Model is accessible so I can run it: ``` $ ollama run synology:8500/wizardcoder/wizardcoder-python13B:latest >>> Hi. Hello, how can I assist you today? >>> Send a message (/? for help) ``` When I try to push this model to the repository I receive this error: Client: ``` $ ollama push synology:8500/wizardcoder/wizardcoder-python13B:latest --insecure retrieving manifest Error: file does not exist ``` Server (with some extra info printed in upload.go and images.go): ``` [GIN] 2024/03/22 - 17:15:36 | 200 | 29.936µs | 127.0.0.1 | HEAD "/" time=2024-03-22T17:15:36.634+01:00 level=INFO source=images.go:960 msg="error uploading blob: &{application/vnd.ollama.image.model sha256:a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b 10679148768 }" time=2024-03-22T17:15:36.634+01:00 level=INFO source=images.go:961 msg="error uploading blob: {https synology:8500 wizardcoder wizardcoder-python13B latest}" upload.go: mp.BaseURL: https://synology:8500 upload.go: requestURL: https://synology:8500/v2/wizardcoder/wizardcoder-python13B/blobs/sha256:a20f795d17d64e487b6b3446227ba2931bbcb3bc7bb7ebd652b9663efb1f090b time=2024-03-22T17:15:36.652+01:00 level=INFO source=images.go:1141 msg="RESP: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[19] Content-Type:[text/plain; charset=utf-8] Date:[Fri, 22 Mar 2024 16:15:36 GMT] Docker-Distribution-Api-Version:[registry/2.0] X-Content-Type-Options:[nosniff]] {} 19 [] false false map[] 0xc000434480 <nil>}" upload.go: resp: <nil> upload.go: err: file does not exist time=2024-03-22T17:15:36.654+01:00 level=INFO source=images.go:1141 msg="RESP: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[19] Content-Type:[text/plain; charset=utf-8] Date:[Fri, 22 Mar 2024 16:15:36 GMT] Docker-Distribution-Api-Version:[registry/2.0] X-Content-Type-Options:[nosniff]] 0xc000516540 19 [] false false map[] 0xc00017dc20 <nil>}" time=2024-03-22T17:15:36.654+01:00 level=INFO source=images.go:963 msg="error uploading blob: file does not exist" [GIN] 2024/03/22 - 17:15:36 | 200 | 20.234864ms | 127.0.0.1 | POST "/api/push" ``` ### What did you expect to see? I don't have that issue with other models. For example: Model: https://huggingface.co/TheBloke/open-llama-3b-v2-wizard-evol-instuct-v2-196k-GGUF/blob/main/open-llama-3b-v2-wizard-evol-instuct-v2-196k.Q8_0.gguf ``` $ sha256sum open-llama-3b-v2-wizard-evol-instuct-v2-196k.Q8_0.gguf 07bf92495e6310bc343e116089c5c656caf2e8ee479d30eec2804d5a685cc496 open-llama-3b-v2-wizard-evol-instuct-v2-196k.Q8_0.gguf ``` Client: ``` $ ollama push synology:8500/openllama/openllama-3b-v2:latest --insecure retrieving manifest pushing 07bf92495e63... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 3.6 GB pushing d19d7b5ba224... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 56 B pushing 6463b496ea44... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 146 B pushing c5d3c17f2d37... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 40 B pushing fb890504d5eb... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 483 B pushing manifest success ``` Server: ``` [GIN] 2024/03/22 - 17:12:58 | 200 | 42.459µs | 127.0.0.1 | HEAD "/" time=2024-03-22T17:12:58.425+01:00 level=INFO source=images.go:960 msg="error uploading blob: &{application/vnd.ollama.image.model sha256:07bf92495e6310bc343e116089c5c656caf2e8ee479d30eec2804d5a685cc496 3641876224 }" time=2024-03-22T17:12:58.425+01:00 level=INFO source=images.go:961 msg="error uploading blob: {https synology:8500 openllama openllama-3b-v2 latest}" upload.go: mp.BaseURL: https://synology:8500 upload.go: requestURL: https://synology:8500/v2/openllama/openllama-3b-v2/blobs/sha256:07bf92495e6310bc343e116089c5c656caf2e8ee479d30eec2804d5a685cc496 time=2024-03-22T17:12:58.432+01:00 level=INFO source=images.go:1141 msg="RESP: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[157] Content-Type:[application/json; charset=utf-8] Date:[Fri, 22 Mar 2024 16:12:58 GMT] Docker-Distribution-Api-Version:[registry/2.0] X-Content-Type-Options:[nosniff]] {} 157 [] false false map[] 0xc00058e480 <nil>}" upload.go: resp: <nil> upload.go: err: file does not exist time=2024-03-22T17:12:58.618+01:00 level=INFO source=images.go:1141 msg="RESP: &{202 Accepted 202 HTTP/1.1 1 1 map[Content-Length:[0] Date:[Fri, 22 Mar 2024 16:12:58 GMT] Docker-Distribution-Api-Version:[registry/2.0] Docker-Upload-Uuid:[da6074c8-9cc1-4e7f-afda-073b7ad82bdb] Location:[http://synology:8500/v2/openllama/openllama-3b-v2/blobs/uploads/da6074c8-9cc1-4e7f-afda-073b7ad82bdb?_state=UV5vI2Bjtem4F0vEIVnIapqAC8hrPQZu4w4GbzhXEY57Ik5hbWUiOiJvcGVubGxhbWEvb3BlbmxsYW1hLTNiLXYyIiwiVVVJRCI6ImRhNjA3NGM4LTljYzEtNGU3Zi1hZmRhLTA3M2I3YWQ4MmJkYiIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNC0wMy0yMlQxNjoxMjo1OC4zMzgxNzI1ODJaIn0%3D] Range:[0-0] X-Content-Type-Options:[nosniff]] {} 0 [] false false map[] 0xc00017c5a0 <nil>}" time=2024-03-22T17:12:58.618+01:00 level=INFO source=upload.go:109 msg="uploading 07bf92495e63 in 37 100 MB part(s)" ``` ### Steps to reproduce - Deploy registry in a container ``` $ docker run -d -p 5000:5000 --restart always --name registry registry:2 ``` - Download model from https://huggingface.co/TheBloke/WizardCoder-Python-13B-V1.0-GGUF/blob/main/wizardcoder-python-13b-v1.0.Q6_K.gguf - Create Modelfile: ``` FROM ./wizardcoder-python-13b-v1.0.Q6_K.gguf TEMPLATE """{{ .System }} ### Instruction: {{ .Prompt }} ### Response: """ SYSTEM """ Below is an instruction that describes a task. Write a response that appropriately completes the request. """ PARAMETER stop "### Instruction:" PARAMETER stop "### Response:" ``` - Create model on ollama server: ``` $ ollama create localhost:5000/wizardcoder/wizardcoder-python13B:latest --insecure-f Modelfile ``` - Push model to local registry: ``` $ ollama push localhost:5000/wizardcoder/wizardcoder-python13B:latest --insecure ``` ### Are there any recent changes that introduced the issue? I'm not sure if there was any change that introduced the issue. I tried several previous commits and I always end up with the same error. ### OS Linux ### Architecture x86_64 ### Platform _No response_ ### Ollama version 0.0.0 (commit a5ba0fcf788a3d7543e2011593670ddc5012f125) ### GPU AMD ### GPU info ``` ROCk module is loaded ===================== HSA System Attributes ===================== Runtime Version: 1.1 System Timestamp Freq.: 1000.000000MHz Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count) Machine Model: LARGE System Endianness: LITTLE Mwaitx: DISABLED DMAbuf Support: YES ========== HSA Agents ========== ******* Agent 1 ******* Name: Intel(R) Core(TM) i9-10940X CPU @ 3.30GHz Uuid: CPU-XX Marketing Name: Intel(R) Core(TM) i9-10940X CPU @ 3.30GHz Vendor Name: CPU Feature: None specified Profile: FULL_PROFILE Float Round Mode: NEAR Max Queue Number: 0(0x0) Queue Min Size: 0(0x0) Queue Max Size: 0(0x0) Queue Type: MULTI Node: 0 Device Type: CPU Cache Info: L1: 32768(0x8000) KB Chip ID: 0(0x0) ASIC Revision: 0(0x0) Cacheline Size: 64(0x40) Max Clock Freq. (MHz): 4300 BDFID: 0 Internal Node ID: 0 Compute Unit: 28 SIMDs per CU: 0 Shader Engines: 0 Shader Arrs. per Eng.: 0 WatchPts on Addr. Ranges:1 Features: None Pool Info: Pool 1 Segment: GLOBAL; FLAGS: FINE GRAINED Size: 65506932(0x3e78e74) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Alignment: 4KB Accessible by all: TRUE Pool 2 Segment: GLOBAL; FLAGS: KERNARG, FINE GRAINED Size: 65506932(0x3e78e74) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Alignment: 4KB Accessible by all: TRUE Pool 3 Segment: GLOBAL; FLAGS: COARSE GRAINED Size: 65506932(0x3e78e74) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Alignment: 4KB Accessible by all: TRUE ISA Info: ******* Agent 2 ******* Name: gfx1100 Uuid: GPU-af532b568c7bef7a Marketing Name: Radeon RX 7900 XTX Vendor Name: AMD Feature: KERNEL_DISPATCH Profile: BASE_PROFILE Float Round Mode: NEAR Max Queue Number: 128(0x80) Queue Min Size: 64(0x40) Queue Max Size: 131072(0x20000) Queue Type: MULTI Node: 1 Device Type: GPU Cache Info: L1: 32(0x20) KB L2: 6144(0x1800) KB L3: 98304(0x18000) KB Chip ID: 29772(0x744c) ASIC Revision: 0(0x0) Cacheline Size: 64(0x40) Max Clock Freq. (MHz): 2371 BDFID: 26368 Internal Node ID: 1 Compute Unit: 96 SIMDs per CU: 2 Shader Engines: 6 Shader Arrs. per Eng.: 2 WatchPts on Addr. Ranges:4 Coherent Host Access: FALSE Features: KERNEL_DISPATCH Fast F16 Operation: TRUE Wavefront Size: 32(0x20) Workgroup Max Size: 1024(0x400) Workgroup Max Size per Dimension: x 1024(0x400) y 1024(0x400) z 1024(0x400) Max Waves Per CU: 32(0x20) Max Work-item Per CU: 1024(0x400) Grid Max Size: 4294967295(0xffffffff) Grid Max Size per Dimension: x 4294967295(0xffffffff) y 4294967295(0xffffffff) z 4294967295(0xffffffff) Max fbarriers/Workgrp: 32 Packet Processor uCode:: 550 SDMA engine uCode:: 19 IOMMU Support:: None Pool Info: Pool 1 Segment: GLOBAL; FLAGS: COARSE GRAINED Size: 25149440(0x17fc000) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Alignment: 4KB Accessible by all: FALSE Pool 2 Segment: GLOBAL; FLAGS: EXTENDED FINE GRAINED Size: 25149440(0x17fc000) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Alignment: 4KB Accessible by all: FALSE Pool 3 Segment: GROUP Size: 64(0x40) KB Allocatable: FALSE Alloc Granule: 0KB Alloc Alignment: 0KB Accessible by all: FALSE ISA Info: ISA 1 Name: amdgcn-amd-amdhsa--gfx1100 Machine Models: HSA_MACHINE_MODEL_LARGE Profiles: HSA_PROFILE_BASE Default Rounding Mode: NEAR Default Rounding Mode: NEAR Fast f16: TRUE Workgroup Max Size: 1024(0x400) Workgroup Max Size per Dimension: x 1024(0x400) y 1024(0x400) z 1024(0x400) Grid Max Size: 4294967295(0xffffffff) Grid Max Size per Dimension: x 4294967295(0xffffffff) y 4294967295(0xffffffff) z 4294967295(0xffffffff) FBarrier Max Size: 32 *** Done *** ``` ### CPU Intel ### Other software Docker registry from Docker Hub from https://hub.docker.com/_/registry (latest) Running on ARM based Synology NAS. I also reproduced this issue with registry (b4fd5ad419a22e955f5c05bcdfdfca91125edc3ed09c60b9979f80be954c97d0) running locally on my desktop.
GiteaMirror added the bugfeature request labels 2026-05-03 16:02:28 -05:00
Author
Owner

@d3cker commented on GitHub (Mar 22, 2024):

I forgot that Docker allows only lowercase letters in PATH. Uppercase letters are allowed in TAG. See Documentation. After changing the name, everything started working as expected:

$ ollama cp synology:8500/wizardcoder/wizardcoder-python13B synology:8500/wizardcoder/wizardcoder-python13bq6
copied 'synology:8500/wizardcoder/wizardcoder-python13B' to 'synology:8500/wizardcoder/wizardcoder-python13bq6'
$ ollama push synology:8500/wizardcoder/wizardcoder-python13bq6 --insecure
retrieving manifest 
pushing a20f795d17d6... 100% ▕████████████████████████████████████████████████████████████████████████████▏  10 GB                         
pushing 2d836d77287d... 100% ▕████████████████████████████████████████████████████████████████████████████▏   61 B                         
pushing 85c1d23a20f1... 100% ▕████████████████████████████████████████████████████████████████████████████▏  107 B                         
pushing ec393ee2f942... 100% ▕████████████████████████████████████████████████████████████████████████████▏   46 B                         
pushing 89fa79a044b4... 100% ▕████████████████████████████████████████████████████████████████████████████▏  484 B                         
pushing manifest 
success

In other words, this is not a bug, but rather room for improvement. Maybe it's worth imposing this naming convention in the image creation process. For example (server/modelpath.go):

--- modelpath.go	2024-03-22 21:56:54.972428019 +0100
+++ modelpath.go.patched	2024-03-22 21:58:05.887662569 +0100
@@ -45,23 +45,26 @@
 		name = after
 	}
 
+	repository := ""
 	name = strings.ReplaceAll(name, string(os.PathSeparator), "/")
 	parts := strings.Split(name, "/")
 	switch len(parts) {
 	case 3:
 		mp.Registry = parts[0]
-		mp.Namespace = parts[1]
-		mp.Repository = parts[2]
+		mp.Namespace = strings.ToLower(parts[1])
+		repository = parts[2]
 	case 2:
 		mp.Namespace = parts[0]
-		mp.Repository = parts[1]
+		repository = parts[1]
 	case 1:
-		mp.Repository = parts[0]
+		repository = parts[0]
 	}
 
-	if repo, tag, found := strings.Cut(mp.Repository, ":"); found {
-		mp.Repository = repo
+	if repo, tag, found := strings.Cut(repository, ":"); found {
+		mp.Repository = strings.ToLower(repo)
 		mp.Tag = tag
+	} else {
+		mp.Repository = strings.ToLower(repository)
 	}
 
 	return mp

<!-- gh-comment-id:2015849813 --> @d3cker commented on GitHub (Mar 22, 2024): I forgot that Docker allows only lowercase letters in `PATH`. Uppercase letters are allowed in `TAG`. See [Documentation](https://docs.docker.com/reference/cli/docker/image/tag/#extended-description). After changing the name, everything started working as expected: ``` $ ollama cp synology:8500/wizardcoder/wizardcoder-python13B synology:8500/wizardcoder/wizardcoder-python13bq6 copied 'synology:8500/wizardcoder/wizardcoder-python13B' to 'synology:8500/wizardcoder/wizardcoder-python13bq6' $ ollama push synology:8500/wizardcoder/wizardcoder-python13bq6 --insecure retrieving manifest pushing a20f795d17d6... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 10 GB pushing 2d836d77287d... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 61 B pushing 85c1d23a20f1... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 107 B pushing ec393ee2f942... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 46 B pushing 89fa79a044b4... 100% ▕████████████████████████████████████████████████████████████████████████████▏ 484 B pushing manifest success ``` In other words, this is not a bug, but rather room for improvement. Maybe it's worth imposing this naming convention in the image creation process. For example (server/modelpath.go): ``` --- modelpath.go 2024-03-22 21:56:54.972428019 +0100 +++ modelpath.go.patched 2024-03-22 21:58:05.887662569 +0100 @@ -45,23 +45,26 @@ name = after } + repository := "" name = strings.ReplaceAll(name, string(os.PathSeparator), "/") parts := strings.Split(name, "/") switch len(parts) { case 3: mp.Registry = parts[0] - mp.Namespace = parts[1] - mp.Repository = parts[2] + mp.Namespace = strings.ToLower(parts[1]) + repository = parts[2] case 2: mp.Namespace = parts[0] - mp.Repository = parts[1] + repository = parts[1] case 1: - mp.Repository = parts[0] + repository = parts[0] } - if repo, tag, found := strings.Cut(mp.Repository, ":"); found { - mp.Repository = repo + if repo, tag, found := strings.Cut(repository, ":"); found { + mp.Repository = strings.ToLower(repo) mp.Tag = tag + } else { + mp.Repository = strings.ToLower(repository) } return mp ```
Author
Owner

@BruceMacD commented on GitHub (Mar 25, 2024):

Thanks for following up with the details @d3cker, I've updated the title accordingly.

<!-- gh-comment-id:2018560845 --> @BruceMacD commented on GitHub (Mar 25, 2024): Thanks for following up with the details @d3cker, I've updated the title accordingly.
Author
Owner

@jmorganca commented on GitHub (Apr 21, 2024):

Merging this with #3501

<!-- gh-comment-id:2067830563 --> @jmorganca commented on GitHub (Apr 21, 2024): Merging this with #3501
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/ollama#64066