Skip to content

Commit 7628510

Browse files
committed
fix(test): relieve JVM heap stress
1. release thread when spring bean is destroyed 2. reduce the bloom filter initial size for trans-cache when running test 3. set enough memory in the project's gradle.properties
1 parent 9c897cd commit 7628510

File tree

5 files changed

+42
-0
lines changed

5 files changed

+42
-0
lines changed

chainbase/src/main/java/org/tron/core/db2/core/SnapshotManager.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.concurrent.locks.LockSupport;
2525
import java.util.stream.Collectors;
2626
import javax.annotation.PostConstruct;
27+
import javax.annotation.PreDestroy;
2728
import lombok.Getter;
2829
import lombok.Setter;
2930
import lombok.extern.slf4j.Slf4j;
@@ -116,6 +117,17 @@ public void init() {
116117
exitThread.start();
117118
}
118119

120+
@PreDestroy
121+
public void close() {
122+
try {
123+
exitThread.interrupt();
124+
// help GC
125+
exitThread = null;
126+
} catch (Exception e) {
127+
logger.warn("exitThread interrupt error", e);
128+
}
129+
}
130+
119131
public static String simpleDecode(byte[] bytes) {
120132
byte[] lengthBytes = Arrays.copyOf(bytes, 4);
121133
int length = Ints.fromByteArray(lengthBytes);

consensus/src/main/java/org/tron/consensus/pbft/PbftMessageHandle.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.concurrent.TimeUnit;
2020
import java.util.stream.Collectors;
2121
import javax.annotation.PostConstruct;
22+
import javax.annotation.PreDestroy;
2223
import lombok.Setter;
2324
import lombok.extern.slf4j.Slf4j;
2425
import org.apache.commons.lang3.StringUtils;
@@ -79,6 +80,17 @@ public void init() {
7980
start();
8081
}
8182

83+
@PreDestroy
84+
public void close() {
85+
try {
86+
timer.cancel();
87+
// help GC
88+
timer = null;
89+
} catch (Exception e) {
90+
logger.warn("pbft-timer cancel error", e);
91+
}
92+
}
93+
8294
public List<Miner> getSrMinerList() {
8395
return Param.getInstance().getMiners().stream()
8496
.filter(miner -> chainBaseManager.getWitnesses().contains(miner.getWitnessAddress()))

framework/src/main/java/org/tron/core/net/TronNetDelegate.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.concurrent.TimeUnit;
1111
import java.util.concurrent.locks.LockSupport;
1212
import javax.annotation.PostConstruct;
13+
import javax.annotation.PreDestroy;
1314
import lombok.Getter;
1415
import lombok.Setter;
1516
import lombok.extern.slf4j.Slf4j;
@@ -114,6 +115,17 @@ public void init() {
114115
hitThread.start();
115116
}
116117

118+
@PreDestroy
119+
public void close() {
120+
try {
121+
hitThread.interrupt();
122+
// help GC
123+
hitThread = null;
124+
} catch (Exception e) {
125+
logger.warn("hitThread interrupt error", e);
126+
}
127+
}
128+
117129
public Collection<PeerConnection> getActivePeer() {
118130
return TronNetService.getPeers();
119131
}

framework/src/test/resources/config-test.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ storage {
6363

6464
needToUpdateAsset = false
6565

66+
# the estimated number of block transactions (default 1000, min 100, max 10000).
67+
# so the total number of cached transactions is 65536 * txCache.estimatedTransactions
68+
txCache.estimatedTransactions = 50
69+
6670
}
6771

6872
node.discovery = {

gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
org.gradle.parallel=true
2+
org.gradle.jvmargs=-Xms1g

0 commit comments

Comments
 (0)