Skip to content

10.2.12 scitags backport #7788

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

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
2423686
pool manager: retry request on pool up
kofemann Jul 12, 2024
1e916a9
dcache: reject access to files with nearline QoS
kofemann Sep 27, 2024
9d3eb6e
build(deps): bump org.eclipse.jetty:jetty-servlets
dependabot[bot] Oct 14, 2024
53173e1
build(deps): bump org.eclipse.jetty:jetty-server
dependabot[bot] Oct 15, 2024
e334fb0
http(old): modernize color palette
kofemann Jul 18, 2024
9f6b619
[maven-release-plugin] prepare release 10.2.0
lemora Oct 17, 2024
2aa172f
[maven-release-plugin] prepare for next development iteration
lemora Oct 17, 2024
93c5074
xroot: handle haproxy and checksum command
DmitryLitvintsev Oct 28, 2024
81a63e3
[maven-release-plugin] prepare release 10.2.1
lemora Oct 29, 2024
92c11c9
[maven-release-plugin] prepare for next development iteration
lemora Oct 29, 2024
cac439e
bulk/qos: shutdown executor services when stopped
kofemann Nov 5, 2024
a1b2a95
tape REST api: additional fix tohandling of prefixed paths
DmitryLitvintsev Nov 6, 2024
df5eb3b
[maven-release-plugin] prepare release 10.2.2
mksahakyan Nov 11, 2024
75b7a8b
[maven-release-plugin] prepare for next development iteration
mksahakyan Nov 11, 2024
ef73c01
cells: ignore empty core domain uris propagated by zk
kofemann Nov 19, 2024
62f7f19
[maven-release-plugin] prepare release 10.2.3
mksahakyan Nov 21, 2024
65d4eca
[maven-release-plugin] prepare for next development iteration
mksahakyan Nov 21, 2024
5ab9a10
jvm: drop UseCompressedOops JVM option
kofemann Nov 26, 2024
37aaa47
[maven-release-plugin] prepare release 10.2.4
khys95 Dec 3, 2024
528c0a4
[maven-release-plugin] prepare for next development iteration
khys95 Dec 3, 2024
342e010
cells: always try to re-establish dead tunnel, unless stopped
kofemann Dec 4, 2024
0265bee
qos: QOS fails with 'Attribute is not defined: QOS_POLICY'
khys95 Nov 22, 2024
f67be3b
bulk: handle absolute/relative paths in uniform fashion
DmitryLitvintsev Dec 6, 2024
92ad9eb
[maven-release-plugin] prepare release 10.2.5
khys95 Dec 13, 2024
54f4a14
[maven-release-plugin] prepare for next development iteration
khys95 Dec 13, 2024
6d235e3
pool: separate cases for disk error and no space available
mksahakyan Nov 29, 2024
f046d0f
[maven-release-plugin] prepare release 10.2.6
mksahakyan Jan 10, 2025
c87dacb
[maven-release-plugin] prepare for next development iteration
mksahakyan Jan 10, 2025
4ea4d6f
Bulk: PinManagerActivity do not set state of files that are pinned in…
DmitryLitvintsev Jan 27, 2025
90984db
cells: fix race condition between thread start and flag check
kofemann Jan 31, 2025
6277047
dcache-billing-indexer: add explicit dependency on commons-io
kofemann Jan 30, 2025
af9200c
[maven-release-plugin] prepare release 10.2.7
mksahakyan Feb 3, 2025
501fc7e
[maven-release-plugin] prepare for next development iteration
mksahakyan Feb 3, 2025
59a628d
pool: add workaround space mismanagementd by XFS (and others?)
kofemann Feb 6, 2025
dfc5d69
[maven-release-plugin] prepare release 10.2.8
mksahakyan Feb 11, 2025
744e4a9
[maven-release-plugin] prepare for next development iteration
mksahakyan Feb 11, 2025
b679ea0
qos: Uncaught NullPointerException due to QoS being set to null
khys95 Feb 7, 2025
4c0254d
[maven-release-plugin] prepare release 10.2.9
khys95 Feb 20, 2025
d2bbc9f
[maven-release-plugin] prepare for next development iteration
khys95 Feb 20, 2025
18601a9
pool:fix outofspace error sending pool into diasbled mode
mksahakyan Feb 1, 2025
4ff5dc3
[maven-release-plugin] prepare release 10.2.10
khys95 Feb 25, 2025
53fc7f2
[maven-release-plugin] prepare for next development iteration
khys95 Feb 25, 2025
533ea41
libs: use jetty 9.4.57.v20241219
kofemann Mar 25, 2025
894e3e2
Merge pull request #7768 from onnozweers/patch-15
kofemann Mar 28, 2025
4625ff0
Merge pull request #7767 from onnozweers/patch-14
kofemann Mar 28, 2025
8d458d9
[maven-release-plugin] prepare release 10.2.11
lemora Mar 28, 2025
5986f59
[maven-release-plugin] prepare for next development iteration
lemora Mar 28, 2025
14ecd2c
Changing jdk to 17, because dCache now requires it; also, jcmd is in …
Apr 3, 2025
623f1a1
Changed OpenJDK 11 to 17, because dCache now requires it. Updated dCa…
Apr 3, 2025
79b9071
Merge pull request #7773 from onnozweers/10.2
kofemann Apr 4, 2025
e8554f9
cells: use core domain endpoint only if hostname resolable
kofemann Apr 2, 2025
d059a74
jetty: disable sending version number
DmitryLitvintsev Apr 14, 2025
1fbfd8f
vehicles: support door requesting multiple checksums
paulmillar Oct 25, 2024
d721987
[maven-release-plugin] prepare release 10.2.12
mksahakyan Apr 23, 2025
05ae813
doors,pools: extend ProtocolInfo to propagate Scitags to FlowMarkers
marian-babik Mar 25, 2025
096676c
Scitags: fallback mechanism (#7775)
marian-babik Apr 4, 2025
61de82e
Scitags: Firefly usage and stats (#7778)
marian-babik May 19, 2025
701d554
10.2.12-scitags release
marian-babik May 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion archetypes/dcache-nearline-plugin-archetype/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>archetypes</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
</parent>

<artifactId>dcache-nearline-plugin-archetype</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion archetypes/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
</parent>

<artifactId>archetypes</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion docs/TheBook/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>documentation</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
</parent>

<artifactId>TheBook</artifactId>
Expand Down
4 changes: 2 additions & 2 deletions docs/TheBook/src/main/markdown/cookbook-debugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This chapter provides an information on how to exam running dCache system, ident

## Java Flight recorder

When debugging an issue on a running system often we need to collect jvm performance stats with `Java flight recorder`. Starting from release 7.2 the Java flight recorder attach listener is enabled by default. Site admins can collect and provide developers with additional information when high CPU load, memory consumption or file descriptor leaks are observed. To enable the `flight recorder` _jcmd_ command is used, which is typically provided as a part of `java-11-openjdk-devel` (on RHEL and clones).
When debugging an issue on a running system often we need to collect jvm performance stats with `Java flight recorder`. Starting from release 7.2 the Java flight recorder attach listener is enabled by default. Site admins can collect and provide developers with additional information when high CPU load, memory consumption or file descriptor leaks are observed. To enable the `flight recorder` _jcmd_ command is used, which is typically provided as a part of `java-17-openjdk-headless` (on RHEL and clones).

To control recoding the following subcommands of _jcmd_ available:

Expand Down Expand Up @@ -111,4 +111,4 @@ Overhead Shared Object Symbol
0.74% [kernel] [k] entry_SYSCALL_64
```

More info on usage perf usage at [perf Examples](https://www.brendangregg.com/perf.html) by Brendan Gregg.
More info on usage perf usage at [perf Examples](https://www.brendangregg.com/perf.html) by Brendan Gregg.
8 changes: 4 additions & 4 deletions docs/TheBook/src/main/markdown/dcache-minimal-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ For a minimal test installation:
- At least 500 MiB free disk space

- Software:
- OpenJDK 11
- OpenJDK 17
- Postgres SQL Server 9.5 or later
- ZooKeeper version 3.5 (in case of a standalone ZooKeeper installation)

Expand All @@ -40,11 +40,11 @@ help you with your system specifications. Just contact us: <[email protected]>.

#### Software:

- OpenJDK 11 (java 11 , and java 17 for dCache staring from version 10.1)
- OpenJDK 17 (or OpenJDK 11 for dCache versions before 10.1)

> yum install java-11-openjdk
> yum install java-17-openjdk
>
> dnf install java-11-openjdk-devel
> dnf install java-17-openjdk-devel


- ZooKeeper version 3.7 (in case of a standalone ZooKeeper installation)
Expand Down
4 changes: 2 additions & 2 deletions docs/TheBook/src/main/markdown/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,14 @@ rpm -ivh https://www.dcache.org/old/downloads/1.9/repo/##SERIES##/dcache-##VERSI
| 1:dcache-##VERSION##-1 ################################# [100%]
```

For example, `##SERIES##` could be `9.1` and `##VERSION##` could be `9.1.1`.
For example, `##SERIES##` could be `10.1` and `##VERSION##` could be `10.1.1`.

### Installing prerequisite packages

First, install OpenJDK and httpd-tools packages.

```console-root
yum install java-11-openjdk-headless httpd-tools
dnf install java-17-openjdk-headless httpd-tools
```

### Installing PostgreSQL
Expand Down
2 changes: 1 addition & 1 deletion docs/UserGuide/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>documentation</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
</parent>

<artifactId>UserGuide</artifactId>
Expand Down
12 changes: 9 additions & 3 deletions docs/UserGuide/src/main/markdown/macaroons.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,8 @@ has a couple of important consequences:

dCache defines seven activities that describe what someone using the
macaroon is allowed to do. These are `READ_METADATA`,
`UPDATE_METADATA`, `LIST`, `DOWNLOAD`, `MANAGE`, `UPLOAD` and
`DELETE`,
`UPDATE_METADATA`, `LIST`, `DOWNLOAD`, `MANAGE`, `UPLOAD`,
`DELETE` and `STAGE`.

<dl>
<dt>READ_METADATA</dt>
Expand All @@ -186,7 +186,7 @@ macaroon is allowed to do. These are `READ_METADATA`,
<dd>
<p>Any request that attempts to update the metadata about the
file: modifying the POSIX permissions, updating ACLs, updating
extended attributes, updating QoS or locality (staging).</p>
extended attributes, updating QoS.</p>
</dd>

<dt>LIST</dt>
Expand Down Expand Up @@ -231,6 +231,12 @@ macaroon is allowed to do. These are `READ_METADATA`,
inaccessible from one path but accessible from another is namespace
management (see MANAGE activity).</p>
</dd>

<dt>STAGE</dt>

<dd>
<p>Any request that stages (restores) files from tape.</p>
</dd>
</dl>

The following describes how HTTP requests are mapped to different
Expand Down
3 changes: 2 additions & 1 deletion docs/UserGuide/src/main/markdown/webdav.md
Original file line number Diff line number Diff line change
Expand Up @@ -1354,7 +1354,8 @@ activities are defined:
| DELETE | Delete a file or directory or overwrite an existing file
| MANAGE | Rename and move files or directories
| READ_METADATA | Obtain file metadata
| UPDATE_METADATA | Modify file metadata, stage a file or change its QoS
| UPDATE_METADATA | Modify file metadata, change its QoS
| STAGE | Stage (restore) a file from tape

The <tt>READ_METADATA</tt> is implied if any other activity is specified.
For example, the caveat <tt>activity:LIST,DOWNLOAD</tt> restricts the
Expand Down
2 changes: 1 addition & 1 deletion docs/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
</parent>

<artifactId>documentation</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion modules/acl-vehicles/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/acl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/benchmarks/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/cells/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ public LocationManagerConnector(String cellName, String args, SocketFactory sock
@Override
protected void started() {
_thread = getNucleus().newThread(this, "TunnelConnector-" + _domain);
_thread.start();
_isRunning = true;
_thread.start();
}

private StreamEngine connect()
Expand Down Expand Up @@ -102,8 +102,8 @@ public void run() {
} finally {
getNucleus().kill(tunnel.getCellName());
}
} catch (InterruptedIOException | ClosedByInterruptException e) {
throw e;
} catch (InterruptedIOException | InterruptedException | ClosedByInterruptException e) {
_log.warn("Connection to {} ({}) interrupted. Reason: {}", _domain, _address, e.toString());
} catch (ExecutionException | IOException e) {
String error = Exceptions.meaningfulMessage(Throwables.getRootCause(e));
_log.warn(AlarmMarkerFactory.getMarker(PredefinedAlarm.LOCATION_MANAGER_FAILURE,
Expand All @@ -116,11 +116,16 @@ public void run() {
_status = "Sleeping";
long sleep = random.nextInt(16000) + 4000;
_log.warn("Sleeping {} seconds", sleep / 1000);
Thread.sleep(sleep);
try {
Thread.sleep(sleep);
} catch (InterruptedException e) {
// restore interrupted status
Thread.currentThread().interrupt();
}
}
} catch (InterruptedIOException | InterruptedException | ClosedByInterruptException ignored) {
} finally {
NDC.pop();
_thread = null;
_status = "Terminated";
}
}
Expand Down
69 changes: 49 additions & 20 deletions modules/cells/src/main/java/dmg/cells/services/LocationManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
import org.apache.curator.framework.recipes.cache.NodeCacheListener;
import org.apache.curator.framework.recipes.cache.PathChildrenCache;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent.Type;
import org.apache.curator.utils.CloseableUtils;
import org.apache.curator.utils.ZKPaths;
import org.apache.zookeeper.CreateMode;
Expand Down Expand Up @@ -216,7 +217,9 @@ public CoreDomainInfo(byte[] bytes) {
switch (entry.getScheme()) {
case "tls":
case "tcp":
endpoints.add(entry);
if (canResoveHost(entry)) {
endpoints.add(entry);
}
break;
default:
LOGGER.warn("Unknown Scheme for LocationManager Cores: {}", entry);
Expand All @@ -225,10 +228,30 @@ public CoreDomainInfo(byte[] bytes) {
}
} catch (IOException ie) {
throw new IllegalArgumentException(
"Failed deserializing LocationManager Cores as uri: {}", ie.getCause());
"Failed deserializing LocationManager Cores as uri", ie);
}
}

/**
* Check if hostname provided by urc can be resolved.
* @param endpoint core domain endpoint
* @return true it host name can be resolved. Otherwise false.
*/
private boolean canResoveHost(URI endpoint) {
var h = endpoint.getHost();
if (h == null) {
LOGGER.warn("Ignoring URL without host: {}", endpoint);
return false;
}
try {
var ip = java.net.InetAddress.getByName(h);
} catch (UnknownHostException e) {
LOGGER.warn("Ignoring unknown host: {} : {}", endpoint, e.toString());
return false;
}
return true;
}

void addCore(String scheme, String host, int port) {
switch (scheme) {
case "tls":
Expand Down Expand Up @@ -513,40 +536,46 @@ public void close() {
public void reset(Mode mode, State state) {
}

private boolean hasNoData(ChildData data) {
return data == null || data.getData() == null || data.getData().length == 0;
}

public void update(PathChildrenCacheEvent event) {
LOGGER.info("{}", event);
String cell;

if (hasNoData(event.getData())) {
LOGGER.warn("Ignoring empty event {}", event.getType());
return;
}

String domain = ZKPaths.getNodeFromPath(event.getData().getPath());

switch (event.getType()) {
case CHILD_REMOVED:
cell = connectors.remove(ZKPaths.getNodeFromPath(event.getData().getPath()));
cell = connectors.remove(domain);
if (cell != null) {
killConnector(cell);
}
break;
case CHILD_UPDATED:
cell = connectors.remove(ZKPaths.getNodeFromPath(event.getData().getPath()));
if (cell != null) {
killConnector(cell);
}
// fall through
case CHILD_ADDED:
//Log if the Core Domain Information received is incompatible with previous

CoreDomainInfo info = infoFromZKEvent(event);
String domain = ZKPaths.getNodeFromPath(event.getData().getPath());
if (info.endpoints.isEmpty()) {
LOGGER.warn("Ignoring invalid core URI", domain);
break;
}

if (event.getType() == Type.CHILD_UPDATED) {
cell = connectors.remove(domain);
if (cell != null) {
killConnector(cell);
}
}

try {
if (shouldConnectTo(domain)) {
cell = connectors.remove(domain);
if (cell != null) {
LOGGER.error(
"About to create tunnel to core domain {}, but to my surprise "
+
"a tunnel called {} already exists. Will kill it. Please contact "
+
"[email protected].", domain, cell);
killConnector(cell);
}
cell = connectors.put(domain, startConnector(domain, info));
if (cell != null) {
LOGGER.error(
Expand Down
2 changes: 1 addition & 1 deletion modules/chimera/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/common-cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/common-security/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion modules/dcache-bulk/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dcache</groupId>
<artifactId>dcache-parent</artifactId>
<version>10.2.0-SNAPSHOT</version>
<version>10.2.12</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
Loading