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

Proxy Cache (memory or disk) not returning proper stat information. #533

Closed
abh3 opened this issue Jun 27, 2017 · 0 comments
Closed

Proxy Cache (memory or disk) not returning proper stat information. #533

abh3 opened this issue Jun 27, 2017 · 0 comments
Assignees

Comments

@abh3
Copy link
Member

abh3 commented Jun 27, 2017

Specifically, for xrootd file locking to work correctly, stat() must fill in the st_dev and st_ino which should be unique to the file in question. These fields are rarely if ever set, especially for files that will be created in the cache (i.e. open+create), leading to locking failure. Below is a question that sparked this analysis.

Hello XRootD folks,

I'm GeorgeV at RAL, I work on Echo and we're seeing a weird issue with our XRootD servers.

Since putting in the XRootD caching proxy, it has been denying all of
our writes via XRootD with messages like this:

170627 17:00:14 53626 XrootdXeq: Output file
dteam:test/nagios_check_xrootd_20170627_170014_ceph-gw1 is already
opened by 15 readers; open denied.

All of our writes at this moment are from the Nagios functional check.
It is however of some concern that the proxy seems to think that every
file is opened by multiple readers, even if it is a newly generated
filename and the file is yet to be created for the first time.

With my limited knowledge of C++ and the XRootD codebase I have tracked
this down to:

if (!(popt & XROOTDXP_NOLK) && (rc = Locker->Lock(xp, doforce)))

It seems to use this method:

int XrdXrootdFileLock1::Lock(XrdXrootdFile *fp, int force)

This didn't use to happen before we put the proxy in place and we don't intend to switch back (as that solved a number of other issues). It's also difficult for us to bypass the proxy for writes due to how we have the two set up.

Has anyone seen this before? Any ideas would be much appreaciated.

@abh3 abh3 self-assigned this Jun 27, 2017
@abh3 abh3 closed this as completed in 8de8365 Jul 21, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant