fsspec / sshfs

sshfs - SSH/SFTP implementation for fsspec
Apache License 2.0
58 stars 14 forks source link

Checksum command fails if remote doesn't support uname operation #16

Open pratheekrebala opened 2 years ago

pratheekrebala commented 2 years ago

When I try to fs.checksum(path) on a server that does not permit a uname command, I get a generic Channel Open Error: Session request failed. Looking through the debug logs, it seems like the issue is caused by the logic in the _get_system:

https://github.com/fsspec/sshfs/blob/3c10c1bfff44f111926d763a54343726832e2d42/sshfs/spec.py#L295:L300

The server I am working with does support the md5sum and sha1sum commands so the _checksum method as written should work but the actual command never triggers because it errors before that.

Potential Solutions:

If I can get some guidance on the preferred approach, and if contributions are welcome. I'm happy to submit a PR.

Thank you! Pratheek

efiop commented 2 years ago

Hi @pratheekrebala !

fs.checksum implementation probably has too much influence from our use in dvc and likely shouldn't call commands at all and rather just use the info() result, similar to what localfs does. If you need to run md5sum or sha1sum command, it is probably best to just run it yourself, as running commands is mostly out of scope for sshfs itself. I think we'll need to adjust fs.checksum in the future.