Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

A 500 error occurred in d: Could not find a part of the path '/var/proget/packages/.docker/F1



  • fresh installed proget free on as docker container
    trying to push a image

    commands

    ❯ docker push localhost:8082/d/alpine
    The push refers to repository [localhost:8082/d/alpine]
    ace0eda3e3be: Layer already exists
    received unexpected HTTP status: 500 Internal Server Error
    

    proget log

    proget    |       Request starting HTTP/1.1 PUT http://localhost:8082/v2/d/alpine/manifests/latest application/vnd.docker.distribution.manifest.v2+json 528
    proget    | A 500 error occurred in d: Could not find a part of the path '/var/proget/packages/.docker/F1'.
    

    found in settings of feed the following storage path: /var/proget/packages/.docker/common

    docker compose file

    version: "2.4"
    services:
      proget:
        image: proget.inedo.com/productimages/inedo/proget:5.3.15
        mem_limit: "2g"
        memswap_limit: "2g"
        restart: unless-stopped
        container_name: proget
        environment:
          SQL_CONNECTION_STRING: Data Source=mssql; Initial Catalog=proget; User ID=proget; Password=proget
        volumes:
          - proget-packages:/var/proget/packages
        ports:
          - 8082:80/tcp
        networks:
          - mssql
          - default
    
    volumes:
      proget-packages:
    
    networks:
      mssql:
        external: true
    

    Workaround manually create the missing folder


  • inedo-engineer

    Hi @viceice,

    How many docker feeds do you have configured on the fresh ProGet instance? I have seen one other user who has seen a similar issue, but it only happened on the one feed and manually creating the folder has resolved it. Any other docker feeds that were created did not seem to have the issue. Also, how did create the folder? Did you create it from within the ProGet container?

    Thanks,
    Rich



  • I've installed a fresh proget instance and added a single docker feed.

    Yes, I've used docker exec proget mkdir /var/proget/packages/.docker/F1 to create folder.


  • inedo-engineer

    Hi @viceice,

    Thanks for the information. Let me dig into this a bit further and let me work on recreating it. Hang tight!

    Thanks,
    Rich



  • thanks, this is low prio, as there is a simple workaround.



  • Ok, next issue with a new nuget feed:

    proget    | Unable to open file VisualOn.NCrontab.Advanced/VisualOn.NCrontab.Advanced.2.0.0.nupkg: System.IO.DirectoryNotFoundException: Could not find a part of the path '/var/proget/packages/.nugetv2/F3'.
    proget    |    at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
    proget    |    at System.IO.Enumeration.FileSystemEnumerator`1.Init()
    proget    |    at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
    proget    |    at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
    proget    |    at System.IO.Enumeration.FileSystemEnumerableFactory.FileSystemInfos(String directory, String expression, EnumerationOptions options, Boolean isNormalized)
    proget    |    at System.IO.DirectoryInfo.InternalEnumerateInfos(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
    proget    |    at System.IO.DirectoryInfo.EnumerateFileSystemInfos()
    proget    |    at Inedo.ProGet.Extensions.FileSystems.DirectoryFileSystem.ListContentsAsync(String path) in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E75101\Src\ProGetCoreEx\Extensions\FileSystems\DirectoryFileSystem.cs:line 77
    proget    |    at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.ListItemsInternalAsync(String path)
    proget    |    at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.<>c__DisplayClass12_0.<<OpenFileAsync>g__getAllMatchesAsync|0>d.MoveNext() in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E75101\Src\ProGetCoreEx\Extensions\FileSystems\CaseInsensitiveFileSystem.cs:line 212
    proget    | --- End of stack trace from previous location where exception was thrown ---
    

    Workaround again: create directory manually docker exec -t proget mkdir -p /var/proget/packages/.nugetv2/F3


  • inedo-engineer

    Hi @viceice,

    Thanks for sending this over. I will be debugging this issue more this week.

    Thanks,
    Rich



  • Got the same issue ish

    If I do this, I notice that the proget folder never gets populated with packages.
    I tired using "D:\data\proget\packages:/var/proget/packages" as well, but the volume does not seem to attach itself.

    The disk is formatted with NTFS if that does matter.

    $ProGetPackageLocationHost = "D:\data\proget\:/var/proget/"
    
    docker run -d -p 8585:80 --net=sql -v ${ProGetPackageLocationHost} --hostname proget --name=proget-server --restart=unless-stopped -e SQL_CONNECTION_STRING='Server=sql2019;Database=ProGet;User ID=user;Password=password' proget.inedo.com/productimages/inedo/proget:5.3.16
    

    I get errors like these:

    Unable to open file wavosaur/wavosaur.1.7.0.0.nupkg: System.IO.DirectoryNotFoundException: Could not find a part of the path '/var/proget/packages/.nugetv2/F1'. at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options) at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnumerableFactory.FileSystemInfos(String directory, String expression, EnumerationOptions options, Boolean isNormalized) at System.IO.DirectoryInfo.InternalEnumerateInfos(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.DirectoryInfo.EnumerateFileSystemInfos() at Inedo.ProGet.Extensions.FileSystems.DirectoryFileSystem.ListContentsAsync(String path) in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E79286\Src\ProGetCoreEx\Extensions\FileSystems\DirectoryFileSystem.cs:line 77 at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.ListItemsInternalAsync(String path) at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.<>c__DisplayClass12_0.<<OpenFileAsync>g__getAllMatchesAsync|0>d.MoveNext() in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E79286\Src\ProGetCoreEx\Extensions\FileSystems\CaseInsensitiveFileSystem.cs:line 212 --- End of stack trace from previous location where exception was thrown --- at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.<>c__DisplayClass12_0.<<OpenFileAsync>g__getCurrentAsync|1>d.MoveNext() in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E79286\Src\ProGetCoreEx\Extensions\FileSystems\CaseInsensitiveFileSystem.cs:line 233 --- End of stack trace from previous location where exception was thrown --- at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.OpenFileAsync(String fileName, FileMode mode, FileAccess access, FileShare share, Boolean requireRandomAccess) in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E79286\Src\ProGetCoreEx\Extensions\FileSystems\CaseInsensitiveFileSystem.cs:line 183 at Inedo.ProGet.Extensibility.PackageStores.FileSystemPackageStore.TryOpenStreamAsync(String fileName, FileMode fileMode, FileAccess fileAccess, FileShare fileShare, Int32 retryCount, Boolean requireSeek) in C:\InedoAgent\BuildMasterTemp\192.168.44.60\Temp\_E79286\Src\ProGetCoreEx\Extensibility\PackageStores\FileSystemPackageStore.cs:line 87
    

  • inedo-engineer

    Hi @harald-s-hanssen_2554,

    The current workaround is to manually create the feed folder. For example /var/proget/packages/.nugetv2/F1. This issue only happens when it is the first feed of that package type. We are still looking into the cause of the issue. It is only a problem with the docker image.

    Thanks,
    Rich



  • I tried creating the folder on the host side, but that didn't work.

    Will try it from the docker cli side as well


  • inedo-engineer

    Hi @harald-s-hanssen_2554,

    I have found that sometimes I will run into permission errors when created the folder on the host side when using WSL or WSL2. Sometimes if I create the folder on the host side, I end up having to manually chmod the folder inside the container. I have found different Linux OSes and Versions will vary based on this as well.

    Thanks,
    Rich


  • inedo-engineer

    Hi @harald-s-hanssen_2554 and @viceice,

    I was able to finally track down this issue. It seems to only affect ProGet running on Linux (Docker) when attempting to look for existing packages prior to adding a package or image. I have created a ticket, PG-1852, to track this fix. It will be released this Friday, November 20, 2020, in ProGet 5.3.17. Thanks for all the help in troubleshooting this!

    Thanks,
    Rich



  • @rhessinger great :)


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation