@@ -94,14 +94,16 @@ Y_UNIT_TEST_SUITE(AnalyzeColumnshard) {
94
94
auto sender = runtime.AllocateEdgeActor ();
95
95
96
96
bool eventSeen = false ;
97
- auto observer = runtime.AddObserver <TEvStatistics::TEvAnalyzeTableResponse>([&](auto &) {
97
+ auto observer = runtime.AddObserver <TEvStatistics::TEvAnalyzeTableResponse>([&](auto & ev ) {
98
98
eventSeen = true ;
99
+ ev.Reset ();
99
100
});
100
101
101
102
auto analyzeRequest1 = MakeAnalyzeRequest ({tableInfo.PathId });
102
103
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest1.release ());
103
104
104
105
runtime.WaitFor (" TEvAnalyzeTableResponse" , [&]{ return eventSeen; });
106
+ observer.Remove ();
105
107
RebootTablet (runtime, tableInfo.SaTabletId , sender);
106
108
107
109
auto analyzeRequest2 = MakeAnalyzeRequest ({tableInfo.PathId });
@@ -116,16 +118,21 @@ Y_UNIT_TEST_SUITE(AnalyzeColumnshard) {
116
118
auto tableInfo = CreateDatabaseColumnTables (env, 1 , 1 )[0 ];
117
119
auto sender = runtime.AllocateEdgeActor ();
118
120
119
- int observerCount = 0 ;
120
- auto observer = runtime.AddObserver <TEvTxProxySchemeCache::TEvResolveKeySetResult>([&](auto &){
121
- observerCount++;
122
- });
121
+ TBlockEvents<TEvTxProxySchemeCache::TEvResolveKeySetResult> block (runtime);
123
122
124
123
auto analyzeRequest1 = MakeAnalyzeRequest ({tableInfo.PathId });
125
124
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest1.release ());
126
-
127
- runtime.WaitFor (" TEvResolveKeySetResult" , [&]{ return observerCount == 3 ; });
125
+
126
+ runtime.WaitFor (" 1st TEvResolveKeySetResult" , [&]{ return block.size () >= 1 ; });
127
+ block.Unblock (1 );
128
+ runtime.WaitFor (" 2nd TEvResolveKeySetResult" , [&]{ return block.size () >= 1 ; });
129
+ block.Unblock (1 );
130
+ runtime.WaitFor (" 3rd TEvResolveKeySetResult" , [&]{ return block.size () >= 1 ; });
131
+
128
132
RebootTablet (runtime, tableInfo.SaTabletId , sender);
133
+
134
+ block.Unblock ();
135
+ block.Stop ();
129
136
130
137
auto analyzeRequest2 = MakeAnalyzeRequest ({tableInfo.PathId });
131
138
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest2.release ());
@@ -140,14 +147,16 @@ Y_UNIT_TEST_SUITE(AnalyzeColumnshard) {
140
147
auto sender = runtime.AllocateEdgeActor ();
141
148
142
149
bool eventSeen = false ;
143
- auto observer = runtime.AddObserver <TEvHive::TEvRequestTabletDistribution>([&](auto &) {
150
+ auto observer = runtime.AddObserver <TEvHive::TEvRequestTabletDistribution>([&](auto & ev ) {
144
151
eventSeen = true ;
152
+ ev.Reset ();
145
153
});
146
154
147
155
auto analyzeRequest1 = MakeAnalyzeRequest ({tableInfo.PathId });
148
156
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest1.release ());
149
157
150
158
runtime.WaitFor (" TEvRequestTabletDistribution" , [&]{ return eventSeen; });
159
+ observer.Remove ();
151
160
RebootTablet (runtime, tableInfo.SaTabletId , sender);
152
161
153
162
auto analyzeRequest2 = MakeAnalyzeRequest ({tableInfo.PathId });
@@ -163,14 +172,16 @@ Y_UNIT_TEST_SUITE(AnalyzeColumnshard) {
163
172
auto sender = runtime.AllocateEdgeActor ();
164
173
165
174
bool eventSeen = false ;
166
- auto observer = runtime.AddObserver <TEvStatistics::TEvAggregateStatistics>([&](auto &){
175
+ auto observer = runtime.AddObserver <TEvStatistics::TEvAggregateStatistics>([&](auto & ev ){
167
176
eventSeen = true ;
177
+ ev.Reset ();
168
178
});
169
179
170
180
auto analyzeRequest1 = MakeAnalyzeRequest ({tableInfo.PathId });
171
181
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest1.release ());
172
182
173
183
runtime.WaitFor (" TEvAggregateStatistics" , [&]{ return eventSeen; });
184
+ observer.Remove ();
174
185
RebootTablet (runtime, tableInfo.SaTabletId , sender);
175
186
176
187
auto analyzeRequest2 = MakeAnalyzeRequest ({tableInfo.PathId });
@@ -186,14 +197,16 @@ Y_UNIT_TEST_SUITE(AnalyzeColumnshard) {
186
197
auto sender = runtime.AllocateEdgeActor ();
187
198
188
199
bool eventSeen = false ;
189
- auto observer = runtime.AddObserver <TEvStatistics::TEvAggregateStatisticsResponse>([&](auto &){
200
+ auto observer = runtime.AddObserver <TEvStatistics::TEvAggregateStatisticsResponse>([&](auto & ev ){
190
201
eventSeen = true ;
202
+ ev.Reset ();
191
203
});
192
204
193
205
auto analyzeRequest1 = MakeAnalyzeRequest ({tableInfo.PathId });
194
206
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest1.release ());
195
207
196
208
runtime.WaitFor (" TEvAggregateStatisticsResponse" , [&]{ return eventSeen; });
209
+ observer.Remove ();
197
210
RebootTablet (runtime, tableInfo.SaTabletId , sender);
198
211
199
212
auto analyzeRequest2 = MakeAnalyzeRequest ({tableInfo.PathId });
@@ -202,22 +215,24 @@ Y_UNIT_TEST_SUITE(AnalyzeColumnshard) {
202
215
runtime.GrabEdgeEventRethrow <TEvStatistics::TEvAnalyzeResponse>(sender);
203
216
}
204
217
205
- //
206
218
Y_UNIT_TEST (AnalyzeRebootSaInAggregate) {
207
219
TTestEnv env (1 , 1 );
208
220
auto & runtime = *env.GetServer ().GetRuntime ();
209
221
auto tableInfo = CreateDatabaseColumnTables (env, 1 , 10 )[0 ];
210
222
auto sender = runtime.AllocateEdgeActor ();
211
223
212
224
int observerCount = 0 ;
213
- auto observer = runtime.AddObserver <TEvStatistics::TEvStatisticsRequest>([&](auto &) {
214
- observerCount++;
225
+ auto observer = runtime.AddObserver <TEvStatistics::TEvStatisticsRequest>([&](auto & ev) {
226
+ if (++observerCount >= 5 ) {
227
+ ev.Reset ();
228
+ }
215
229
});
216
230
217
231
auto analyzeRequest1 = MakeAnalyzeRequest ({tableInfo.PathId });
218
232
runtime.SendToPipe (tableInfo.SaTabletId , sender, analyzeRequest1.release ());
219
233
220
- runtime.WaitFor (" 5th TEvStatisticsRequest" , [&]{ return observerCount == 5 ; });
234
+ runtime.WaitFor (" 5th TEvStatisticsRequest" , [&]{ return observerCount >= 5 ; });
235
+ observer.Remove ();
221
236
RebootTablet (runtime, tableInfo.SaTabletId , sender);
222
237
223
238
auto analyzeRequest2 = MakeAnalyzeRequest ({tableInfo.PathId });
0 commit comments