Skip to content

Commit caaac1e

Browse files
committed
Merge branch 'master' into okhttp-remove-4096
2 parents 12d2f41 + 67fc2e1 commit caaac1e

File tree

26 files changed

+2331
-229
lines changed

26 files changed

+2331
-229
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: GitHub Actions Branch Testing
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- 'v1.*'
8+
schedule:
9+
- cron: '54 19 * * SUN' # weekly at a "random" time
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
arm64:
16+
runs-on: ubuntu-24.04-arm
17+
strategy:
18+
matrix:
19+
jre: [17]
20+
fail-fast: false # Should swap to true if we grow a large matrix
21+
22+
steps:
23+
- uses: actions/checkout@v4
24+
- uses: actions/setup-java@v4
25+
with:
26+
java-version: ${{ matrix.jre }}
27+
distribution: 'temurin'
28+
29+
- name: Gradle cache
30+
uses: actions/cache@v4
31+
with:
32+
path: |
33+
~/.gradle/caches
34+
~/.gradle/wrapper
35+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
36+
restore-keys: |
37+
${{ runner.os }}-gradle-
38+
39+
- name: Build
40+
run: ./gradlew -Dorg.gradle.parallel=true -Dorg.gradle.jvmargs='-Xmx1g' -PskipAndroid=true -PskipCodegen=true -PerrorProne=false test
41+

bom/build.gradle

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,32 @@
11
plugins {
2+
id 'java-platform'
23
id "maven-publish"
34
}
45

56
description = 'gRPC: BOM'
67

8+
gradle.projectsEvaluated {
9+
def projectsToInclude = rootProject.subprojects.findAll {
10+
return it.name != 'grpc-compiler'
11+
&& it.plugins.hasPlugin('java')
12+
&& it.plugins.hasPlugin('maven-publish')
13+
&& it.tasks.findByName('publishMavenPublicationToMavenRepository')?.enabled
14+
}
15+
dependencies {
16+
constraints {
17+
projectsToInclude.each { api it }
18+
}
19+
}
20+
}
21+
722
publishing {
823
publications {
924
maven(MavenPublication) {
10-
// remove all other artifacts since BOM doesn't generates any Jar
11-
artifacts = []
12-
25+
from components.javaPlatform
1326
pom.withXml {
14-
// Generate bom using subprojects
15-
def internalProjects = [
16-
project.name,
17-
'grpc-compiler',
18-
]
19-
20-
def dependencyManagement = asNode().appendNode('dependencyManagement')
21-
def dependencies = dependencyManagement.appendNode('dependencies')
22-
rootProject.subprojects.each { subproject ->
23-
if (internalProjects.contains(subproject.name)) {
24-
return
25-
}
26-
if (!subproject.hasProperty('publishMavenPublicationToMavenRepository')) {
27-
return
28-
}
29-
if (!subproject.publishMavenPublicationToMavenRepository.enabled) {
30-
return
31-
}
32-
def dependencyNode = dependencies.appendNode('dependency')
33-
dependencyNode.appendNode('groupId', subproject.group)
34-
dependencyNode.appendNode('artifactId', subproject.name)
35-
dependencyNode.appendNode('version', subproject.version)
36-
}
27+
def dependencies = asNode().dependencyManagement.dependencies.last()
3728
// add protoc gen (produced by grpc-compiler with different artifact name)
29+
// not sure how to express "<type>pom</type>" in gradle, kept in XML
3830
def dependencyNode = dependencies.appendNode('dependency')
3931
dependencyNode.appendNode('groupId', project.group)
4032
dependencyNode.appendNode('artifactId', 'protoc-gen-grpc-java')

buildscripts/kokoro/linux_aarch64.cfg

Lines changed: 0 additions & 13 deletions
This file was deleted.

buildscripts/kokoro/linux_aarch64.sh

Lines changed: 0 additions & 17 deletions
This file was deleted.

buildscripts/qemu_helpers/prepare_qemu.sh

Lines changed: 0 additions & 26 deletions
This file was deleted.

buildscripts/run_arm64_tests_in_docker.sh

Lines changed: 0 additions & 47 deletions
This file was deleted.

core/src/main/java/io/grpc/internal/RetriableStream.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,15 @@ public void run() {
846846
}
847847
}
848848

849+
private static final boolean isExperimentalRetryJitterEnabled = GrpcUtil
850+
.getFlag("GRPC_EXPERIMENTAL_XDS_RLS_LB", true);
851+
852+
public static long intervalWithJitter(long intervalNanos) {
853+
double inverseJitterFactor = isExperimentalRetryJitterEnabled
854+
? 0.8 * random.nextDouble() + 0.4 : random.nextDouble();
855+
return (long) (intervalNanos * inverseJitterFactor);
856+
}
857+
849858
private static final class SavedCloseMasterListenerReason {
850859
private final Status status;
851860
private final RpcProgress progress;
@@ -1066,7 +1075,7 @@ private RetryPlan makeRetryDecision(Status status, Metadata trailer) {
10661075
if (pushbackMillis == null) {
10671076
if (isRetryableStatusCode) {
10681077
shouldRetry = true;
1069-
backoffNanos = (long) (nextBackoffIntervalNanos * random.nextDouble());
1078+
backoffNanos = intervalWithJitter(nextBackoffIntervalNanos);
10701079
nextBackoffIntervalNanos = Math.min(
10711080
(long) (nextBackoffIntervalNanos * retryPolicy.backoffMultiplier),
10721081
retryPolicy.maxBackoffNanos);

core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3875,7 +3875,7 @@ public double nextDouble() {
38753875
Status.UNAVAILABLE, PROCESSED, new Metadata());
38763876

38773877
// in backoff
3878-
timer.forwardTime(5, TimeUnit.SECONDS);
3878+
timer.forwardTime(6, TimeUnit.SECONDS);
38793879
assertThat(timer.getPendingTasks()).hasSize(1);
38803880
verify(mockStream2, never()).start(any(ClientStreamListener.class));
38813881

@@ -3894,7 +3894,7 @@ public double nextDouble() {
38943894
assertEquals("Channel shutdown invoked", statusCaptor.getValue().getDescription());
38953895

38963896
// backoff ends
3897-
timer.forwardTime(5, TimeUnit.SECONDS);
3897+
timer.forwardTime(6, TimeUnit.SECONDS);
38983898
assertThat(timer.getPendingTasks()).isEmpty();
38993899
verify(mockStream2).start(streamListenerCaptor.capture());
39003900
verify(mockLoadBalancer, never()).shutdown();

0 commit comments

Comments
 (0)