You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by "Xuanwo (via GitHub)" <gi...@apache.org> on 2023/12/19 09:01:18 UTC
[I] Tracking issues of goal: Make ofs running! [incubator-opendal]
Xuanwo opened a new issue, #3782:
URL: https://github.com/apache/incubator-opendal/issues/3782
This issue is used to track our goal that making `ofs` running!
## Introduction
`ofs` is a userspace filesystem that powered by opendal. We expect user can mount a opendal storage services locally as a fs for read and write. Our goal is not to implement a full-fledged filesystem. We will implement features based on opendal's design and services capabilities.
Related ideas:
- https://github.com/apache/incubator-opendal/issues/3411
- https://github.com/apache/incubator-opendal/issues/2625
Similiar projects:
- https://github.com/Inokinoki/DalFs
- https://github.com/awslabs/mountpoint-s3
## Tasks
- [ ] Implement the layout of `fuser::Filesystem`
- [ ] Add CI workflow
- [ ] Add README and CONTIBUTING guide
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Tracking issues of goal: Make ofs running! [incubator-opendal]
Posted by "oowl (via GitHub)" <gi...@apache.org>.
oowl commented on issue #3782:
URL: https://github.com/apache/incubator-opendal/issues/3782#issuecomment-1872912925
> Created #3857 based on `fuse3`(`v0.6.1`, latest released version).
>
> It's really nice to have the built-in inode <=> directory mapping, so we can leverage the feature and only implement the interactions with OpenDAL, based on `PathFilesystem` trait.
>
> However, there are a lot of errors under `rustc 1.73.0 (cc66ad468 2023-10-03)` due to the [async runtime and some other issues](https://gist.github.com/Inokinoki/1c3486a9505b415ad6024abaa485ab98).
>
> Would you like to take a look, which async runtime is preferred? @oowl @ho-229
I'm sorry for not getting back to you sooner. Yeah, OpenDAL recommends using tokio as async runtime in some need cases.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Tracking issues of goal: Make ofs running! [incubator-opendal]
Posted by "Inokinoki (via GitHub)" <gi...@apache.org>.
Inokinoki commented on issue #3782:
URL: https://github.com/apache/incubator-opendal/issues/3782#issuecomment-1872177845
> Created #3857 based on `fuse3`(`v0.6.1`, latest released version).
>
> It's really nice to have the built-in inode <=> directory mapping, so we can leverage the feature and only implement the interactions with OpenDAL, based on `PathFilesystem` trait.
>
> However, there are a lot of errors under `rustc 1.73.0 (cc66ad468 2023-10-03)` due to the async runtime and some other issues:
>
> ```
> error[E0432]: unresolved import `session::Session`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/mod.rs:8:9
> |
> 8 | pub use session::Session;
> | ^^^^^^^^^^^^^^^^ no `Session` in `path::session`
> |
> note: found an item that was configured out
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/session.rs:12:12
> |
> 12 | pub struct Session {
> | ^^^^^^^
>
> error[E0432]: unresolved import `super::Session`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/mod.rs:26:13
> |
> 26 | pub use super::Session;
> | ^^^^^^^^^^^^^^ no `Session` in `raw`
> |
> note: found an item that was configured out
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/mod.rs:12:32
> |
> 12 | pub use session::{MountHandle, Session};
> | ^^^^^^^
> help: a similar name exists in the module
> |
> 26 | pub use super::session;
> | ~~~~~~~
> help: consider importing this unresolved item through its public re-export instead
> |
> 26 | pub use crate::path::Session;
> | ~~~~~~~~~~~~~~~~~~~~
>
> error[E0412]: cannot find type `RwLock` in this scope
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/inode_path_bridge.rs:109:25
> |
> 109 | inode_name_manager: RwLock<InodeNameManager>,
> | ^^^^^^ not found in this scope
> |
> help: consider importing this struct
> |
> 1 + use std::sync::RwLock;
> |
>
> error[E0433]: failed to resolve: use of undeclared type `RwLock`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/inode_path_bridge.rs:136:33
> |
> 136 | inode_name_manager: RwLock::new(inode_name_manager),
> | ^^^^^^ use of undeclared type `RwLock`
> |
> help: consider importing this struct
> |
> 1 + use std::sync::RwLock;
> |
>
> error[E0433]: failed to resolve: use of undeclared crate or module `task`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/session.rs:3855:5
> |
> 3855 | task::spawn(fut.instrument(span));
> | ^^^^ use of undeclared crate or module `task`
> |
> help: consider importing this module
> |
> 1 + use futures_util::task;
> |
>
> error[E0046]: not all trait items implemented, missing: `poll`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/session.rs:45:1
> |
> 45 | impl Future for MountHandle {
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `poll` in implementation
> |
> = help: implement the missing item: `fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<<Self as futures_util::Future>::Output> { todo!() }`
>
> error[E0282]: type annotations needed for `&T`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/inode_path_bridge.rs:998:39
> |
> 998 | let paths = paths.iter().map(|path| path.as_ref()).collect::<Vec<_>>();
> | ^^^^ ------ type must be known at this point
> |
> help: consider giving this closure parameter an explicit type, where the type for type parameter `T` is specified
> |
> 998 | let paths = paths.iter().map(|path: &T| path.as_ref()).collect::<Vec<_>>();
> | ++++
>
> error[E0433]: failed to resolve: use of undeclared crate or module `task`
> --> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/session.rs:43:24
> |
> 43 | pub struct MountHandle(task::JoinHandle<IoResult<()>>);
> | ^^^^ use of undeclared crate or module `task`
>
> Some errors have detailed explanations: E0046, E0282, E0412, E0432, E0433.
> For more information about an error, try `rustc --explain E0046`.
> error: could not compile `fuse3` (lib) due to 8 previous errors
> warning: build failed, waiting for other jobs to finish...
> ```
>
> Would you like to take a look, which async runtime is preferred? @oowl @ho-229
I temporarily use `tokio-async` runtime in the mentioned branch.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Tracking issues of goal: Make ofs running! [incubator-opendal]
Posted by "Inokinoki (via GitHub)" <gi...@apache.org>.
Inokinoki commented on issue #3782:
URL: https://github.com/apache/incubator-opendal/issues/3782#issuecomment-1872164444
Created #3857 based on `fuse3`(`v0.6.1`, latest released version).
It's really nice to have the built-in inode <=> directory mapping, so we can leverage the feature and only implement the interactions with OpenDAL, based on `PathFilesystem` trait.
However, there are a lot of errors under `rustc 1.73.0 (cc66ad468 2023-10-03)` due to the async runtime and some other issues:
```
error[E0432]: unresolved import `session::Session`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/mod.rs:8:9
|
8 | pub use session::Session;
| ^^^^^^^^^^^^^^^^ no `Session` in `path::session`
|
note: found an item that was configured out
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/session.rs:12:12
|
12 | pub struct Session {
| ^^^^^^^
error[E0432]: unresolved import `super::Session`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/mod.rs:26:13
|
26 | pub use super::Session;
| ^^^^^^^^^^^^^^ no `Session` in `raw`
|
note: found an item that was configured out
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/mod.rs:12:32
|
12 | pub use session::{MountHandle, Session};
| ^^^^^^^
help: a similar name exists in the module
|
26 | pub use super::session;
| ~~~~~~~
help: consider importing this unresolved item through its public re-export instead
|
26 | pub use crate::path::Session;
| ~~~~~~~~~~~~~~~~~~~~
error[E0412]: cannot find type `RwLock` in this scope
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/inode_path_bridge.rs:109:25
|
109 | inode_name_manager: RwLock<InodeNameManager>,
| ^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 + use std::sync::RwLock;
|
error[E0433]: failed to resolve: use of undeclared type `RwLock`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/inode_path_bridge.rs:136:33
|
136 | inode_name_manager: RwLock::new(inode_name_manager),
| ^^^^^^ use of undeclared type `RwLock`
|
help: consider importing this struct
|
1 + use std::sync::RwLock;
|
error[E0433]: failed to resolve: use of undeclared crate or module `task`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/session.rs:3855:5
|
3855 | task::spawn(fut.instrument(span));
| ^^^^ use of undeclared crate or module `task`
|
help: consider importing this module
|
1 + use futures_util::task;
|
error[E0046]: not all trait items implemented, missing: `poll`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/session.rs:45:1
|
45 | impl Future for MountHandle {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `poll` in implementation
|
= help: implement the missing item: `fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<<Self as futures_util::Future>::Output> { todo!() }`
error[E0282]: type annotations needed for `&T`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/path/inode_path_bridge.rs:998:39
|
998 | let paths = paths.iter().map(|path| path.as_ref()).collect::<Vec<_>>();
| ^^^^ ------ type must be known at this point
|
help: consider giving this closure parameter an explicit type, where the type for type parameter `T` is specified
|
998 | let paths = paths.iter().map(|path: &T| path.as_ref()).collect::<Vec<_>>();
| ++++
error[E0433]: failed to resolve: use of undeclared crate or module `task`
--> /home/inoki/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fuse3-0.6.1/src/raw/session.rs:43:24
|
43 | pub struct MountHandle(task::JoinHandle<IoResult<()>>);
| ^^^^ use of undeclared crate or module `task`
Some errors have detailed explanations: E0046, E0282, E0412, E0432, E0433.
For more information about an error, try `rustc --explain E0046`.
error: could not compile `fuse3` (lib) due to 8 previous errors
warning: build failed, waiting for other jobs to finish...
```
Would you like to take a look? @oowl @ho-229
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Tracking issues of goal: Make ofs running! [opendal]
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo closed issue #3782: Tracking issues of goal: Make ofs running!
URL: https://github.com/apache/opendal/issues/3782
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org