-
Notifications
You must be signed in to change notification settings - Fork 671
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
[BUG] Flytekit misuses unexpected fsspec lpath result #4700
Comments
Thank you for opening your first issue here! 🛠 |
🤖 Hello @cgrass! 👋 I'm Dosu, a friendly bot here to assist you while we wait for a human maintainer. I'm designed to help troubleshoot bugs, answer your questions, and guide you through the process of becoming a contributor. Just remember, I'm here to help make things smoother for you! Thank you for the detailed bug report. It seems like the issue is related to the way The As for the specific Flyte configuration that makes end-to-end testing harder, it's the storage type being set to 'minio'. This configuration means that Flyte is using MinIO for storage, which is a high performance, Kubernetes-native object storage suite. While MinIO is great for production environments, it can make end-to-end testing more difficult because it requires a running MinIO server, which may not be available or practical in a testing environment. You can find more details about this configuration in the storage.yaml file. I would recommend creating an issue in the Please let me know if you need further assistance. SourcesThis response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research. Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant. If you want to continue the conversation, start your reply with @dosu-bot. |
actually @cgrass could you check again? i'm not seeing this behavior using plain fsspec
which version of fsspec do you have? i'm on |
EDIT: actually, let me do a little more testing before confirming the old behavior. EDIT2: @wild-endeavor - i left off an important piece to the repro step. the remote URL must include query params. if you update the |
@cgrass thanks for the clarification! do you think your existing ticket on fsspec/filesystem_spec#1505 covers this? since this is a purely fsspec issue (like no flytekit is involved in the repro) it's a little hard to work around for us until it's fixed in fsspec. |
@wild-endeavor I agree the root problem is with fsspec behavior but there are a few options for flyte to harden the code and potentially get the implementation to work even with the current fsspec version.
|
Describe the bug
fsspec has unexpected behavior in some scenarios. calling get with a URL with query params for
rpath
(remote path) and a filename forlpath
(local path) results inlpath
being used as a path dir. e.g., ifrpath == http://www.ascii-art.de/ascii/s/startrek.txt?test=test2
andlpath == /var/output.pb
a file gets written at/var/output.pb/startrek.txt?test=test2
.this causes an issue in the flytekit code because remote._get_output_literal_map() creates
tmp_name
with the filename ("output.pb"), and then usestmp_name
as the location for the resulting file. in reality, that path is a dir that contains the actual file. trying to opentmp_name
results in aIsADirectoryError
.a discussion in slack can add more context.
This is related to another bug I filed and could potentially be fixed with the same solution.
Expected behavior
remote file gets written to
/var/output.pb
Additional context to reproduce
You can see the fsspec behavior using the unit test below
e2e testing is much harder because it requires a specific flyte configuration (described in this PR). @wild-endeavor was able to reproduce using a local setup.
Screenshots
No response
Are you sure this issue hasn't been raised already?
Have you read the Code of Conduct?
The text was updated successfully, but these errors were encountered: