Skip to content

Commit 8c0269f

Browse files
authored
Update Netty and channel tracking (#1188)
1 parent f38adc0 commit 8c0269f

File tree

4 files changed

+38
-21
lines changed

4 files changed

+38
-21
lines changed

driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelTracker.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public void channelCreated( Channel channel, ListenerEvent creatingEvent )
9090
log.debug( "Channel [%s] created. Local address: %s, remote address: %s",
9191
channel.id(), channel.localAddress(), channel.remoteAddress() );
9292

93-
incrementInUse( channel );
93+
incrementIdle( channel ); // when it is created, we count it as idle as it has not been acquired out of the pool
9494
metricsListener.afterCreated( serverAddress( channel ), creatingEvent );
9595

9696
allChannels.add( channel );

driver/src/test/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImplIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ void shouldFailToAcquireConnectionWhenPoolIsClosed()
123123
assertThrows( ServiceUnavailableException.class, () -> await( pool.acquire( neo4j.address() ) ) );
124124
assertThat( error.getMessage(), containsString( "closed while acquiring a connection" ) );
125125
assertThat( error.getCause(), instanceOf( IllegalStateException.class ) );
126-
assertThat( error.getCause().getMessage(), containsString( "FixedChannelPooled was closed" ) );
126+
assertThat( error.getCause().getMessage(), containsString( "FixedChannelPool was closed" ) );
127127
}
128128

129129
private ConnectionPoolImpl newPool() throws Exception

driver/src/test/java/org/neo4j/driver/internal/async/pool/NettyChannelTrackerTest.java

+35-18
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ class NettyChannelTrackerTest
4949
private final NettyChannelTracker tracker = new NettyChannelTracker( DEV_NULL_METRICS, mock( ChannelGroup.class ), DEV_NULL_LOGGING );
5050

5151
@Test
52-
void shouldIncrementInUseCountWhenChannelCreated()
52+
void shouldIncrementIdleCountWhenChannelCreated()
5353
{
5454
Channel channel = newChannel();
5555
assertEquals( 0, tracker.inUseChannelCount( address ) );
5656
assertEquals( 0, tracker.idleChannelCount( address ) );
5757

5858
tracker.channelCreated( channel, null );
59-
assertEquals( 1, tracker.inUseChannelCount( address ) );
60-
assertEquals( 0, tracker.idleChannelCount( address ) );
59+
assertEquals( 0, tracker.inUseChannelCount( address ) );
60+
assertEquals( 1, tracker.idleChannelCount( address ) );
6161
}
6262

6363
@Test
@@ -68,33 +68,45 @@ void shouldIncrementInUseCountWhenChannelAcquired()
6868
assertEquals( 0, tracker.idleChannelCount( address ) );
6969

7070
tracker.channelCreated( channel, null );
71+
assertEquals( 0, tracker.inUseChannelCount( address ) );
72+
assertEquals( 1, tracker.idleChannelCount( address ) );
73+
74+
tracker.channelAcquired( channel );
7175
assertEquals( 1, tracker.inUseChannelCount( address ) );
7276
assertEquals( 0, tracker.idleChannelCount( address ) );
77+
}
7378

74-
tracker.channelReleased( channel );
79+
@Test
80+
void shouldIncrementIdleCountWhenChannelReleased()
81+
{
82+
Channel channel = newChannel();
7583
assertEquals( 0, tracker.inUseChannelCount( address ) );
76-
assertEquals( 1, tracker.idleChannelCount( address ) );
84+
assertEquals( 0, tracker.idleChannelCount( address ) );
7785

78-
tracker.channelAcquired( channel );
86+
channelCreatedAndAcquired( channel );
7987
assertEquals( 1, tracker.inUseChannelCount( address ) );
8088
assertEquals( 0, tracker.idleChannelCount( address ) );
89+
90+
tracker.channelReleased( channel );
91+
assertEquals( 0, tracker.inUseChannelCount( address ) );
92+
assertEquals( 1, tracker.idleChannelCount( address ) );
8193
}
8294

