Hi,
I use elliptics 2.25.6.13 and eblob 0.22.11.
config: https://gist.github.com/reclosedev/cac5234c4b538d3fd3f0#file-ioserv-json
blob_size is 1G and "blob_flags": "582".
When client can’t write to cluster due to some error, e.g. “No space left on device: -28” I expect it to fail, but it doesn’t raise any error and returns LookupResultEntry when session is created with cache flag.
The easiest way to reproduce is to make elliptics unable to write by creating blob on tmpfs with 1500M limit, e.g.
# tailf /etc/fstab
tmpfs /var/blob/ tmpfs size=1500M 0 0
See example script: https://gist.github.com/reclosedev/cac5234c4b538d3fd3f0#file-write_expect_errors-py
Output:
https://gist.github.com/reclosedev/cac5234c4b538d3fd3f0#file-z_output1-with-cache-txt
So when ‘cache’ flag is used, no errors were raised. Also, sometimes it affects next commands. Append commands doesn’t raise/return errors, and commands with flags = 0 get timeout instead of an instant error.
Without ‘cache’ flag (commented out do_read_write(elliptics.io_flags.append | elliptics.io_flags.cache)) it works as expected:
https://gist.github.com/reclosedev/cac5234c4b538d3fd3f0#file-z_output2-no-cache-txt