In the process of debugging a test that relies on my translator’s “fini” 
function being called, I discovered that these functions are not being called 
for translators in glusterfsd.  The offending code seems to be at 
glusterfsd.c:1274 (cleanup_and_exit).

1274         if (ctx->process_mode == GF_GLUSTERD_PROCESS) {
1275
1276                 trav = NULL;
1277                 if (ctx->active)
1278                         trav = ctx->active->top;
1279                 while (trav) {
1280                         if (trav->fini) {
1281                                 THIS = trav;
1282                                 trav->fini (trav);
1283                         }
1284                         trav = trav->next;
1285                 }
1286
1287         }

This might have been a simple fix, except that when I changed the code to call 
fini in glusterfsd as well as glusterd, I started getting segfaults.  It seems 
that, since they haven’t been tested in a while, some of these functions are 
also broken and nobody has known since May when this code was changed.  
(Actually it might be longer, since the commit message notes “clean up issues” 
as a reason for the check on line 1274, but apparently addressing this problem 
never got on anyone’s TODO list.)

The reason I’m mentioning this is not just to complain or assign blame.  Stuff 
happens.  I just want people to know so that, as this gets cleaned up, it’s in 
people’s minds as a potential factor in other unexpected new behavior.
_______________________________________________
Gluster-devel mailing list
[email protected]
http://www.gluster.org/mailman/listinfo/gluster-devel

Reply via email to