@@ -75,22 +75,25 @@ func (s *cgroupDiskStaller) Setup(ctx context.Context) {
75
75
// Safety measure.
76
76
s .f .Fatalf ("cluster needs ReusePolicyNone to support disk stalls" )
77
77
}
78
- if err := s .Failer .Setup (ctx , s .f .L (), failures.DiskStallArgs {
78
+ l := newDiskStallLogger (s .f .L (), s .c .CRDBNodes (), "Setup" )
79
+ if err := s .Failer .Setup (ctx , l , failures.DiskStallArgs {
79
80
StallLogs : s .stallLogs ,
80
81
Nodes : s .c .CRDBNodes ().InstallNodes (),
81
82
}); err != nil {
82
83
s .f .Fatalf ("failed to setup disk stall: %s" , err )
83
84
}
84
85
}
85
86
func (s * cgroupDiskStaller ) Cleanup (ctx context.Context ) {
86
- err := s .Failer .Cleanup (ctx , s .f .L ())
87
+ l := newDiskStallLogger (s .f .L (), s .c .CRDBNodes (), "Cleanup" )
88
+ err := s .Failer .Cleanup (ctx , l )
87
89
if err != nil {
88
90
s .f .Fatalf ("failed to cleanup disk stall: %s" , err )
89
91
}
90
92
}
91
93
92
94
func (s * cgroupDiskStaller ) Stall (ctx context.Context , nodes option.NodeListOption ) {
93
- if err := s .Failer .Inject (ctx , s .f .L (), failures.DiskStallArgs {
95
+ l := newDiskStallLogger (s .f .L (), nodes , "Stall" )
96
+ if err := s .Failer .Inject (ctx , l , failures.DiskStallArgs {
94
97
StallLogs : s .stallLogs ,
95
98
StallWrites : true ,
96
99
StallReads : s .stallReads ,
@@ -103,7 +106,8 @@ func (s *cgroupDiskStaller) Stall(ctx context.Context, nodes option.NodeListOpti
103
106
func (s * cgroupDiskStaller ) Slow (
104
107
ctx context.Context , nodes option.NodeListOption , bytesPerSecond int ,
105
108
) {
106
- if err := s .Failer .Inject (ctx , s .f .L (), failures.DiskStallArgs {
109
+ l := newDiskStallLogger (s .f .L (), nodes , "Slow" )
110
+ if err := s .Failer .Inject (ctx , l , failures.DiskStallArgs {
107
111
StallLogs : s .stallLogs ,
108
112
StallWrites : true ,
109
113
StallReads : s .stallReads ,
@@ -115,7 +119,8 @@ func (s *cgroupDiskStaller) Slow(
115
119
}
116
120
117
121
func (s * cgroupDiskStaller ) Unstall (ctx context.Context , nodes option.NodeListOption ) {
118
- if err := s .Failer .Recover (ctx , s .f .L ()); err != nil {
122
+ l := newDiskStallLogger (s .f .L (), nodes , "Unstall" )
123
+ if err := s .Failer .Recover (ctx , l ); err != nil {
119
124
s .f .Fatalf ("failed to unstall disk: %s" , err )
120
125
}
121
126
}
@@ -141,19 +146,22 @@ func (s *dmsetupDiskStaller) Setup(ctx context.Context) {
141
146
// We disable journaling and do all kinds of things below.
142
147
s .f .Fatalf ("cluster needs ReusePolicyNone to support disk stalls" )
143
148
}
144
- if err := s .Failer .Setup (ctx , s .f .L (), failures.DiskStallArgs {Nodes : s .c .CRDBNodes ().InstallNodes ()}); err != nil {
149
+ l := newDiskStallLogger (s .f .L (), s .c .CRDBNodes (), "Setup" )
150
+ if err := s .Failer .Setup (ctx , l , failures.DiskStallArgs {Nodes : s .c .CRDBNodes ().InstallNodes ()}); err != nil {
145
151
s .f .Fatalf ("failed to setup disk stall: %s" , err )
146
152
}
147
153
}
148
154
149
155
func (s * dmsetupDiskStaller ) Cleanup (ctx context.Context ) {
150
- if err := s .Failer .Cleanup (ctx , s .f .L ()); err != nil {
156
+ l := newDiskStallLogger (s .f .L (), s .c .CRDBNodes (), "Cleanup" )
157
+ if err := s .Failer .Cleanup (ctx , l ); err != nil {
151
158
s .f .Fatalf ("failed to cleanup disk stall: %s" , err )
152
159
}
153
160
}
154
161
155
162
func (s * dmsetupDiskStaller ) Stall (ctx context.Context , nodes option.NodeListOption ) {
156
- if err := s .Failer .Inject (ctx , s .f .L (), failures.DiskStallArgs {
163
+ l := newDiskStallLogger (s .f .L (), nodes , "Stall" )
164
+ if err := s .Failer .Inject (ctx , l , failures.DiskStallArgs {
157
165
Nodes : nodes .InstallNodes (),
158
166
}); err != nil {
159
167
s .f .Fatalf ("failed to stall disk: %s" , err )
@@ -168,10 +176,24 @@ func (s *dmsetupDiskStaller) Slow(
168
176
}
169
177
170
178
func (s * dmsetupDiskStaller ) Unstall (ctx context.Context , nodes option.NodeListOption ) {
171
- if err := s .Failer .Recover (ctx , s .f .L ()); err != nil {
179
+ l := newDiskStallLogger (s .f .L (), nodes , "Unstall" )
180
+ if err := s .Failer .Recover (ctx , l ); err != nil {
172
181
s .f .Fatalf ("failed to unstall disk: %s" , err )
173
182
}
174
183
}
175
184
176
185
func (s * dmsetupDiskStaller ) DataDir () string { return "{store-dir}" }
177
186
func (s * dmsetupDiskStaller ) LogDir () string { return "logs" }
187
+
188
+ // newDiskStallLogger attempts to create a quiet child logger for a given
189
+ // disk staller method. If the child logger cannot be created, it logs
190
+ // a warning and continues with the parent logger.
191
+ func newDiskStallLogger (l * logger.Logger , nodes option.NodeListOption , name string ) * logger.Logger {
192
+ quietLogger , file , err := LoggerForCmd (l , nodes , name )
193
+ if err != nil {
194
+ l .Printf ("WARN: failed to create child logger for %s(): %s" , name , err )
195
+ return l
196
+ }
197
+ l .Printf ("%s() details in %s.log" , name , file )
198
+ return quietLogger
199
+ }
0 commit comments