@@ -168,29 +168,23 @@ static int errorcat (int errnum, int start, char *buf, size_t len)
168
168
return n ;
169
169
}
170
170
171
- /* Format message, printing an error to stderr on failure
171
+ /* Format message, appending a '+' if the buffer isn't large enough.
172
172
* If errnum > 0, then append result of strerror (errnum).
173
173
*/
174
- static int msgfmt (char * buf ,
175
- size_t len ,
176
- int errnum ,
177
- const char * fmt ,
178
- va_list ap )
174
+ static void msgfmt (char * buf ,
175
+ size_t len ,
176
+ int errnum ,
177
+ const char * fmt ,
178
+ va_list ap )
179
179
{
180
- int rc = vsnprintf (buf , len , fmt , ap );
181
- if ((rc < 0 || rc >= len ) || errorcat (errnum , rc , buf , len ) < 0 ) {
182
- fprintf (stderr ,
183
- "%s: unable to format log msg (%s): %s\n" ,
184
- logger .prog ,
185
- fmt ,
186
- strerror (errno ));
187
- return -1 ;
188
- }
180
+ int rc ;
181
+ if ((rc = vsnprintf (buf , len , fmt , ap )) >= len
182
+ || errorcat (errnum , rc , buf , len ) < 0 )
183
+ buf [len - 2 ] = '+' ;
189
184
/* Clean up trailing newline, pointless here
190
185
*/
191
- if (buf [rc - 1 ] == '\n' )
192
- buf [rc - 1 ] = '\0' ;
193
- return 0 ;
186
+ else if (rc > 0 && buf [rc - 1 ] == '\n' )
187
+ buf [rc - 1 ] = '\0' ;
194
188
}
195
189
196
190
void flux_shell_log (const char * component ,
@@ -202,8 +196,8 @@ void flux_shell_log (const char *component,
202
196
char buf [4096 ];
203
197
va_list ap ;
204
198
va_start (ap , fmt );
205
- if ( msgfmt (buf , sizeof (buf ), 0 , fmt , ap ) == 0 )
206
- send_logmsg (buf , level , component , file , line );
199
+ msgfmt (buf , sizeof (buf ), 0 , fmt , ap );
200
+ send_logmsg (buf , level , component , file , line );
207
201
va_end (ap );
208
202
}
209
203
@@ -237,8 +231,8 @@ int flux_shell_err (const char *component,
237
231
char buf [4096 ];
238
232
va_list ap ;
239
233
va_start (ap , fmt );
240
- if ( msgfmt (buf , sizeof (buf ), errnum , fmt , ap ) == 0 )
241
- send_logmsg (buf , FLUX_SHELL_ERROR , component , file , line );
234
+ msgfmt (buf , sizeof (buf ), errnum , fmt , ap );
235
+ send_logmsg (buf , FLUX_SHELL_ERROR , component , file , line );
242
236
va_end (ap );
243
237
errno = errnum ;
244
238
return -1 ;
@@ -257,8 +251,7 @@ void flux_shell_raise (const char *type,
257
251
return ;
258
252
259
253
va_start (ap , fmt );
260
- if (msgfmt (buf , sizeof (buf ), 0 , fmt , ap ) < 0 )
261
- sprintf (buf , "flux-shell: fatal error" );
254
+ msgfmt (buf , sizeof (buf ), 0 , fmt , ap );
262
255
va_end (ap );
263
256
264
257
if (!(f = flux_job_raise (shell -> h ,
@@ -288,10 +281,8 @@ void flux_shell_fatal (const char *component,
288
281
va_list ap ;
289
282
290
283
va_start (ap , fmt );
291
- if (msgfmt (buf , sizeof (buf ), errnum , fmt , ap ) < 0 )
292
- sprintf (buf , "flux-shell: fatal error" );
293
- else
294
- send_logmsg (buf , FLUX_SHELL_FATAL , component , file , line );
284
+ msgfmt (buf , sizeof (buf ), errnum , fmt , ap );
285
+ send_logmsg (buf , FLUX_SHELL_FATAL , component , file , line );
295
286
va_end (ap );
296
287
297
288
/* Attempt to kill any running tasks
0 commit comments