Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

the dataset is deleted right after download in Windows10 #270

Open
MariusDrulea opened this issue Nov 27, 2022 · 2 comments
Open

the dataset is deleted right after download in Windows10 #270

MariusDrulea opened this issue Nov 27, 2022 · 2 comments
Labels
bug Something isn't working

Comments

@MariusDrulea
Copy link

MariusDrulea commented Nov 27, 2022

Package Version

0.5.0

Julia Version

1.8.3

OS / Environment

Windows10

Describe the bug

I just run the following code to download the coco_sample dataset: FastAI.load(datasets()["coco_sample"]). The download is succesful. After the download 7zip is being called to unpack the archive. After the unzipping the following error occurs.
It looks like the script tries to delete the folder it just created, fastai-coco_cample.
This happens with all the datasets.

ERROR: LoadError: IOError: rm("D:\\z_installed_programs\\julia-depot\\datadeps\\fastai-coco_sample"): resource busy or locked (EBUSY)

Note that I have the julia's DEPOT_PATH environment variable set to D:\\z_installed_programs\\julia-depot, instead of the default home directory of the user.

Steps to Reproduce

using FastAI
FastAI.load(datasets()["coco_sample"])

Expected Results

get the coco sample dataset on the PC

Observed Results

the archive of the coco sample is downloaded, the archive is unzipped, then the error occurs and then the fastai-coco_cample folder containing the archive and the unzipped data is deleted.

Relevant log output

ERROR: LoadError: IOError: rm("D:\\z_installed_programs\\julia-depot\\datadeps\\fastai-coco_sample"): resource busy or locked (EBUSY)
Stacktrace:
  [1] uv_error
    @ .\libuv.jl:97 [inlined]
  [2] rm(path::String; force::Bool, recursive::Bool)
    @ Base.Filesystem .\file.jl:306
  [3] checkfor_mv_cp_cptree(src::String, dst::String, txt::String; force::Bool)
    @ Base.Filesystem .\file.jl:330
  [4] #mv#15
    @ .\file.jl:425 [inlined]
  [5] (::FastAI.Datasets.var"#10#11")(f::String)
    @ FastAI.Datasets D:\z_installed_programs\julia-depot\packages\FastAI\as9UG\src\datasets\fastaidatasets.jl:261
  [6] #16
    @ D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution_automatic.jl:122 [inlined]
  [7] cd(f::DataDeps.var"#16#17"{FastAI.Datasets.var"#10#11", String}, dir::String)
    @ Base.Filesystem .\file.jl:101
  [8] run_post_fetch(post_fetch_method::FastAI.Datasets.var"#10#11", fetched_path::String)
    @ DataDeps D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution_automatic.jl:119
  [9] download(datadep::DataDeps.DataDep{String, String, typeof(DataDeps.fetch_default), FastAI.Datasets.var"#10#11"}, localdir::String; remotepath::String, i_accept_the_terms_of_use::Nothing, skip_checksum::Bool)
    @ DataDeps D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution_automatic.jl:84
 [10] download
    @ D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution_automatic.jl:63 [inlined]
 [11] handle_missing
    @ D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution_automatic.jl:10 [inlined]
 [12] _resolve
    @ D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution.jl:83 [inlined]
 [13] resolve(datadep::DataDeps.DataDep{String, String, typeof(DataDeps.fetch_default), FastAI.Datasets.var"#10#11"}, inner_filepath::String, calling_filepath::String)
    @ DataDeps D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution.jl:29
 [14] resolve(datadep_name::String, inner_filepath::String, calling_filepath::String)
    @ DataDeps D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution.jl:54
 [15] resolve
    @ D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\resolution.jl:73 [inlined]
 [16] makeavailable
    @ D:\z_installed_programs\julia-depot\packages\FastAI\as9UG\src\datasets\loaders.jl:46 [inlined]
 [17] loaddata(loader::FastAI.Datasets.DataDepLoader)
    @ FastAI.Datasets D:\z_installed_programs\julia-depot\packages\FastAI\as9UG\src\datasets\loaders.jl:50
 [18] (::FastAI.Registries.var"#8#13")(row::NamedTuple{(:id, :description, :size, :tags, :package, :downloaded, :loader), Tuple{String, Union{Missing, String}, Union{Missing, String}, Vector{String}, Module, Bool, FastAI.Datasets.DatasetLoader}})
    @ FastAI.Registries D:\z_installed_programs\julia-depot\packages\FastAI\as9UG\src\Registries\datasets.jl:38
 [19] load(entry::FeatureRegistries.RegistryEntry; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ FeatureRegistries D:\z_installed_programs\julia-depot\packages\FeatureRegistries\FBMLI\src\registry.jl:135
 [20] load
    @ D:\z_installed_programs\julia-depot\packages\FeatureRegistries\FBMLI\src\registry.jl:135 [inlined]
@MariusDrulea MariusDrulea added the bug Something isn't working label Nov 27, 2022
@MariusDrulea MariusDrulea changed the title the coco_sample dataset is deleted right after download in Windows10 the dataset is deleted right after download in Windows10 Nov 27, 2022
@MariusDrulea
Copy link
Author

I wanted to dig a bit into the issue, but I'm facing the following (cumulative) issues:

  1. I cannot download any dataset if the proxy (default) is activated. For the work in the above comment to happen I had to deactivate the proxy. I also had to run everything as admin for the 7zip to work.

  2. datarecipes() returns nothing:

julia> datarecipes()
Dataset recipes

 ID       Block types  Description   Is downloaded  Dataset ID  Package   Recipe  
 :id      :blocks      :description  :downloaded    :datasetid  :package  :recipe 

 missing  missing      missing       missing        missing     missing   missing
  1. FastVision installation makes downgrades of a list of packages. I see it is set "compat" with MakieCore 0.3 for instance, while we have MakieCore 0.5.x available. Makie is a package I would like to stay up to date.

The log for download via proxy:

Do you want to download the dataset from https://s3.amazonaws.com/fast-ai-imageclas/imagenette2-160.tgz to "D:\z_installed_programs\julia-depot\datadeps\fastai-imagenette2-160"?
[y/n]
y
ERROR: UndefVarError: file not defined
Stacktrace:
  [1] download(url::String, local_path::String, headers::Vector{Pair{SubString{String}, SubString{String}}}; update_period::Float32, kw::Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:decompress,), Tuple{Bool}}})
    @ HTTP D:\z_installed_programs\julia-depot\packages\HTTP\RQd4C\src\download.jl:159
  [2] #fetch_http#26
    @ D:\z_installed_programs\julia-depot\packages\DataDeps\ae6dT\src\fetch_helpers.jl:80 [inlined]

@lorenzoh
Copy link
Member

lorenzoh commented Dec 17, 2022

Hi Marius, thanks for reporting the issue. The downloads being removed must be an issue with the windows-specific dataset unpacking, I'll see that I can get that removed, as it existed only for backward compatibility.

I don't have a Windows machine to test on unfortunately, but will see how to fix. I'm not sure what the interaction with the proxy is, since downloading is done by DataDeps.jl.

  1. datarecipes() returns nothing:

Dataset recipes are populated by the domain packages like FastVision.jl and FastTabular.jl so you'll have to load one first to see the dataset recipes, e.g.

using FastAI, FastVision
datarecipes()

FastVision installation makes downgrades of a list of packages. I see it is set "compat" with MakieCore 0.3 for instance, while we have MakieCore 0.5.x available. Makie is a package I would like to stay up to date.

Will see to update the compat bounds 👍 , see #274

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants