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

xroot access log file fails to log incomplete operations #7614

Open
paulmillar opened this issue Jul 10, 2024 · 0 comments
Open

xroot access log file fails to log incomplete operations #7614

paulmillar opened this issue Jul 10, 2024 · 0 comments
Labels
bug xroot Targeting affects support for the xroot protocol (either door or pool)

Comments

@paulmillar
Copy link
Member

The access log file for the Xrootd is implemented as the class org.dcache.xrootd.plugins.AccessLogHandler.

From manual inspection of the code, there appears to be a limitation in the current implementation.

Most xroot commands will result in the xrootd door sending a (dCache internal) message to some dCache component. The door then waits for the response from this message and then sends the client the appropriate xroot response.

The current behaviour of the AccessLogHandler class involves logging the request when the xrootd door sends the response to the client. This is because the access log entry should include information about both the request and the response; e.g., whether the request was successful.

In addition, the AccessLogHandler records when a client disconnects (channel becomes inactive) as an org.dcache.xrootd.connection.end event.

If the channel becomes inactive after the client as sent an xroot request, triggering the xrootd door sending a dCache internal message, but before the door receives the (dCache internal) response message then the door will not send a response to the client. Without this response, the in-flight request is not logged.

According to this info, the SLAC xrootd client by default waits 60 seconds for a response. In an overload scenario, it is possible that responses take too long and the client simply disconnects. In such cases, the xrootd request may be successful, but there is no record of the client request.

Speculating, but this issue may be the reason why xrootd client activity is not being logged in #7613.

A related (but separate!) issue involves the xrootd door degrading gracefully under overload conditions; for example, using xroot protocol's support (kXR_wait) to indicate the request is still being processed, which would extend the client's timeout.

@paulmillar paulmillar added bug xroot Targeting affects support for the xroot protocol (either door or pool) labels Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug xroot Targeting affects support for the xroot protocol (either door or pool)
Projects
None yet
Development

No branches or pull requests

1 participant