Hello,
I'm trying to use S3QL with Google Storage, but I'm consistently running
into a problem where blocks from the cache are not making it to the
backend. I'm running on Ubuntu 14.04 and using S3QL from the PPA (version
2.11.1+dfsg-1~trusty1).
My mount command looks like this:
$ mount.s3ql --threads 4 --metadata-upload-interval 7200 --allow-other
--debug --cachedir /data/s3ql-cache --cachesize 1048567
gs://MyBucket/MyPrefix /mnt/MyBucket
Here is a sample from the mount log sometime after copying 200+ files
(0.5-3MB each) into the mount point:
2014-10-19 09:57:42.902 28314:Dummy-23 (name)s.statfs: statfs(): start
2014-10-19 09:57:44.365 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:57:44.365 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:57:49.382 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:57:49.382 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:57:52.902 28314:Dummy-20 (name)s.statfs: statfs(): start
2014-10-19 09:57:53.237 28314:Thread-6 (name)s.close:
ObjectW(s3ql_data_4).close(): start
2014-10-19 09:57:53.238 28314:Thread-6 (name)s._do_request: preparing PUT
/MyPrefixs3ql_data_4?None, qs=None
2014-10-19 09:57:53.239 28314:Thread-6 (name)s._send_request:
_send_request(): PUT /MyPrefixs3ql_data_4
2014-10-19 09:57:53.351 28314:Thread-5 (name)s.close:
ObjectW(s3ql_data_3).close(): start
2014-10-19 09:57:53.352 28314:Thread-5 (name)s._do_request: preparing PUT
/MyPrefixs3ql_data_3?None, qs=None
2014-10-19 09:57:53.353 28314:Thread-5 (name)s._send_request:
_send_request(): PUT /MyPrefixs3ql_data_3
2014-10-19 09:57:54.383 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:57:54.383 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:57:54.702 28314:Thread-3 (name)s.close:
ObjectW(s3ql_data_1).close(): start
2014-10-19 09:57:54.702 28314:Thread-3 (name)s._do_request: preparing PUT
/MyPrefixs3ql_data_1?None, qs=None
2014-10-19 09:57:54.703 28314:Thread-3 (name)s._send_request:
_send_request(): PUT /MyPrefixs3ql_data_1
2014-10-19 09:57:59.384 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:57:59.384 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:57:59.793 28314:Thread-4 (name)s.close:
ObjectW(s3ql_data_2).close(): start
2014-10-19 09:57:59.794 28314:Thread-4 (name)s._do_request: preparing PUT
/MyPrefixs3ql_data_2?None, qs=None
2014-10-19 09:57:59.795 28314:Thread-4 (name)s._send_request:
_send_request(): PUT /MyPrefixs3ql_data_2
2014-10-19 09:58:02.902 28314:Dummy-24 (name)s.statfs: statfs(): start
2014-10-19 09:58:03.506 28314:Thread-6 (name)s.wrapped: Encountered
ConnectionTimedOut exception (send/recv timeout exceeded), retrying call to
ObjectW.close for the 33-th time...
2014-10-19 09:58:03.631 28314:Thread-5 (name)s.wrapped: Encountered
ConnectionTimedOut exception (send/recv timeout exceeded), retrying call to
ObjectW.close for the 33-th time...
2014-10-19 09:58:04.385 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:58:04.385 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:58:05.282 28314:Thread-3 (name)s.wrapped: Encountered
ConnectionTimedOut exception (send/recv timeout exceeded), retrying call to
ObjectW.close for the 33-th time...
2014-10-19 09:58:09.386 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:58:09.386 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:58:10.943 28314:Thread-4 (name)s.wrapped: Encountered
ConnectionTimedOut exception (send/recv timeout exceeded), retrying call to
ObjectW.close for the 33-th time...
2014-10-19 09:58:12.902 28314:Dummy-19 (name)s.statfs: statfs(): start
2014-10-19 09:58:14.387 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:58:14.387 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:58:19.388 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:58:19.388 28314:CommitThread (name)s.put: waiting for reader..
2014-10-19 09:58:22.902 28314:Dummy-18 (name)s.statfs: statfs(): start
2014-10-19 09:58:24.389 28314:CommitThread (name)s.put: timeout, returning
2014-10-19 09:58:24.389 28314:CommitThread (name)s.put: waiting for reader..
Here is what is on the back end:
$ gsutil ls -lh gs://MyBucket/
519.97 KB 2014-10-19T13:58:30Z gs://MyBucket/MyPrefixs3ql_data_3
557.45 KB 2014-10-19T13:58:23Z gs://MyBucket/MyPrefixs3ql_data_4
161 B 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_metadata
132 B 2014-10-19T12:15:12Z gs://MyBucket/MyPrefixs3ql_passphrase
132 B 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_passphrase_bak1
132 B 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_passphrase_bak2
132 B 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_passphrase_bak3
108 B 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_seq_no_1
108 B 2014-10-19T12:15:16Z gs://MyBucket/MyPrefixs3ql_seq_no_2
TOTAL: 9 objects, 1104185 bytes (1.05 MB)
(note that the timestamps for the data blocks change, but the sizes do not)
I've tried leaving the file system mounted for days and see results similar
to the above.
When I run s3qlstat it will sometimes hang and sometimes crash:
$ s3qlstat --debug /mnt/MyBucket/
2014-10-19 10:08:09.369 4344 MainThread root.excepthook: Uncaught top-level
exception:
Traceback (most recent call last):
File "/usr/bin/s3qlstat", line 9, in <module>
load_entry_point('s3ql==2.11.1', 'console_scripts', 's3qlstat')()
File "/usr/lib/s3ql/s3ql/statfs.py", line 49, in main
buf = llfuse.getxattr(ctrlfile, 's3qlstat', size_guess=256)
File "fuse_api.pxi", line 206, in llfuse.capi.getxattr
(src/llfuse/capi_linux.c:21045)
OSError: [Errno 5] Input/output error: '/mnt/MyBucket/.__s3ql__ctrl__'
If I manually kill mount.s3ql and umount the filesystem, then run
fsck.s3ql, the cache does get uploaded (with some difficulty):
$ fsck.s3ql --cachedir /data/s3ql-cache
gs://MyBucket/MyPrefix
Starting fsck of gs://MyBucket/MyPrefix
Using cached metadata.
Remote metadata is outdated.
Checking DB integrity...
Creating temporary extra indices...
Checking lost+found...
Checking cached objects...
Committing block 0 of inode 143 to backend
Committing block 0 of inode 289 to backend
Committing block 0 of inode 212 to backend
Committing block 0 of inode 338 to backend
Committing block 0 of inode 334 to backend
Committing block 0 of inode 154 to backend
Committing block 0 of inode 350 to backend
Committing block 0 of inode 354 to backend
Committing block 0 of inode 224 to backend
Committing block 0 of inode 215 to backend
Committing block 0 of inode 221 to backend
Committing block 0 of inode 339 to backend
Committing block 0 of inode 278 to backend
Committing block 0 of inode 178 to backend
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 3-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 4-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 5-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 6-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 7-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 8-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 9-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 10-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 11-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 12-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 13-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 14-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 15-th time...
Encountered ConnectionTimedOut exception (send/recv timeout exceeded),
retrying call to ObjectW.close for the 16-th time...
2014-10-19 10:45:45.960 4472:MainThread (name)s.log_error: Committing block
0 of inode 344 to backend
2014-10-19 10:45:54.484 4472:MainThread (name)s.log_error: Committing block
0 of inode 240 to backend
Looking at the backend shows the blocks that arrived:
$ gsutil ls -l gs://MyBucket/
568128 2014-10-19T14:15:12Z gs://MyBucket/MyPrefixs3ql_data_10
589184 2014-10-19T14:15:22Z gs://MyBucket/MyPrefixs3ql_data_11
560472 2014-10-19T14:15:32Z gs://MyBucket/MyPrefixs3ql_data_12
561512 2014-10-19T14:15:42Z gs://MyBucket/MyPrefixs3ql_data_13
2354084 2014-10-19T14:16:21Z gs://MyBucket/MyPrefixs3ql_data_14
2149064 2014-10-19T14:16:58Z gs://MyBucket/MyPrefixs3ql_data_15
2283988 2014-10-19T14:18:04Z gs://MyBucket/MyPrefixs3ql_data_16
581288 2014-10-19T14:18:15Z gs://MyBucket/MyPrefixs3ql_data_17
587040 2014-10-19T14:18:25Z gs://MyBucket/MyPrefixs3ql_data_18
4901596 2014-10-19T14:26:56Z gs://MyBucket/MyPrefixs3ql_data_19
532452 2014-10-19T14:08:46Z gs://MyBucket/MyPrefixs3ql_data_3
570828 2014-10-19T14:08:54Z gs://MyBucket/MyPrefixs3ql_data_4
541664 2014-10-19T14:12:14Z gs://MyBucket/MyPrefixs3ql_data_6
2131608 2014-10-19T14:12:50Z gs://MyBucket/MyPrefixs3ql_data_7
2164868 2014-10-19T14:14:42Z gs://MyBucket/MyPrefixs3ql_data_8
539144 2014-10-19T14:15:02Z gs://MyBucket/MyPrefixs3ql_data_9
161 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_metadata
132 2014-10-19T12:15:12Z gs://MyBucket/MyPrefixs3ql_passphrase
132 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_passphrase_bak1
132 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_passphrase_bak2
132 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_passphrase_bak3
108 2014-10-19T12:15:13Z gs://MyBucket/MyPrefixs3ql_seq_no_1
108 2014-10-19T12:15:16Z gs://MyBucket/MyPrefixs3ql_seq_no_2
108 2014-10-19T14:12:05Z gs://MyBucket/MyPrefixs3ql_seq_no_3
TOTAL: 23 objects, 16716337 bytes (15.94 MB)
I'm stumped. Has anyone got an idea of what might be causing my problem?
Thanks,
Rich B
--
You received this message because you are subscribed to the Google Groups
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.