8395
@Test
84-
void shouldIncrementInuseCountForAddress()
96+
void shouldIncrementIdleCountForAddress()
8597
{
8698
Channel channel1 = newChannel();
8799
Channel channel2 = newChannel();
88100
Channel channel3 = newChannel();
89101

90-
assertEquals( 0, tracker.inUseChannelCount( address ) );
102+
assertEquals( 0, tracker.idleChannelCount( address ) );
91103
tracker.channelCreated( channel1, null );
92-
assertEquals( 1, tracker.inUseChannelCount( address ) );
104+
assertEquals( 1, tracker.idleChannelCount( address ) );
93105
tracker.channelCreated( channel2, null );
94-
assertEquals( 2, tracker.inUseChannelCount( address ) );
106+
assertEquals( 2, tracker.idleChannelCount( address ) );
95107
tracker.channelCreated( channel3, null );
96-
assertEquals( 3, tracker.inUseChannelCount( address ) );
97-
assertEquals( 0, tracker.idleChannelCount( address ) );
108+
assertEquals( 3, tracker.idleChannelCount( address ) );
109+
assertEquals( 0, tracker.inUseChannelCount( address ) );
98110
}
99111

100112
@Test
@@ -104,9 +116,9 @@ void shouldDecrementCountForAddress()
104116
Channel channel2 = newChannel();
105117
Channel channel3 = newChannel();
106118

107-
tracker.channelCreated( channel1, null );
108-
tracker.channelCreated( channel2, null );
109-
tracker.channelCreated( channel3, null );
119+
channelCreatedAndAcquired( channel1 );
120+
channelCreatedAndAcquired( channel2 );
121+
channelCreatedAndAcquired( channel3 );
110122
assertEquals( 3, tracker.inUseChannelCount( address ) );
111123
assertEquals( 0, tracker.idleChannelCount( address ) );
112124

@@ -126,7 +138,7 @@ void shouldDecreaseIdleWhenClosedOutsidePool() throws Throwable
126138
{
127139
// Given
128140
Channel channel = newChannel();
129-
tracker.channelCreated( channel, null );
141+
channelCreatedAndAcquired( channel );
130142
assertEquals( 1, tracker.inUseChannelCount( address ) );
131143
assertEquals( 0, tracker.idleChannelCount( address ) );
132144

@@ -147,7 +159,7 @@ void shouldDecreaseIdleWhenClosedInsidePool() throws Throwable
147159
{
148160
// Given
149161
Channel channel = newChannel();
150-
tracker.channelCreated( channel, null );
162+
channelCreatedAndAcquired( channel );
151163
assertEquals( 1, tracker.inUseChannelCount( address ) );
152164
assertEquals( 0, tracker.idleChannelCount( address ) );
153165

@@ -160,7 +172,6 @@ void shouldDecreaseIdleWhenClosedInsidePool() throws Throwable
160172
// Then
161173
assertEquals( 0, tracker.inUseChannelCount( address ) );
162174
assertEquals( 0, tracker.idleChannelCount( address ) );
163-
164175
}
165176

166177
@Test
@@ -226,4 +237,10 @@ private EmbeddedChannel newChannelWithProtocolV3()
226237
setMessageDispatcher( channel, mock( InboundMessageDispatcher.class ) );
227238
return channel;
228239
}
240+
241+
private void channelCreatedAndAcquired( Channel channel )
242+
{
243+
tracker.channelCreated( channel, null );
244+
tracker.channelAcquired( channel );
245+
}
229246
}

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<dependency>
6060
<groupId>io.netty</groupId>
6161
<artifactId>netty-handler</artifactId>
62-
<version>4.1.22.Final</version>
62+
<version>4.1.75.Final</version>
6363
</dependency>
6464
<dependency>
6565
<groupId>org.hdrhistogram</groupId>

0 commit comments

Comments
 (0)