Open dgagnon opened 6 years ago
I have the same issue. Please, help! CentOS 6 running in AWS Linux use1-qa-2 2.6.32-696.23.1.el6.x86_64 #1 SMP Tue Mar 13 22:44:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux Python 2.7.13 yas3fs 2.4.2 (https://github.com/jazzl0ver/yas3fs; pull requests are awaiting for your confirmation) Fuse 2.9.3
/opt/rh/python27/root/usr/bin/python /opt/rh/python27/root/usr/bin/yas3fs --download-retries-num 10 --recheck-s3 -d --log /tmp/.yas3fs-s3volqa --log-mb-size 10 --log-backup-count 10 --log-backup-gzip s3://s3volqa /mnt/s3vol --topic arn:aws:sns:us-east-1:0000000:s3volqa --new-queue-with-hostname
Here is the strace output:
16237 open("/tmp/yas3fs-s3vol-GDz3nW/files/etc-sudoers.d/secure_path", O_RDWR) = -1 ENOENT (No such file or directory)
16237 write(2, "Traceback (most recent call last):\n", 35) = 35
16237 write(2, " File \"build/bdist.linux-x86_64/egg/yas3fs/fuse.py\", line 425, in _wrapper\n", 76) = 76
16237 write(2, " return func(*args, **kwargs) or 0\n", 38) = 38
16237 write(2, " File \"build/bdist.linux-x86_64/egg/yas3fs/fuse.py\", line 496, in open\n", 72) = 72
16237 write(2, " fi.flags)\n", 14) = 14
16237 write(2, " File \"build/bdist.linux-x86_64/egg/yas3fs/fuse.py\", line 898, in __call__\n", 76) = 76
16237 write(2, " ret = getattr(self, op)(path, *args)\n", 41) = 41
16237 write(2, " File \"build/bdist.linux-x86_64/egg/yas3fs/__init__.py\", line 2547, in open\n", 77) = 77
16237 write(2, " self.cache.get(path, 'data').open()\n", 40) = 40
16237 write(2, " File \"build/bdist.linux-x86_64/egg/yas3fs/__init__.py\", line 259, in open\n", 76) = 76
16237 write(2, " self.content = open(filename, mode='rb+')\n", 46) = 46
16237 write(2, "IOError: [Errno 2] No such file or directory: u'/tmp/yas3fs-s3vol-GDz3nW/files/etc-sudoers.d/secure_path'\n", 118) = 118
This is the part of the code which fails (__init__.py
):
def open(self):
with self.get_lock():
if not self.has('open'):
if self.store == 'disk':
filename = self.cache.get_cache_filename(self.path)
self.content = open(filename, mode='rb+')
self.inc('open')
Any ideas how to fix that?
@dgagnon I've made a quick workaround. please, test it if you can
@jazzl0ver I am not convinced we have the exact same issue. The error code is different. I get EFAULT (bad address) and not ENOENT (No such file or directory). I really appreciate you looking into this though :p
I am reasonably certain that the issue has to do with fuse-libs more than yas3fs, but I have been unable to pin point the root cause yet. Since I am unable to replicate the issue reliably, I have been unable to get an strace yet, but I will keep on trying.
We are having some issue with long running yas3fs mounts. Our node app sometime cannot read a file and the error is :
It also happened today with grep:
Here is the log entries around for when I ran the recursive grep:
This happens with mostly default options:
As well as heavily tuned:
The problem seems to happen more often on files that are often being read and happens more often over time. umounting/remounting fixes it.
Linux ip 4.9.85-38.58.amzn1.x86_64 #1 SMP Wed Mar 14 01:17:26 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux Python 2.7 yas3fs 2.3.5 fuse-2.9.4-1.17.amzn1.x86_64 fuse-libs-2.9.4-1.17.amzn1.x86_64 python27-boto-2.48.0-1.2.amzn1.noarch python27-botocore-1.8.13-1.66.amzn1.noarch
Any input would be appreciated.