Description of problem: objects created directly from s3 api are not visible on the mount nfs mount point Version-Release number of selected component (if applicable): ceph-radosgw-10.2.2-26.el7cp.x86_64 nfs-ganesha-rgw-2.3.2-2.el7cp.x86_64 How reproducible: always Steps to Reproduce: 1. configured a cluster with rgw with ganesha enabled 2. mounted with nfs mount -t nfs -o nfsvers=4.1,sync,noauto,soft,proto=tcp magna116.ceph.redhat.com:/ /mnt 3. now if you check on the mount point you will see all the buckets and objects available. 4. from s3 apis create few objects directly on rgw 5. Now on the mount point check ls Actual results: Newly created objects will not be visible Expected results: Newly created objects should be visible on the mount point Additional info: However if send a lookup on the object then it will appear on the mount point . From RGW object listing looks like =================================== another-missed-hellonew-another-newad-bucket-creation 2016-07-23T13:05:56.517Z <Key: another-missed-hellonew-another-newad-bucket-creation,4M> <Key: another-missed-hellonew-another-newad-bucket-creation,NEWBIG> <Key: another-missed-hellonew-another-newad-bucket-creation,foobar8> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll0> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll1> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll2> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll3> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll4> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll5> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll6> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll7> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll8> <Key: another-missed-hellonew-another-newad-bucket-creation,smalllllllllll9> <Policy: First User (owner) = FULL_CONTROL> From nfs mount point ==================== [root@magna110 another-missed-hellonew-another-newad-bucket-creation]# ll total 518 -rw-r--r--. 1 4294967294 4294967294 262144 Jul 23 15:35 4M -rw-rw-rw-. 1 root root 6413 Jul 23 13:05 foobar8 -rw-r--r--. 1 4294967294 4294967294 262144 Jul 23 13:43 NEWBIG ^^ onlye few objects are visible. Now send the lookup on one of the object ===================================== [root@magna110 another-missed-hellonew-another-newad-bucket-creation]# ll smalllllllllll0 -rw-rw-rw-. 1 root root 6413 Jul 23 17:26 smalllllllllll0 After the lookup ls on the mount point ========================================= [root@magna110 another-missed-hellonew-another-newad-bucket-creation]# pwd /mnt/another-missed-hellonew-another-newad-bucket-creation [root@magna110 another-missed-hellonew-another-newad-bucket-creation]# ll total 524 -rw-r--r--. 1 4294967294 4294967294 262144 Jul 23 15:35 4M -rw-rw-rw-. 1 root root 6413 Jul 23 13:05 foobar8 -rw-r--r--. 1 4294967294 4294967294 262144 Jul 23 13:43 NEWBIG -rw-rw-rw-. 1 root root 6413 Jul 23 17:26 smalllllllllll0 ^^^^^ object "smalllllllllll0" is visible on the mount point.
This behavior is likely not a bug, or may not be a bug, depending on more detailed semantic requirements discussion. In other words, these are topics for discussion for 2.1. This feature is, as well, tech preview in 2.0--so moving to 2.1, as well.
Observed this problem during 2.1 testing. buckets created in NFS mount are listed by rgw s3 api but objects created by rgw s3 api is not listed in NFS mount.
Ok, this is a defect related to lack of a mechanism to efficiently expire cached directory information, on the librgw side, and lack of a dirent expiry mechanism in nfs-ganesha. nfs-ganesha has an attribute expiration mechanism which I expected to allow eventual aging out of cached dirents, but this is not the case. I don't think this behavior will be correctable with nfs-ganesha 2.4.1/2, but will be addressed with new dirent-caching changes currently being developed. That suggests we won't be able to fix this issue in 2.3. We might need a release note for 2.2.
@Uday, Could you please let us know the decision of PM w.r.t the proposal made in comment 4?
My proposed implementation of this feature has been pushed as: https://github.com/ceph/ceph/pull/13038 (ceph) and https://github.com/linuxbox2/nfs-ganesha/tree/next-rgw-up (nfs-ganesha) The latter must go through upstream review, sequenced after merge of the ceph change, and probably after at least one upstream bugfix related to synchronous invalidate upcall arguments (details on nfs-ganesha-devel mailing list). Matt
Not seeing the buckets created by s3 in NFS mount by default but after restarting NFS service & re-mounting nfs mounts on each clients, buckets and objects created by s3 are visible. Version: Ceph: 10.2.5-7.el7cp (59e9fee4a935fdd2bc8197e07596dc4313c410a3) NFS: nfs-ganesha-rgw-2.4.1-3.el7cp.x86_64
I also observed that objects deleted from s3 are not reflected on nfs mounts and hence objects reappears again upon sending lookups on the object and also operations like write,read succeeds .
Please see my remarks and candidate code in comment 9.
Objects created in S3 are visible in NFS mount. sometimes max it took a minute to reflect the objects created using s3. Moving this bug to verified state.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2017-0514.html