Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mimic: rgw_file: fix invalidation of top-level directories #29276

Merged
merged 2 commits into from Oct 11, 2019

Conversation

@smithfarm
Copy link
Contributor

smithfarm commented Jul 24, 2019

Originally, root_fh was reachable from RGWLibFS::fh_cache, but
this was problematic as it has infinite lifetime and so is not
present in RGWLibFS::fs_lru.

To fix the above, RGWLibFS::root_fh came to live unhooked from the
handle caches which works because nfs-ganesha/the application
always has an instance handle.  However, this silently breaks
READDIR event invalidation.

Fixes: https://tracker.ceph.com/issues/40196

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 547cb9f)
@smithfarm smithfarm self-assigned this Jul 24, 2019
@smithfarm smithfarm added this to the mimic milestone Jul 24, 2019
@smithfarm smithfarm requested a review from mattbenjamin Jul 24, 2019
@smithfarm smithfarm added rgw and removed core labels Jul 24, 2019
Copy link
Contributor

mattbenjamin left a comment

lgtm

Copy link
Contributor

mattbenjamin left a comment

lgtm

@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 24, 2019

Build failure is a huge wall of text starting with:

In file included from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_os_lib.cc:8:
/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_file.h: In member function 'rgw::RGWFileHandle* rgw::RGWLibFS::lookup_handle(rgw_fh_hk)':
/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_file.h:1200:44: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'rgw::fh_key')
    << __func__ << " handle lookup failed " << fhk
In file included from /usr/include/c++/8/iterator:64,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/build/boost/include/boost/utility/string_ref.hpp:26,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_rest.h:9,
                 from /home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_os_lib.cc:4:
/usr/include/c++/8/ostream:108:7: note: candidate: 'std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]'
       operator<<(__ostream_type& (*__pf)(__ostream_type&))
       ^~~~~~~~
@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 24, 2019

That build failure seems really weird to me. Re-running the test.

@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 24, 2019

jenkins test make check

@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 24, 2019

@mattbenjamin The "wall-of-text" build failure is reproducible, and I'm afraid I haven't the faintest notion what is causing it. Could you take a look?

@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 25, 2019

@chardan This cherry-pick applied cleanly, but then the build emitted a desperate wall of text and failed. I looked at it from several different directions but came up empty-handed. Any idea what the problem is?

The "wall of text" (build errors) begins with #29276 (comment) and continues in the same vein. Somehow it think the operator << is not defined in the given context, but that makes no sense?

@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 25, 2019

I preserved the "wall-of-text" build errors in a gist so they'll still be accessible after Jenkins deletes the build log: https://gist.github.com/smithfarm/7e34a42dd217690278f069725f6c0582

@chardan

This comment has been minimized.

Copy link
Contributor

chardan commented Jul 25, 2019

Hi Nathan, I'll try to help out more later today, but the main thing the compiler's complaining about is that there's no operator<<() defined for the type "rgw::fh_key". The rest of the message is basically GCC explaining everything it tried to match before it gave up. Hope that's useful!

@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 25, 2019

Thanks, @chardan, that's helpful - I understand the issue much better now!

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 84a2c22)
@smithfarm

This comment has been minimized.

Copy link
Contributor Author

smithfarm commented Jul 25, 2019

jenkins test docs

Copy link
Contributor

mattbenjamin left a comment

looks good

@yuriw

This comment has been minimized.

Copy link
Contributor

yuriw commented Oct 4, 2019

@yuriw yuriw merged commit 7a3b731 into ceph:mimic Oct 11, 2019
4 checks passed
4 checks passed
Docs: build check OK - docs built
Details
Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details
@smithfarm smithfarm deleted the smithfarm:wip-40215-mimic branch Oct 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.