- 18 Jan, 2022 2 commits
-
-
Tigran Mkrtchyan authored
-
Tigran Mkrtchyan authored
Less dependency on guava Acked-by: Lea Morschel Target: master
-
- 17 Jan, 2022 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: For a big files client might request an async copy. Moreover, the server itself might decide to switch to async mode if requests takes too long. Thus the server should be ready to notify the client when copy is complete. Modification: Update OperationCOPY to (a) use async copy if requests or switch to async mode if copyFileRange syscall takes too long. Result: async behavior for server-side-copy Acked-by: Paul Millar Target: master
-
- 13 Jan, 2022 4 commits
-
-
Tigran Mkrtchyan authored
Acked-by: Lea Morschel Target: master
-
Tigran Mkrtchyan authored
Motivation: A typical (POSIX) filesystem has only one unique identifier for a file, so called inode number. However, dCache as inumber and a corresponding pnfsid. As being originally developed as a part of dcache, nfs4j have inherited that and exposes as Stat#ino and Stat#fileid. After some iterations, only `fileid` is used, and `ino` kept as 32 bit version of it. Modification: drop Stat#get/setFileId methods in favor of Stat#get/setIno (for better compliance with POSIX). Update `ino` to 64 bit long. Update codebase to use `ino`. Result: less confusions with a price of small incompatibility with earlier versions. Acked-by: Lea Morschel Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
Acked-by: Lea Morschel Target: master
-
Tigran Mkrtchyan authored
Acked-by: Lea Morschel Target: master
-
- 12 Jan, 2022 2 commits
-
-
Tigran Mkrtchyan authored
Target: master
-
Tigran Mkrtchyan authored
Motivation: the new developments on the client side start to proper handle files creation time, thus this is a good time for nfs4j to support it as well. Modification: Introduce Stat#set/getBTime. Update NFS code to use btime if provided. Result: first steps to support of file creation time. Acked-by: Paul Millar Target: master
-
- 11 Jan, 2022 1 commit
-
-
Tigran Mkrtchyan authored
Feature release with highlights: added possibility to control memory pool used by underlying grizzly NIO framework improvements in RPC-over-TLS support builds with java17 up-to-date dependencies Changelog for oncrpc4j-3.2.0...oncrpc4j-3.1.0 * [ada2353] [maven-release-plugin] prepare for next development iteration * [b42847a] [maven-release-plugin] prepare release oncrpc4j-3.1.0 * [7b531eb] readme: add latest release badge * [6cd0cab] pom: add profile to sign artifacts * [1e91d7a] test: improve test coverage of XdrLong * [9328681] rpc: remove complete timeout task after request is complete * [c66adbf] rpc: change ABI to have more predictable client behaviour * [22fdabb] portmap: don't use Boolean object when primitive is required * [cef527b] portmap: don't create an array when calling vararg method * [5b97286] Use HTTPS instead of HTTP to resolve dependencies * [a96f091] readme: describe how to use RPC-over-TLS * [3c627fa] test: add TLS-over-UDP (DTLS) test * [d433442] build(deps): bump guava from 24.1-jre to 24.1.1-jre * [2085136] build(deps): bump junit from 4.12 to 4.13.1 * [3e86824] rpc: fix typo in error message * [b60d201] pom: require java11 * [b95b59a] portmap: fix unnecessary array creation for logging * [d4ffc78] Log the address we disconnected from in the exception * [54cf59c] xdr: remote redundant bracket * [c4b9961] oncrpc: add ability to control memory allocator * [95a99b4] gss: remove unused imports * [2d47552] rpcsvc: use try-with-resource when updating portmap * [656391d] rpc: fix typo in a comment * [cab1d81] rpc: move MemoryAllocator into org.dcache.oncrpc4j.rpc package * [f67311c] rpc: drop SimpleRpcClient and SimpleRpcServer * [d0f33a0] junit: simplify unit test assertions * [cf298a5] rpc: add RpcCall#startTLS to simplify the API * [5b1b405] build(deps-dev): bump bcprov-ext-jdk15on from 1.60 to 1.67 * [50ad1f0] pom: use grizzly-3.0.0 * [ec08f5d] rpc-over-tls: use per-connection STARTTLS attribute * [e04037d] pom: use java-17 capable jacoco-0.8.7 * [9926a66] rpc: ensure that client on startTLS sends an empty verifier * [7ecf686] rpc: introduce RpcTransport#isTLS * [87985be] gss: don't use grizzly buffer without need * [801cce6] xdr: pass grizzly memory managet to Xdr * [afb7577] [maven-release-plugin] prepare branch 3.2 * [65accd1] [maven-release-plugin] prepare release oncrpc4j-3.2.0 Acked-by: Lea Morschel Target: master
-
- 14 Dec, 2021 2 commits
-
-
Tigran Mkrtchyan authored
Allow virtual filesystem to check user subject.
-
David Kocher authored
Signed-off-by:
David Kocher <dkocher@iterate.ch>
-
- 17 Nov, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: The attribute bitmap+xdr should provide attributes that applied on file/directory creation. The current implementation in test client code is broken as bitmask calculation is wrong. Modification: Update client code to use bitmap4#of instead of custom implementation. add a possibility to specify different attributes for file and directories. Result: valid XDR on the wire. Fixes: #109 Acked-by: Paul Millar Target: master
-
- 27 Sep, 2021 2 commits
-
-
Tigran Mkrtchyan authored
Motivation: The values use by aceflag4, acemask4 and acetype4 are wrapped by uint32_t ints. Modification: Simplify aceflag4, acemask4 and acetype4 by dropping extra uint32 wrapper. Result: less work for GC. Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
Tigran Mkrtchyan authored
Motivation: The ACE flags are missing in the result of nfsace4#toString method and introduce a confusion during debugging. Modification: include ACE flags in toString method Result: consistent output in logs Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
- 01 Sep, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: When an async server side copy is performed, then server must notify the client on completion. Modification: Add copy-offload notification to the back channel. Result: the ground work for async server side copy Acked-by: Paul Millar Target: master
-
- 31 Aug, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: the newer libc make use of copy_file_range function, that directly mapped to NFSv4.2 COPY request. Modification: Add initial implementation on OperationCOPY that synchronously copies the data between two open files. Result: initial step to support intra-server copy. Acked-by: Paul Millar Target: master
-
- 05 May, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Guava's implementation of Files#asCharSink s marked @Beta and can be replaced with java native Files#writeString. Result: less dependency on guava's non stable API. Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
- 04 May, 2021 1 commit
-
-
Tigran Mkrtchyan authored
the call of Inode#toString for logging is redundant, especially when logger is disabled. Acked-by: Lea Morschel Acked-by: Paul Millar Target: master
-
- 22 Apr, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Fixes: #103
-
- 26 Feb, 2021 3 commits
-
-
Tigran Mkrtchyan authored
Motivation: There are no reasons to have to utility classes in a single package (plus Himera vs Chimera) Modification: merge NameUtils and HimeraNfsUtils into single class Utils class, including corresponding tests. Result: same code, less classes Acked-by: Marina Sahakyan Target: master
-
Tigran Mkrtchyan authored
Motivation: uid3 and gid3 object are wraps around uint32, which is by itself wrap around int. Modification: simplify buid3 and gid3y wrapping directly int Result: less load on GC. Acked-by: Paul Millar Acked-by: Marina Sahakyan Target: master
-
Tigran Mkrtchyan authored
Motivation: size3 object is a wrap around uint64, which is by itself wrap around long. Modification: simplify size3 by wrapping directly long Result: less load on GC. Acked-by: Marina Sahakyan Acked-by: Paul Millar Target: master
-
- 22 Feb, 2021 3 commits
-
-
Tigran Mkrtchyan authored
if client supports multiple layout types, then we need a way to specify which one is needed. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
re-format only
-
Tigran Mkrtchyan authored
Motivation: Current client uses LAYOUT4_NFSV4_1_FILES layout types independent from what server is offering. Modification: Update client to show server side supported layout types and disable pNFS if client doesn't supports any of them. Result: more debug possibilities Acked-by: Albert Rossi Acked-by: Paul Millar Target: master
-
- 18 Feb, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Not used as the functionality is handles by implementations of LayoutDriver interface. Acked-by: Lea Morschel Acked-by: Paul Millar Acked-by: Albert Rossi Target: master
-
- 29 Jan, 2021 1 commit
-
-
Tigran Mkrtchyan authored
as dcache.org hae disabled http->https redirection some builds start to fail. Fixes: #98 Target: master, 0.22, 0.21
-
- 07 Jan, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: The state handler keeps track of NFSv4 clients. This duty is not symmetric - updates happen when a client is added or removed, but queried almost for any compound operation in a session. Thus on a busy system we can observe thread serialization. Modification: replace synchronized blocks with read/write locks. Result: a better concurrency in a multi-client environment. Acked-by: Paul Millar Acked-by: Albert Rossi Target: master
-
- 05 Jan, 2021 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: when estimating readdir reply size we should not forget about boolean flag that indicates the presence of a next entry. Modification: fix entry overhead size. Result: The returned xdr doesn't overflow expected reply size. Acked-by: Paul Millar Target: master, 0.22
-
- 21 Dec, 2020 1 commit
-
-
Tigran Mkrtchyan authored
The exception is never thrown. Acked-by: Lea Morschel Target: master
-
- 13 Dec, 2020 1 commit
-
-
Tigran Mkrtchyan authored
-
- 09 Dec, 2020 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: Though bitmap can have an arbitrary length, the linux 5.10 client expects device notification bitmap to be size of one (1). Modification: Update OperationGETDEVICEINFO to initialize resulting notification bitmap with the length that matches requested notification bitmap. Result: Linux 5.10 client processes the result of getdeviceinfo operation as expected. Target: 0.22, master Acked-by: Paul Millar Acked-by: Albert Rossi
-
- 08 Dec, 2020 1 commit
-
-
Tigran Mkrtchyan authored
-
- 22 Oct, 2020 3 commits
-
-
Tigran Mkrtchyan authored
-
Tigran Mkrtchyan authored
-
Tigran Mkrtchyan authored
Motivation: new major version update with improvements and breaking changes: - Drop dependency on dcache-auth , which had incompatible license - Experimental AUTH_TLS support - Various javadoc improvements - Improved code coverage - removed direct dependency on grizzly-framework-monitoring The result of removal of license incompatible dcache-auth in oncrpc4j is migration from org.dcache.auth.GidPrincipal and org.dcache.auth.UidPrincipal to com.sun.security.auth.UnixNumericGroupPrincipal and com.sun.security.auth.UnixNumericUserPrincipa. This breaking change have to be handled in nfs4j. Modification: Update pom to use oncrpc4j-3.1.0. Introduce UnixSubjects that provides alternative to org.dcache.auth.Subjects. Update code base to match API changes. Result: The nfs4j has no dependency with conflicting license. Support for nfs-over-tls. WARNING: this is a breaking change that requires changes in VirtualFileSystem implementations. Acked-by: Paul Millar Target: master
-
- 20 Oct, 2020 1 commit
-
-
Tigran Mkrtchyan authored
Motivation: The NfsLoginService aimed to handle RPCSEC_GSS based session and map GSS context to appropriate Subject. However, this is always handled by RPC layer (after split of nfs and rpc modules into different projects). Thus NfsLoginService is simply a dead code. Modification: remove NfsLoginService interface Result: less dead code Acked-by: Paul Millar Acked-by: Lea Morschel Target: master
-
- 16 Oct, 2020 2 commits
-
-
Tigran Mkrtchyan authored
Motivation: the UnixUtils used by nfs client to extract curren user with the help of reflection. As com.sun.security.auth.module.UnixSystem is a part of official OpenJDK, there are no reasons to hide it usage. Modification: update nfs client to directly call com.sun.security.auth.module.UnixSystem. Result: less magic in the code. Acked-by: Paul Millar Target: master
-
Tigran Mkrtchyan authored
modernize Acked-by: Paul Millar Target: master
-