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

cells: ignore empty core domain uris propagated by zk #7700

Merged
merged 1 commit into from
Nov 21, 2024

Conversation

kofemann
Copy link
Member

Motivation:
When Zookeeper updates core domain infos, dCache will first kill the existing cell tunnels and then later try to read and parse the new value. If the new value is an empty string (for whatever reason), parsing will fail, but a new connection will not be established. The corresponding error in the log:

18 Nov 2024 08:45:00 (c-dcache-head-xxx03_messageDomain-AAYmVA1LtnA-AAYmVA16phA) [dcache-head-xxx03_messageDomain,9.2.21,CORE] Error while reading from tunnel: java.net.SocketExceptio>
18 Nov 2024 08:45:43 (c-dcache-head-xxx03_messageDomain-AAYnKxn40fA) [] Uncaught exception in thread TunnelConnector-dcache-head-xxx03_messageDomain java.lang.NullPointerException: null
at java.base/java.net.Socket.(Socket.java:448)
at java.base/java.net.Socket.(Socket.java:264)
at java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:277)
at dmg.cells.network.LocationManagerConnector.connect(LocationManagerConnector.java:64)
at dmg.cells.network.LocationManagerConnector.run(LocationManagerConnector.java:94)
at dmg.cells.nucleus.CellNucleus.lambda$wrapLoggingContext$2(CellNucleus.java:725)
at java.base/java.lang.Thread.run(Thread.java:829)

Modification:
before killing existing tunnel check that ZK didn't propagate empty data.

Result:
More roust cell communication

NOTE: a non empty invalid data still accepted!!!

Fixes: #7696
Acked-by: Lea Morschel
Target: master, 10.2, 10.1, 10.0, 9.2
Require-book: no
Require-notes: yes
(cherry picked from commit 30829c9)

Motivation:
When Zookeeper updates core domain infos, dCache will first kill the existing cell tunnels
and then later try to read and parse the new value. If the new value is an empty
string (for whatever reason), parsing will fail, but a new connection will not be
established. The corresponding error in the log:

18 Nov 2024 08:45:00 (c-dcache-head-xxx03_messageDomain-AAYmVA1LtnA-AAYmVA16phA) [dcache-head-xxx03_messageDomain,9.2.21,CORE] Error while reading from tunnel: java.net.SocketExceptio>
18 Nov 2024 08:45:43 (c-dcache-head-xxx03_messageDomain-AAYnKxn40fA) [] Uncaught exception in thread TunnelConnector-dcache-head-xxx03_messageDomain
java.lang.NullPointerException: null
        at java.base/java.net.Socket.<init>(Socket.java:448)
        at java.base/java.net.Socket.<init>(Socket.java:264)
        at java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:277)
        at dmg.cells.network.LocationManagerConnector.connect(LocationManagerConnector.java:64)
        at dmg.cells.network.LocationManagerConnector.run(LocationManagerConnector.java:94)
        at dmg.cells.nucleus.CellNucleus.lambda$wrapLoggingContext$2(CellNucleus.java:725)
        at java.base/java.lang.Thread.run(Thread.java:829)

Modification:
before killing existing tunnel check that ZK didn't propagate empty
data.

Result:
More roust cell communication

NOTE: a non empty invalid data still accepted!!!

Fixes: #7696
Acked-by: Lea Morschel
Target: master, 10.2, 10.1, 10.0, 9.2
Require-book: no
Require-notes: yes
(cherry picked from commit 30829c9)
Signed-off-by: Tigran Mkrtchyan <[email protected]>
@mksahakyan mksahakyan merged commit 95c4792 into 10.0 Nov 21, 2024
0 of 2 checks passed
@mksahakyan mksahakyan deleted the issue-7696-10.0 branch November 21, 2024 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants