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

Durable mkdir using oras pull #1457

Open
1 task
mushka-stara opened this issue Jul 25, 2024 · 6 comments
Open
1 task

Durable mkdir using oras pull #1457

mushka-stara opened this issue Jul 25, 2024 · 6 comments
Labels
duplicate This issue or pull request already exists question Further information is requested
Milestone

Comments

@mushka-stara
Copy link

mushka-stara commented Jul 25, 2024

What happened in your environment?

Error: failed to extract tar to C:\temp\org_platypus-hatchery: mkdir C:\temp\org_platypus-hatchery\dashboards\Inflation - US ZOO: NonAvian Data (Reptiles, Amphibians, etc): The directory name is invalid.

(There are two problems here, first are invalid characters, the colon, in the directory name. oras could possibly defensively escape the colon with something like whatever is used in html, whatever works. The second problem is a bit more fundamental, where the user will have used a descriptive long directory name in the original application, in this case Grafana. For me, it would be sufficient to address this second problem.)

What did you expect to happen?

orcas pull should have at least done
mkdir "C:\temp\org_platypus-hatchery\dashboards\Inflation - US ZOO NonAvian Data (Reptiles, Amphibians, etc)"
(put double quotes around the windows directory name and maybe remove invalid characters)
As for the other problem, the vendor Grafana has been informed.

How can we reproduce it?

orcas pull a registry containing

  • long directory names with spaces
  • names with invalid characters (done with grafana)

What is the version of your ORAS CLI?

C:\temp>oras version
Version: 1.2.0
Go version: go1.22.3
Git commit: dcef719
Git tree state: clean

What is your OS environment?

WIndows 10

Are you willing to submit PRs to fix it?

  • Yes, I am willing to fix it.
@mushka-stara mushka-stara added bug Something isn't working triage New issues or PRs to be acknowledged by maintainers labels Jul 25, 2024
@FeynmanZhou FeynmanZhou changed the title Durable mkdir using orcas pull Durable mkdir using oras pull Jul 30, 2024
@shizhMSFT
Copy link
Contributor

Linking #1159 as a potential workaround.

@shizhMSFT
Copy link
Contributor

Tested with tar in Windows 11, invalid characters like : in the file name is converted to _ in windows.

@shizhMSFT
Copy link
Contributor

Repo steps:
On Linux with Bash:

$ echo hello world > "hello: world"
$ ls
'hello: world'
$ tar cf hello.tar hello\:\ world

Copy hello.tar to Windows. On windows with PowerShell,

> tar.exe xvf .\hello.tar
x hello: world
> dir


    Directory: D:\Test


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         7/30/2024   1:53 PM          10240 hello.tar
-a----         7/30/2024   1:52 PM             12 hello_ world

@FeynmanZhou
Copy link
Member

FeynmanZhou commented Jul 30, 2024

Linking #1159 as a potential workaround.

@mushka-stara If ORAS allows to customize file/directory name in oras pull, will it resolve your issue?

@qweeah
Copy link
Contributor

qweeah commented Jul 30, 2024

It's hard to cover all edge cases for pathing, e.g. a Linux user may create a file named C:\Users\my\file and on windows it will always be parsed as absolute path. Rather than adding special handling for OS specific characters, I suggest 1) content producer should remove those characters before pushing via oras or 2) content consumer should utlize facilities like #1159 to customize pulled artifacts.

@qweeah qweeah added this to the future milestone Jul 30, 2024
@qweeah qweeah added question Further information is requested duplicate This issue or pull request already exists and removed triage New issues or PRs to be acknowledged by maintainers bug Something isn't working labels Jul 30, 2024
@mushka-stara
Copy link
Author

@FeynmanZhou custom directory or file name would work well
@shizhMSFT WIndows 11 name substitution with _ also good, easy to explain
@qweeah in contact with contact producer, so far no answer.
I have advised our users to use Linux for now, though our company is moving to more Windows 😢 for end-user computing
Thanks very much for looking at the problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants