From: Rémi Palancher <[email protected]>

The macro BUFFER_SIZE used by sacctmgr was set to 4KB. This macro is
used by load_sacctmgr_cfg_file() in src/sacctmgr/file_functions.c to
set the size of the buffer which stores the lines read in dump files
that could be loaded by sacctmgr (notably the ones generated by
`sacctmgr dump`).

This size of 4KB is too small for very long lines that could be present
in theses files. For instance, this bug was encountered with a 236763B
User line full of many WCKeys.

This commit proposes to increase its size to 512KB. This is obviously
not a general solution but it should cover most use cases.

The macro definition is also removed of src/sacctmgr/sacctmgr.c since it
was useless in this file.

Signed-off-by: Rémi Palancher <[email protected]>
---
 src/sacctmgr/sacctmgr.c |    2 --
 src/sacctmgr/sacctmgr.h |    2 +-
 2 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/src/sacctmgr/sacctmgr.c b/src/sacctmgr/sacctmgr.c
index cd27722..1b1af40 100644
--- a/src/sacctmgr/sacctmgr.c
+++ b/src/sacctmgr/sacctmgr.c
@@ -43,8 +43,6 @@
 #include "src/common/xsignal.h"
 #include "src/common/proc_args.h"
 
-#define BUFFER_SIZE 4096
-
 char *command_name;
 int exit_code;         /* sacctmgr's exit code, =1 on any error at any time */
 int exit_flag;         /* program to terminate if =1 */
diff --git a/src/sacctmgr/sacctmgr.h b/src/sacctmgr/sacctmgr.h
index f6068d1..974a3ba 100644
--- a/src/sacctmgr/sacctmgr.h
+++ b/src/sacctmgr/sacctmgr.h
@@ -86,7 +86,7 @@
 
 #define CKPT_WAIT      10
 #define        MAX_INPUT_FIELDS 128
-#define BUFFER_SIZE 4096
+#define BUFFER_SIZE 524288
 
 typedef enum {
        /* COMMON */
-- 
1.7.2.5

Reply via email to