Skip to content

RATIS-2171. Safer initialization of TransactionContext#logIndexFuture #1262

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 229 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
84285d3
RATIS-1925. Support Zero-Copy in GrpcClientProtocolService (#1007)
duongkame Jan 13, 2024
59dfd35
RATIS-1998. Add watch request metrics (#1009)
ivandika3 Jan 13, 2024
2062058
RATIS-1989. Intermittent timeout in TestStreamObserverWithTimeout (#1…
adoroszlai Jan 15, 2024
863c2e8
RATIS-1987. Intermittent NPE in TestGrpcZeroCopy. (#1013)
szetszwo Jan 15, 2024
6671ef6
RATIS-1999. Move RaftServerJmxAdapter out from RaftServerImpl. (#1010)
szetszwo Jan 16, 2024
2448256
RATIS-2001. TransactionContext can be wrongly reused. (#1015)
szetszwo Jan 17, 2024
eae0d18
RATIS-2005. Fix URF_UNREAD_FIELD in MetricServerCallListener (#1018)
adoroszlai Jan 18, 2024
859a410
RATIS-2006. Fix DM_EXIT in filestore Client (#1019)
adoroszlai Jan 18, 2024
14eb0bf
RATIS-2002. Fix findbugs warnings in LogSegmentPath (#1017)
adoroszlai Jan 18, 2024
5d4ec69
RATIS-1990. Refactor appendEntries processing to support reference co…
duongkame Jan 18, 2024
82f7b3b
RATIS-2003. Fix IT_NO_SUCH_ELEMENT in InstallSnapshotRequests (#1016)
adoroszlai Jan 18, 2024
fc5c725
RATIS-2004. Fix EQ_COMPARETO_USE_OBJECT_EQUALS in LogSegment (#1020)
adoroszlai Jan 18, 2024
82c31ea
RATIS-2009. ReferenceCount should work for all LogEntry types. (#1021)
duongkame Jan 19, 2024
d459eb6
RATIS-1934. Support Zero-Copy in GrpcServerProtocolService (#1014)
duongkame Jan 19, 2024
561cd6d
RATIS-2010. Remove dependency on spotbugs-annotations (#1022)
adoroszlai Jan 19, 2024
c1e0ec2
RATIS-2013. OrderedAsync retry results an IllegalStateException in Gr…
szetszwo Jan 22, 2024
0e24757
RATIS-1972. Add junit 5 dependencies in ratis-server. (#1003)
nandakumar131 Jan 23, 2024
ea1341b
RATIS-2012. Client should not retry after close. (#1025)
szetszwo Jan 23, 2024
79923c2
RATIS-2008. Follower should recognize candidate if the candidate is t…
ivandika3 Jan 24, 2024
e2aaddc
RATIS-2007. Zero-copy buffers are not released (#1027)
duongkame Jan 25, 2024
a18d08c
RATIS-2015. Node.js 16 actions are deprecated (#1028)
adoroszlai Jan 25, 2024
5560718
RATIS-2011. When a log entry is truncated, remove TransactionContext.…
szetszwo Jan 25, 2024
7d587ec
RATIS-2017: checkAndEvictCache must be done in writeLock. (#1031)
duongkame Jan 27, 2024
035cd96
RATIS-2016. Correct NotificationInstallSnapshot's index (#1030)
symious Jan 28, 2024
9cd74a2
RATIS-1974. Migrate ratis-metrics-default tests to Junit 5 (#1034)
nandakumar131 Jan 29, 2024
c4b10fa
RATIS-2018. Zero-copy buffers are not released - 2nd chunk (#1032)
duongkame Jan 30, 2024
cf897f0
RATIS-1973. Migrate ratis-examples tests to Junit 5. (#1035)
nandakumar131 Jan 30, 2024
d2f1c57
RATIS-2019 Fixed abnormal exit of StateMachineUpdater (#1033)
OneSizeFitsQuorum Jan 30, 2024
c46da22
RATIS-1978. Add tests assertions to verify all zero-copy messages are…
duongkame Jan 31, 2024
a2cb49e
RATIS-1975. Migrate ratis-metrics-dropwizard3 tests to Junit 5. (#1037)
nandakumar131 Feb 1, 2024
e44de26
RATIS-1976. Migrate ratis-test tests to Junit 5 - Part 1 (#1038)
nandakumar131 Feb 1, 2024
4f5612f
RATIS-2023. Remove duplicate RefCountingMap (#1039)
adoroszlai Feb 1, 2024
775b286
RATIS-1997. Refactor StateMachine interface to use ReferenceCountedOb…
duongkame Feb 1, 2024
1d99921
RATIS-2024. Refactor appendEntries code. (#1040)
szetszwo Feb 6, 2024
16b6536
RATIS-2025. Move out assert and proto methods from RaftServerImpl. (#…
szetszwo Feb 7, 2024
67b7650
RATIS-2021. Migrate ratis-test tests to Junit 5 - Part 2. (#1043)
nandakumar131 Feb 20, 2024
044b111
RATIS-2027. Ratis Streaming: Remote Stream copy data to heap. (#1044)
szetszwo Feb 21, 2024
53d35c0
RATIS-2020. Refactor TransactionContext to supply LogEntryProto via a…
duongkame Feb 21, 2024
1bd4510
RATIS-2038. IllegalStateException when ServerState is closed before s…
szetszwo Mar 1, 2024
df436c7
RATIS-2035. Refactor streaming code for Read. (#1046)
szetszwo Mar 7, 2024
99a833c
Ratis-2031. Add peer info to response of GroupInfoCommand CLI (#1047)
DaveTeng0 Mar 8, 2024
e199daa
RATIS-2028. Refactor RaftLog to supply log as ReferenceCountedObject …
duongkame Mar 12, 2024
422cb9d
RATIS-2043. Change toString() of RaftConfigurationImpl (#1051)
symious Mar 15, 2024
44a4f1f
RATIS-2044. Fix ReadIndex loss caused by data race in AppendEntriesLi…
SzyWilliam Mar 18, 2024
72c060d
RATIS-2045. SnapshotInstallationHandler doesn't notify follower when …
hemantk-12 Mar 20, 2024
c3d615b
RATIS-2047. Avoid unnecessary warn log when creating raft group (#1054)
OneSizeFitsQuorum Mar 22, 2024
be497d5
RATIS-2048. Fix SimpleStateMachineStorage potential NPE exception (#1…
OneSizeFitsQuorum Mar 22, 2024
0f631fe
RATIS-2036. Avoid trigger snapshot when removing raftGroup (#1055)
OneSizeFitsQuorum Mar 23, 2024
54c2b1f
RATIS-2049. Suppress Sonar warning for volatile objects (#1057)
OneSizeFitsQuorum Mar 25, 2024
14dbbf3
RATIS-2050. Add creationGap param to snapshot management API (#1058)
SzyWilliam Mar 26, 2024
397c2ef
RATIS-2026. LogAppender to consume log entries with reference count (…
duongkame Mar 27, 2024
a99e709
RATIS-2052. Add docs for triggering snapshot when removing raftGroup …
OneSizeFitsQuorum Mar 29, 2024
c73a3eb
RATIS-1979. Allow StateMachine.read to return a ReferentCountedObject…
duongkame Apr 2, 2024
f404244
RATIS-2051. Fix Sonar bugs for Ratis. (#1059)
OneSizeFitsQuorum Apr 3, 2024
bc6221b
RATIS-1519. When DataStreamManagement#read an exception occurs, remov…
guohao-rosicky Apr 8, 2024
8638a2f
Ratis-2040. Fix RaftPeerId generated by command of "raftMetaConf" to …
DaveTeng0 Apr 10, 2024
49b4006
RATIS-1504. Add timeout handling to DataStreamManagement#checkSuccess…
szetszwo Apr 12, 2024
8913a99
RATIS-2056. Update purge index when snapshot installed. (#1065)
SzyWilliam Apr 12, 2024
cf9d229
RATIS-2057. Add back JavaUtils.attemptUntilTrue(..). (#1066)
szetszwo Apr 16, 2024
ee09075
RATIS-2059. Missing reference count when putting log entries to cache…
duongkame Apr 17, 2024
8704cd2
RATIS-2055. Move notifyTermIndexUpdated after leader.checkReady (#1068)
symious Apr 19, 2024
7f1b1b6
RATIS-2060 Avoid unexpected shutdown of RaftServerProxy during member…
OneSizeFitsQuorum Apr 25, 2024
b0ec114
RATIS-2061. Fix setCloseThreshold parameter in RaftServerConfigKeys (…
whbing Apr 26, 2024
1fe59e0
RATIS-2065. Avoid the out-of-heap memory OOM phenomenon of frequent c…
OneSizeFitsQuorum Apr 29, 2024
4e3eee7
RATIS-2069. RaftMetaConf command sets incorrect peerAddress pattern. …
sadanand48 May 3, 2024
51244e4
RATIS-2068. Avoid logging raw StateMachine data body. (#1074)
duongkame May 3, 2024
cbd9793
RATIS-2070. Skip push build for dependabot (#1077)
adoroszlai May 5, 2024
6fc4222
RATIS-2071. Bump Bouncy Castle to 1.78.1 (#1076)
dependabot[bot] May 5, 2024
5867192
RATIS-2072. Limit timeout of CI workflow jobs (#1078)
adoroszlai May 6, 2024
839f8fb
RATIS-2073. Enable Surefire process checkers (#1079)
adoroszlai May 6, 2024
3888520
RATIS-2067. Enhance content for concept in ratis-docs. (#1073)
OneSizeFitsQuorum May 7, 2024
ac05d64
RATIS-2074. Intermittent fork timeout in TestRaftWithNetty#testBasicA…
szetszwo May 7, 2024
e176501
RATIS-2078. Correct timeout unit for tests (#1083)
symious May 8, 2024
8c9c801
RATIS-2080. Reuse LeaderElection executor. (#1082)
szetszwo May 10, 2024
da9eee0
RATIS-2087. Remove workaround for GitHub reverse DNS issue (#1089)
adoroszlai May 10, 2024
0814b89
RATIS-2086. Autolink Ozone issues in PRs (#1088)
adoroszlai May 10, 2024
33cb586
Revert "RATIS-2080. Reuse LeaderElection executor. (#1082)"
szetszwo May 10, 2024
c10e7bc
RATIS-2076. Intermittent timeout in TestRaftWithNetty#testWithLoad. (…
szetszwo May 11, 2024
7f04919
RATIS-2077. Timedout StateMachine retainRead is released twice (#1081)
duongkame May 11, 2024
8bc09bb
RATIS-2085. Compile Ratis with JDK 17/21 in CI (#1087)
adoroszlai May 12, 2024
599835d
RATIS-2083. Timer thread leak when log level is DEBUG (#1086)
ChenSammi May 13, 2024
29bba59
RATIS-2088. Fix name and imports related check in test-directory (#1092)
symious May 14, 2024
192ce48
RATIS-2090. Bump ratis-thirdparty to 1.0.6 (#1093)
adoroszlai May 15, 2024
c81902a
RATIS-2066. RaftServerProxy supports close callback (#1072)
ChenSammi May 15, 2024
9cfd1bf
RATIS-2091. Fix other checkstyle issues in test-directory (#1094)
symious May 16, 2024
8c7c444
RATIS-2081. Comment that we skip checkstyle on test directory on purp…
symious May 17, 2024
16f2508
RATIS-2098. RaftLogTruncateTests may fail. (#1097)
szetszwo May 22, 2024
53d5af7
RATIS-2092. Add metrics to expose number of zero-copy unclosed messag…
duongkame May 23, 2024
64ae88f
RATIS-2097 Add a conf to enable/disable Metadata entries. (#1101)
OneSizeFitsQuorum May 24, 2024
1782cd9
RATIS-2099. Cache TermIndexImpl instead of using anonymous class (#1100)
symious May 24, 2024
26385f3
RATIS-2096. Add a conf to enable/disable zero copy. (#1099)
duongkame May 24, 2024
e002587
RATIS-2093. Decouple metadata and configuration entries from appendEn…
duongkame May 24, 2024
93eb32a
RATIS-2101. Move TermIndex.PRIVATE_CACHE to Util.CACHE (#1103)
symious May 25, 2024
640749b
RATIS-2100. The `closeFuture` never completed while closing from the …
chungen0126 May 25, 2024
dd75ffb
RATIS-2089. Add CommitInfoProto in NotReplicatedException (#1105)
ivandika3 May 28, 2024
bd4ab14
RATIS-2102. AsyncApi#send() is not handling retry and reply correctly…
smengcl May 29, 2024
924a0cd
RATIS-2084. Follower reply ALREADY_INSTALLED when install old snapsho…
SzyWilliam May 30, 2024
a2bdd10
RATIS-2094. Avoid corruptions from TransactionContext's stateMachineL…
duongkame Jun 3, 2024
bf13033
RATIS-2106. Add configuration reference for RaftClient (#1107)
smengcl Jun 5, 2024
dac27e4
RATIS-2109. RaftLogBase#updateCommitIndex should return true only if …
ivandika3 Jun 5, 2024
e540e46
RATIS-2112. Improve repeat-test workflow (#1112)
adoroszlai Jun 13, 2024
25a41e3
[RATIS-2111] Reinitialize should load the latest snapshot (#1111)
AngersZhuuuu Jun 13, 2024
95ea26c
RATIS-2095. Extract common logic of ratis-shell to RaftUtils for reus…
DaveTeng0 Jun 14, 2024
34fa62c
RATIS-2114. Corruption due to SegmentedRaftLogWorker queue LogEntry w…
duongkame Jun 21, 2024
19ead39
RATIS-2110. Publish SBOM artifacts (#1110)
adoroszlai Jun 25, 2024
ee9e14f
RATIS-2117. No need for manual assembly:single execution (#1115)
adoroszlai Jun 28, 2024
c31806d
RATIS-2120. Bump version after 3.1.0 release (#1118)
adoroszlai Jun 29, 2024
1cb6908
RATIS-2118. Improve assembly process (#1117)
adoroszlai Jul 1, 2024
eeaf6a4
RATIS-2121. Set javac --release when compiling with JDK 9+ (#1119)
adoroszlai Jul 1, 2024
32745c3
RATIS-2116. Fix the issue where RaftServerImpl.appendEntries may be b…
sunhaibotb Jul 2, 2024
d101678
RATIS-1840. Avoid including build timestamp in artifacts (#1114)
adoroszlai Jul 2, 2024
9bb6953
RATIS-2125. javadoc jars should not include non-doc items (#1123)
adoroszlai Jul 15, 2024
7825b4f
RATIS-1071. NettyClientRpc supports sendRequestAsync. Contributed by …
szetszwo Jul 17, 2024
fb4968f
RATIS-2131. Surround with [] only if hostName is a IPv6 string (#1125)
mridulm Jul 25, 2024
011dc0a
RATIS-2126. Optimize NotLeaderException message (#1124)
weimingdiit Jul 30, 2024
99925e3
RATIS-2133. Ignore http proxy for ratis grpc client & server (#1128)
sadanand48 Aug 1, 2024
a793e6c
RATIS-2104. Double shutdown in TestLeaderInstallSnapshot. (#1108)
duongkame Aug 2, 2024
4ba4637
RATIS-2134. `logMetadata` could miss appending the `metadataEntry` w…
chungen0126 Aug 6, 2024
ebeab93
RATIS-2136 Fixed the issue that RatisServer could not start after fre…
OneSizeFitsQuorum Aug 9, 2024
177097c
RATIS-2115. Fix flaky RetryCacheTests and InstallSnapshotFromLeaderTe…
szetszwo Aug 12, 2024
69ec8f4
RATIS-2135. The leader keeps sending inconsistent entries repeatedly …
szetszwo Aug 12, 2024
217fdb0
RATIS-2138 Remove uncessary error log in JVMPauseMonitor When GC is s…
OneSizeFitsQuorum Aug 13, 2024
8d4c4ae
RATIS-2139. Fix checkstyle:ParameterNumber in GrpcService. (#1134)
szetszwo Aug 14, 2024
287a4ac
RATIS-2137. Fix LogAppenderDefault in handling of INCONSISTENCY. (#1136)
Flyangz Aug 21, 2024
24fb553
RATIS-2144. SegmentedRaftLogWorker should close the stream before rel…
OneSizeFitsQuorum Aug 22, 2024
17a408f
RATIS-2140. Thread wait when installing snapshot. (#1137)
z-bb Aug 22, 2024
c266cad
RATIS-2113. Use consistent method names and parameter types in RaftUt…
szetszwo Aug 22, 2024
da5d508
Revert "RATIS-2101. Move TermIndex.PRIVATE_CACHE to Util.CACHE (#1103)"
szetszwo Aug 26, 2024
520ecab
Revert "RATIS-2099. Cache TermIndexImpl instead of using anonymous cl…
szetszwo Aug 26, 2024
dfed101
RATIS-2145. Follower hangs until the next trigger to take a snapshot.…
z-bb Aug 30, 2024
781d61d
RATIS-2129. Low replication performance because LogAppender is often …
szetszwo Aug 30, 2024
8f5159d
RATIS-2146. Fixed possible issues caused by concurrent deletion and e…
OneSizeFitsQuorum Sep 3, 2024
d1e76cf
RATIS-2148. Snapshot transfer may cause followers to trigger reloadSt…
133tosakarin Sep 7, 2024
3e38e6d
RATIS-2149.Do not perform leader election if the current RaftServer h…
133tosakarin Sep 7, 2024
1918432
RATIS-2153. ratis-version.properties missing from src bundle (#1147)
adoroszlai Sep 10, 2024
e6fe8fc
RATIS-2154. The old leader may send appendEntries after term changed.…
133tosakarin Sep 12, 2024
9ac832b
RATIS-2152. GrpcLogAppender stucks while sending an installSnapshot n…
chungen0126 Sep 12, 2024
37386c4
RATIS-2150. No need for manual assembly:single execution when mvn dep…
OneSizeFitsQuorum Sep 13, 2024
0c9e299
RATIS-2147. Md5 mismatch when snapshot install (#1142)
133tosakarin Sep 14, 2024
94f3fef
RATIS-2157 Enhance make_rc.sh for non-first rc at release time #1149
OneSizeFitsQuorum Sep 15, 2024
6451f9b
RATIS-2155. Add a builder for RatisShell. (#1150)
szetszwo Sep 18, 2024
8a50099
RATIS-2158. Let the snapshot sender and receiver use a new digester e…
133tosakarin Sep 19, 2024
acb4d1a
RATIS-2160. MetricRegistriesLoader should not print INFO message in C…
szetszwo Sep 29, 2024
e3d6736
RATIS-2162. When closing leaderState, if the logAppender thread sends…
133tosakarin Sep 30, 2024
a0c4255
RATIS-2167. Add default value in TermIndex (#1161)
jianghuazhu Oct 4, 2024
da3f90b
RATIS-2169. mvnw test: Corrupted STDOUT by directly writing to native…
szetszwo Oct 7, 2024
de4e24d
RATIS-2165. Do not include RaftClientRequest Message in ReadIndexRequ…
133tosakarin Oct 9, 2024
09f6b39
RATIS-2166. Update nextChunkIndex when snapshot is ALREADY_INSTALLED …
133tosakarin Oct 9, 2024
df1d38a
RATIS-2151. TestRaftWithGrpc keeps failing with zero-copy. (#1164)
szetszwo Oct 11, 2024
62ae6d9
RATIS-2172. RaftServer may lose FollowerState (#1166)
133tosakarin Oct 11, 2024
a15bde1
RATIS-2164. LeakDetector has a race condition. (#1163)
szetszwo Oct 16, 2024
e96ed1a
RATIS-2168. Support custom gRPC services. (#1169)
szetszwo Oct 17, 2024
fc39c38
RATIS-2173. Fix zero-copy bugs for non-gRPC cases. (#1167)
szetszwo Oct 20, 2024
d08ba81
RATIS-2174. Move future.join outside the lock (#1168)
133tosakarin Oct 21, 2024
3a51121
RATIS-2179. Fix NPE in RaftServerImpl.getLogInfo. (#1171)
SteNicholas Oct 25, 2024
bf15765
RATIS-2178. Add a log message whenever deleting a RaftLog segment. (#…
szetszwo Oct 28, 2024
237b7c0
RATIS-2182. Fix some Objects.requireNonNull messages (#1172)
jianghuazhu Oct 31, 2024
e75a0d5
RATIS-2183. Detect staled snapshot request. (#1173)
133tosakarin Nov 1, 2024
26c1f04
RATIS-2177. Purge should delete segmentLog from small to large accord…
133tosakarin Nov 10, 2024
13b8cdd
RATIS-2186. Raft log should not purge index lower than the log start …
ivandika3 Nov 12, 2024
06affdf
RATIS-2189. Use ByteBufAllocator#ioBuffer in NettyDataStreamUtils (#1…
ivandika3 Nov 15, 2024
04396ca
RATIS-2191. Add ResourceLeakDetector to Netty tests (#1180)
ivandika3 Nov 22, 2024
ccbe9a6
RATIS-2194. FileLock didn't unlock properly (#1183)
chungen0126 Nov 26, 2024
3efec8d
RATIS-2201. Bump ratis-thirdparty from 1.0.6 to 1.0.7 (#1185)
OneSizeFitsQuorum Nov 28, 2024
a4826e2
RATIS-2185. Improve gRPC log messages debugability. (#1186)
szetszwo Dec 2, 2024
e9755a6
RATIS-2204. Avoid downloads from repository.apache.org (#1187)
adoroszlai Dec 11, 2024
703189e
RATIS-2206. Jars in Maven repo and binary tarball are not the same (#…
adoroszlai Dec 14, 2024
a0eada8
RATIS-2211. publish-mvn fails with: ... did not assign a file to the …
adoroszlai Dec 17, 2024
318c897
RATIS-2216. Bump maven-shade-plugin to 3.6.0 (#1191)
adoroszlai Dec 21, 2024
92c4f72
RATIS-212. Fix typo in RaftAsyncTests (#1197)
ongdisheng Dec 22, 2024
551b8c9
RATIS-2222. Remove copy-rename-maven-plugin usage (#1194)
adoroszlai Dec 22, 2024
ee56932
RATIS-2220. Skip further tests after leak detected (#1193)
adoroszlai Dec 23, 2024
de2fec6
RATIS-2219. Remove duplicate test case from TestRaftWithGrpc (#1192)
adoroszlai Dec 23, 2024
0514e09
RATIS-2225. RaftClientRequest leak in RaftServerImpl. (#1198)
szetszwo Dec 23, 2024
b210965
RATIS-2184. Improve TestRaftWithGrpc test stability (#1177)
jianghuazhu Dec 23, 2024
6fd8ae1
RATIS-2210. Reduce duplication in CI workflow (#1195)
adoroszlai Dec 24, 2024
c2ae864
RATIS-2226. Enable Develocity local build cache (#1196)
adoroszlai Dec 24, 2024
accb612
RATIS-2227. LogEntryProto leak in SegmentedRaftLog (#1199)
jianghuazhu Dec 25, 2024
117d03a
RATIS-2197. Clean remote stream to resolve direct memory leak (#1179)
symious Dec 25, 2024
26912d9
RATIS-2200. Make Ratis example log at INFO level (#1189)
kiruthiga1793 Dec 26, 2024
320b207
RATIS-2231. Bump ratis-thirdparty to 1.0.8 (#1202)
OneSizeFitsQuorum Dec 27, 2024
053683f
RATIS-2232. Improve log for debugging on RaftLog / TransactionManager…
SzyWilliam Jan 2, 2025
539e804
RATIS-2234. Remove lock race between heartbeat and append log channel…
SzyWilliam Jan 2, 2025
c454d78
RATIS-2228. Refactor the offered map in LogAppenderBase.nextAppendEnt…
szetszwo Jan 3, 2025
6f34fb1
RATIS-2229. Do not print the same conf values multiple times. (#1200)
szetszwo Jan 3, 2025
5e6cc9d
RATIS-2233. make NOPROGRESS timeout configurable (#1204)
SzyWilliam Jan 3, 2025
9b74401
RATIS-2235. Allow only one thread to perform appendLog (#1206)
SzyWilliam Jan 6, 2025
17c9652
RATIS-2215. Bump maven-remote-resources-plugin to 3.3.0 (#1208)
adoroszlai Jan 8, 2025
bdde3ae
RATIS-2236 Fixed bug where manual triggerSnapshot would never finish …
OneSizeFitsQuorum Jan 8, 2025
72c920c
RATIS-2237 Add getFollowerMatchIndices interface for DivisionInfo
OneSizeFitsQuorum Jan 13, 2025
8353a01
RATIS-2239. Publish build scans to develocity.apache.org (#1212)
adoroszlai Jan 17, 2025
345641f
RATIS-2240. updatePurgeIndex doesn't need to hold RaftLogBase.writeLo…
SzyWilliam Jan 22, 2025
2664ac8
RATIS-2244. Reduce the number of log messages during bootstrap (#1217)
venkatsambath Feb 3, 2025
af8482c
RATIS-2247. Bump GitHub Actions runner to ubuntu-24.04 (#1219)
adoroszlai Feb 11, 2025
bbe20b3
RATIS-2248. Rename CI workflows to .yaml (#1220)
adoroszlai Feb 11, 2025
a9ebdb6
RATIS-2249. Remove unused shellcheck.sh (#1221)
adoroszlai Feb 11, 2025
663a44b
RATIS-2245. Ratis should wait for all apply transaction futures befor…
swamirishi Feb 19, 2025
fde8c7d
RATIS-2242 change consistency criteria of heartbeat during appendLog …
SzyWilliam Feb 20, 2025
6238fe3
RATIS-2252. Replace JUnitRunListener with JUnit5TestExecutionListener…
szetszwo Feb 26, 2025
e604110
RATIS-2217. Automatically re-try flaky tests in CI (#1229)
adoroszlai Feb 26, 2025
a477d6d
RATIS-2254. Replace junit 4 Timeout with junit 5. (#1230)
szetszwo Feb 26, 2025
59f1992
RATIS-2022. Replace some Guava usage with builtins (#1231)
adoroszlai Feb 27, 2025
0091c1c
RATIS-2124. Remove the use of org.junit.Rule. (#1232)
slfan1989 Mar 4, 2025
09ff1e1
RATIS-2256. Update Maven to 3.9.9 (#1234)
szetszwo Mar 5, 2025
d740e51
RATIS-2255. Migrate ratis-grpc to junit 5. (#1233)
szetszwo Mar 5, 2025
fab8a92
RATIS-2261. Mark TestRaftSnapshotWithGrpc as flaky
adoroszlai Mar 17, 2025
3947cf3
RATIS-2262. Mark RaftBasicTests#testStateMachineMetrics as flaky
adoroszlai Mar 17, 2025
0bc5aad
RATIS-2260. AtomicFileOutputStream should truncate temp file (#1237)
adoroszlai Mar 17, 2025
f00d764
RATIS-2263. Bump sonar-maven-plugin to 5.0.0.4389 (#1238)
adoroszlai Mar 17, 2025
ac35188
RATIS-2258. Caching TermIndex objects (#1239)
szetszwo Mar 19, 2025
7723c2b
RATIS-2266. Use WeakValueCache instead of Guava cache in RaftId. (#1240)
szetszwo Mar 22, 2025
93ab53c
RATIS-2268. A minor documatention fix for method getSuccessors. (#1242)
hfutatzhanghb Mar 24, 2025
72c1765
RATIS-2269. Remove all import java.util.* statements. (#1243)
hfutatzhanghb Mar 25, 2025
0fd4b3a
RATIS-2209. Exercise make_rc.sh in CI (#1244)
adoroszlai Mar 31, 2025
688bbae
RATIS-2271 Leadership Loss Causes ClosedByInterruptException and Null…
RkGrit Apr 5, 2025
7be7cb8
RATIS-2274. Newly added peer may retain outdated configuration after …
RkGrit Apr 5, 2025
f5e9935
RATIS-2278. Follower Fails to Append Entries Due to Index Validation …
RkGrit Apr 11, 2025
ca81a21
Revert "RATIS-2278. Follower Fails to Append Entries Due to Index Val…
szetszwo Apr 17, 2025
de58f05
RATIS-2282. LogAppender Restart Due to Premature Log Entry Access Dur…
RkGrit Apr 20, 2025
8ab57e1
RATIS-2278. Follower Fails to Append Entries Due to Index Validation …
RkGrit Apr 22, 2025
3247c7f
RATIS-2283. GrpcLogAppender Thread Restart Leaves catchup=false, Bloc…
RkGrit Apr 23, 2025
c36dac0
RATIS-2285. Bump ratis-thirdparty to 1.0.9 (#1252)
adoroszlai May 2, 2025
d637a93
RATIS-2286. Generate the necessary unified names for the submodules u…
jianghuazhu May 2, 2025
3babac3
RATIS-2287. Improve RaftServerImpl#toString() to make it more readabl…
jianghuazhu May 7, 2025
7f85d46
RATIS-2289. Coverage is 0% due to no execution data files provided (#…
adoroszlai May 9, 2025
21f9e5b
RATIS-2180. Use Objects.requireNonNull instead of Preconditions.asser…
jianghuazhu May 12, 2025
b0f5330
RATIS-2291. Fix failing TestInstallSnapshotNotificationWithGrpc#testA…
slfan1989 May 12, 2025
282d7a1
RATIS-2290. Simply the EventQueue in leader (#1258)
jianghuazhu May 14, 2025
31b2fe4
RATIS-2171. Safer initialization of TransactionContext#logIndexFuture
jianghuazhu May 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ github:
squash: true
merge: false
rebase: false
autolink_jira: RATIS
autolink_jira:
- HDDS
- RATIS

notifications:
commits: commits@ratis.apache.org
Expand Down
203 changes: 203 additions & 0 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This reusable workflow executes a single check from `dev-support/checks/`.
# Before and after the check, it performs various steps based on workflow inputs.

name: ci-check

on:
workflow_call:
inputs:
# REQUIRED
script:
type: string
description: "Test script to run from dev-support/checks, without .sh extension"
required: true

# OPTIONAL (ordered alphabetically)
java-version:
type: string
description: "Java version to set up (default: 8)"
default: '8'
required: false

needs-binary-tarball:
type: boolean
description: "Whether to download Ratis binary tarball created by build (default: no)"
default: false
required: false

needs-maven-repo:
type: boolean
description: "Whether to download Ratis jars created by build (default: no)"
default: false
required: false

needs-source-tarball:
type: boolean
description: "Whether to download Ratis source tarball created by build (default: no)"
default: false
required: false

runner:
type: string
description: "GitHub Actions runner to use"
default: 'ubuntu-24.04'
required: false

script-args:
type: string
description: "Arguments for the test script"
default: ''
required: false

split:
type: string
description: "Name of split for matrix jobs, only used in display name"
default: ''
required: false

timeout-minutes:
type: number
description: "Job timeout in minutes (default: 30)"
default: 30
required: false

env:
MAVEN_ARGS: --batch-mode --show-version
MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
WITH_COVERAGE: ${{ github.event_name == 'push' }}

jobs:
check:
name: ${{ (inputs.split && format('{0} ({1})', inputs.script, inputs.split)) || inputs.script }}
runs-on: ${{ inputs.runner }}
timeout-minutes: ${{ inputs.timeout-minutes }}
steps:
- name: Checkout project
if: ${{ !inputs.needs-source-tarball }}
uses: actions/checkout@v4

- name: Download source tarball
if: ${{ inputs.needs-source-tarball }}
uses: actions/download-artifact@v4
with:
name: ratis-src

- name: Extract source tarball
if: ${{ inputs.needs-source-tarball }}
run: |
tar --strip-components 1 -xzvf ratis*-src.tar.gz

- name: Create cache for Maven dependencies
if: ${{ inputs.script == 'build' }}
uses: actions/cache@v4
with:
path: |
~/.m2/repository/*/*/*
!~/.m2/repository/org/apache/ratis
key: maven-repo-${{ hashFiles('**/pom.xml') }}
restore-keys: |
maven-repo-

- name: Restore cache for Maven dependencies
if: ${{ inputs.script != 'build' }}
uses: actions/cache/restore@v4
with:
path: |
~/.m2/repository/*/*/*
!~/.m2/repository/org/apache/ratis
key: maven-repo-${{ hashFiles('**/pom.xml') }}
restore-keys: |
maven-repo-

- name: Download Maven repo
id: download-maven-repo
if: ${{ inputs.needs-maven-repo }}
uses: actions/download-artifact@v4
with:
name: maven-repo
path: |
~/.m2/repository/org/apache/ratis

- name: Download binary tarball
if: ${{ inputs.needs-binary-tarball }}
uses: actions/download-artifact@v4
with:
name: ratis-bin

- name: Extract binary tarball
if: ${{ inputs.needs-binary-tarball }}
run: |
mkdir -p ratis-assembly/target
tar xzvf ratis-*-bin.tar.gz -C ratis-assembly/target

- name: Setup java ${{ inputs.java-version }}
if: ${{ inputs.java-version }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ inputs.java-version }}

- name: Execute tests
run: |
dev-support/checks/${{ inputs.script }}.sh ${{ inputs.script-args }}
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

- name: Summary of failures
if: ${{ failure() }}
run: |
if [[ -s "target/${{ inputs.script }}/summary.txt" ]]; then
cat target/${{ inputs.script }}/summary.txt
fi

- name: Archive build results
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ${{ (inputs.split && format('{0}-{1}', inputs.script, inputs.split)) || inputs.script }}
path: target/${{ inputs.script }}
continue-on-error: true

# The following steps are hard-coded to be run only for 'build' check,
# to avoid the need for 3 more inputs.
- name: Store binaries for tests
if: ${{ inputs.script == 'build' && !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ratis-bin
path: |
ratis-assembly/target/ratis-assembly-*-bin.tar.gz
retention-days: 1

- name: Store source tarball for compilation
if: ${{ inputs.script == 'build' && !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ratis-src
path: |
ratis-assembly/target/ratis-assembly-*-src.tar.gz
retention-days: 1

- name: Store Maven repo for tests
if: ${{ inputs.script == 'build' && !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: maven-repo
path: |
~/.m2/repository/org/apache/ratis
retention-days: 1
150 changes: 150 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: CI

on:
workflow_call:
inputs:
ref:
type: string
description: Ratis git ref (branch, tag or commit hash)
default: ''
required: false

jobs:
build:
uses: ./.github/workflows/check.yaml
with:
script: build
script-args: -Prelease
timeout-minutes: 30
secrets: inherit

compile:
needs:
- build
strategy:
matrix:
java: [ 11, 17, 21 ]
fail-fast: false
uses: ./.github/workflows/check.yaml
with:
java-version: ${{ matrix.java }}
needs-source-tarball: true
script: compile
script-args: -Djavac.version=${{ matrix.java }}
split: ${{ matrix.java }}
timeout-minutes: 30
secrets: inherit

release:
uses: ./.github/workflows/check.yaml
with:
script: release
timeout-minutes: 30
secrets: inherit

repro:
needs:
- build
uses: ./.github/workflows/check.yaml
with:
needs-maven-repo: true
script: repro
script-args: -Prelease
timeout-minutes: 30
secrets: inherit

basic:
strategy:
matrix:
check:
- author
- checkstyle
- findbugs
- rat
fail-fast: false
uses: ./.github/workflows/check.yaml
with:
script: ${{ matrix.check }}
timeout-minutes: 30
secrets: inherit

unit:
strategy:
matrix:
profile:
- grpc
- server
- misc
- flaky
fail-fast: false
uses: ./.github/workflows/check.yaml
with:
script: unit
script-args: -P${{ matrix.profile }}-tests
split: ${{ matrix.profile }}
timeout-minutes: 60
secrets: inherit

coverage:
needs:
- build
- unit
runs-on: ubuntu-24.04
timeout-minutes: 30
if: github.event_name != 'pull_request'
steps:
- name: Checkout project
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cache for maven dependencies
uses: actions/cache/restore@v4
with:
path: |
~/.m2/repository
!~/.m2/repository/org/apache/ratis
key: maven-repo-${{ hashFiles('**/pom.xml') }}
restore-keys: |
maven-repo-
- name: Setup java 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: target/artifacts
- name: Untar binaries
run: |
mkdir -p ratis-assembly/target
tar xzvf target/artifacts/ratis-bin/ratis-assembly-*.tar.gz -C ratis-assembly/target
- name: Calculate combined coverage
run: ./dev-support/checks/coverage.sh
- name: Upload coverage to Sonar
if: github.repository == 'apache/ratis'
run: ./dev-support/checks/sonar.sh
env:
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive build results
uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ github.job }}
path: target/${{ github.job }}
33 changes: 33 additions & 0 deletions .github/workflows/post-commit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: build-branch

on:
push:
branches-ignore:
- 'dependabot/**'
tags:
- '**'
pull_request:

concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
CI:
uses: ./.github/workflows/ci.yaml
secrets: inherit
Loading