1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
|
/*
Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com>
This file is part of GlusterFS.
This file is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3 or
later), or the GNU General Public License, version 2 (GPLv2), in all
cases as published by the Free Software Foundation.
*/
#ifndef _AFR_MESSAGES_H_
#define _AFR_MESSAGES_H_
#include "glfs-message-id.h"
/*! \file afr-messages.h
* \brief AFR log-message IDs and their descriptions.
*/
/* NOTE: Rules for message additions
* 1) Each instance of a message is _better_ left with a unique message ID, even
* if the message format is the same. Reasoning is that, if the message
* format needs to change in one instance, the other instances are not
* impacted or the new change does not change the ID of the instance being
* modified.
* 2) Addition of a message,
* - Should increment the GLFS_NUM_MESSAGES
* - Append to the list of messages defined, towards the end
* - Retain macro naming as glfs_msg_X (for redability across developers)
* NOTE: Rules for message format modifications
* 3) Check acorss the code if the message ID macro in question is reused
* anywhere. If reused then then the modifications should ensure correctness
* everywhere, or needs a new message ID as (1) above was not adhered to. If
* not used anywhere, proceed with the required modification.
* NOTE: Rules for message deletion
* 4) Check (3) and if used anywhere else, then cannot be deleted. If not used
* anywhere, then can be deleted, but will leave a hole by design, as
* addition rules specify modification to the end of the list and not filling
* holes.
*/
#define GLFS_COMP_BASE_AFR GLFS_MSGID_COMP_AFR
#define GLFS_NUM_MESSAGES 42
#define GLFS_MSGID_END (GLFS_COMP_BASE_AFR + GLFS_NUM_MESSAGES + 1)
#define glfs_msg_start_x GLFS_COMP_BASE_AFR, "Invalid: Start of messages"
/*!
* @messageid 108001
* @diagnosis Client quorum is not met due to which file modification
* operations are disallowed.
* @recommendedaction Some brick processes are down/ not visible from the
* client. Ensure that the bricks are up/ network traffic is not blocked.
*/
#define AFR_MSG_QUORUM_FAIL (GLFS_COMP_BASE_AFR + 1)
/*!
* @messageid 108002
* @diagnosis The bricks that were down are now up and quorum is restored.
* @recommendedaction Possibly check why the bricks went down to begin with.
*/
#define AFR_MSG_QUORUM_MET (GLFS_COMP_BASE_AFR + 2)
/*!
* @messageid 108003
* @diagnosis Client quorum-type was set to auto due to which the quorum-count
* option is no longer valid.
* @recommendedaction None.
*/
#define AFR_MSG_QUORUM_OVERRIDE (GLFS_COMP_BASE_AFR + 3)
/*!
* @messageid 108004
* @diagnosis Replication sub volume witnessed a connection notification
* from a brick which does not belong to its replica set.
* @recommendedaction None. This is a safety check in code.
*/
#define AFR_MSG_INVALID_CHILD_UP (GLFS_COMP_BASE_AFR + 4)
/*!
* @messageid 108005
* @diagnosis A replica set that was inaccessible because all its bricks were
* down is now accessible because at least one of its bricks came back up.
* @recommendedaction Possibly check why all the bricks of that replica set
* went down to begin with.
*/
#define AFR_MSG_SUBVOL_UP (GLFS_COMP_BASE_AFR + 5)
/*!
* @messageid 108006
* @diagnosis bricks of a replica set are down. Data residing in that
* replica cannot be accessed until one of the bricks come back up.
* @recommendedaction Ensure that the bricks are up.
*/
#define AFR_MSG_SUBVOLS_DOWN (GLFS_COMP_BASE_AFR + 6)
/*!
* @messageid 108007
* @diagnosis Entry unlocks failed on a brick.
* @recommendedaction Error number in the log should give the reason why it
* failed. Also observe brick logs for more information.
*/
#define AFR_MSG_ENTRY_UNLOCK_FAIL (GLFS_COMP_BASE_AFR + 7)
/*!
* @messageid 108008
* @diagnosis There is an inconsistency in the file's data/metadata/gfid
* amongst the bricks of a replica set.
* @recommendedaction Resolve the split brain by clearing the AFR changelog
* attributes from the appropriate brick and trigger self-heal.
*/
#define AFR_MSG_SPLIT_BRAIN (GLFS_COMP_BASE_AFR + 8)
/*!
* @messageid 108009
* @diagnosis open/opendir failed on a brick.
* @recommendedaction Error number in the log should give the reason why it
* failed. Also observe brick logs for more information.
*/
#define AFR_MSG_OPEN_FAIL (GLFS_COMP_BASE_AFR + 9)
/*!
* @messageid 108010
* @diagnosis unlocks failed on a brick.
* @recommendedaction Error number in the log should give the reason why it
* failed. Also observe brick logs for more information.
*/
#define AFR_MSG_UNLOCK_FAIL (GLFS_COMP_BASE_AFR + 10)
/*!
* @messageid 108011
* @diagnosis Setting of pending xattrs succeeded/failed during replace-brick
* operation.
* @recommendedaction In case of failure, error number in the log should give
* the reason why it failed. Also observe brick logs for more information.
*/
#define AFR_MSG_REPLACE_BRICK_STATUS (GLFS_COMP_BASE_AFR + 11)
/*!
* @messageid 108012
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_GFID_NULL (GLFS_COMP_BASE_AFR + 12)
/*!
* @messageid 108013
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_FD_CREATE_FAILED (GLFS_COMP_BASE_AFR + 13)
/*!
* @messageid 108014
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_DICT_SET_FAILED (GLFS_COMP_BASE_AFR + 14)
/*!
* @messageid 108015
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_EXPUNGING_FILE_OR_DIR (GLFS_COMP_BASE_AFR + 15)
/*!
* @messageid 108016
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_MIGRATION_IN_PROGRESS (GLFS_COMP_BASE_AFR + 16)
/*!
* @messageid 108017
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_CHILD_MISCONFIGURED (GLFS_COMP_BASE_AFR + 17)
/*!
* @messageid 108018
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_VOL_MISCONFIGURED (GLFS_COMP_BASE_AFR + 18)
/*!
* @messageid 108019
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_BLOCKING_LKS_FAILED (GLFS_COMP_BASE_AFR + 19)
/*!
* @messageid 108020
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_INVALID_FD (GLFS_COMP_BASE_AFR + 20)
/*!
* @messageid 108021
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_LOCK_INFO (GLFS_COMP_BASE_AFR + 21)
/*!
* @messageid 108022
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_LOCK_XLATOR_NOT_LOADED (GLFS_COMP_BASE_AFR + 22)
/*!
* @messageid 108023
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_FD_CTX_GET_FAILED (GLFS_COMP_BASE_AFR + 23)
/*!
* @messageid 108024
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_INVALID_SUBVOL (GLFS_COMP_BASE_AFR + 24)
/*!
* @messageid 108025
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_PUMP_XLATOR_ERROR (GLFS_COMP_BASE_AFR + 25)
/*!
* @messageid 108026
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_SELF_HEAL_INFO (GLFS_COMP_BASE_AFR + 26)
/*!
* @messageid 108027
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_READ_SUBVOL_ERROR (GLFS_COMP_BASE_AFR + 27)
/*!
* @messageid 108028
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_DICT_GET_FAILED (GLFS_COMP_BASE_AFR + 28)
/*!
* @messageid 108029
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_INFO_COMMON (GLFS_COMP_BASE_AFR + 29)
/*!
* @messageid 108030
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_SPLIT_BRAIN_CHOICE_ERROR (GLFS_COMP_BASE_AFR + 30)
/*!
* @messageid 108031
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_LOCAL_CHILD (GLFS_COMP_BASE_AFR + 31)
/*!
* @messageid 108032
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_INVALID_DATA (GLFS_COMP_BASE_AFR + 32)
/*!
* @messageid 108033
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_INVALID_ARG (GLFS_COMP_BASE_AFR + 33)
/*!
* @messageid 108034
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_INDEX_DIR_GET_FAILED (GLFS_COMP_BASE_AFR + 34)
/*!
* @messageid 108035
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_FSYNC_FAILED (GLFS_COMP_BASE_AFR + 35)
/*!
* @messageid 108036
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_FAVORITE_CHILD (GLFS_COMP_BASE_AFR + 36)
/*!
* @messageid 108037
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_SELF_HEAL_FAILED (GLFS_COMP_BASE_AFR + 37)
/*!
* @messageid 108038
* @diagnosis
* @recommendedaction
*/
#define AFR_MSG_SPLIT_BRAIN_STATUS (GLFS_COMP_BASE_AFR + 38)
/*!
* @messageid 108039
* @diagnosis Setting of pending xattrs succeeded/failed during add-brick
* operation.
* @recommendedaction In case of failure, error number in the log should give
* the reason why it failed. Also observe brick logs for more information.
*/
#define AFR_MSG_ADD_BRICK_STATUS (GLFS_COMP_BASE_AFR + 39)
/*!
* @messageid 108040
* @diagnosis AFR was unable to be loaded because the pending-changelog xattrs
* were not found in the volfile.
* @recommendedaction Please ensure cluster op-version is atleast 30707 and the
* volfiles are regenerated.
*/
#define AFR_MSG_NO_CHANGELOG (GLFS_COMP_BASE_AFR + 40)
/*!
* @messageid 108041
* @diagnosis Unable to create timer thread for delayed initialization.
* @recommendedaction Possibly check process's log file for messages from
* timer infra.
*/
#define AFR_MSG_TIMER_CREATE_FAIL (GLFS_COMP_BASE_AFR + 41)
/*!
* @messageid 108042
* @diagnosis Log messages relating to automated resolution of split-brain files
* based on favorite child policies.
* @recommendedaction
*/
#define AFR_MSG_SBRAIN_FAV_CHILD_POLICY (GLFS_COMP_BASE_AFR + 42)
#define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages"
#endif /* !_AFR_MESSAGES_H_ */
|