Dear Michał,
I found the changelog on Metalogger machine not flush to disk instantly. I dig into the code, and found there miss a fflush in mfs-1.6.17/mfsmetalogger/masterconn.c:185.
142 void masterconn_metachanges_log(masterconn *eptr,const uint8_t *data,uint32_t length) {
143 char logname1[100],logname2[100];
.....
182 data++;
183 version = get64bit(&data);
184 if (eptr->logfd) {
185 fprintf(eptr->logfd,"%"PRIu64": %s\n",version,data);
fflush(eptr->logfd); //missed
186 } else {
187 syslog(LOG_NOTICE,"lost MFS change %"PRIu64": %s",version,data);
188 }
189 }
I think this maybe a tiny bug, because the changelog is so important to the metalogger, we need to flush it instantly.
Best regards!
Haihong Zheng from China
|