[torqueusers] -l file=xxx parameter limited to 2Gb-1 max on Linux
Marcin Mogielnicki
mar_mog at o2.pl
Thu Feb 3 08:59:25 MST 2005
Hello,
There is one more thing I noticed. Every time a job chosen to start by
mom is fails, if file parameter is greater or equal to two gigabytes. I
think is is another hardcoded example of infamous file size limit. It
fails exactly here:
halo g # grep -B 7 RLIMIT_FSIZE torque-1.1.0p6/src/resmom/linux/mom_mach.c
if (value > INT_MAX)
{
return(error(pname,PBSE_BADATVAL));
}
reslim.rlim_cur = reslim.rlim_max = value;
if (setrlimit(RLIMIT_FSIZE,&reslim) < 0)
As you can see mom decides that setrlimit manages values not greater
than INT_MAX. However it is not true:
halo g # grep -A 3 rlimit /usr/include/linux/resource.h
struct rlimit {
unsigned long rlim_cur;
unsigned long rlim_max;
};
I don't know when it was changed from int to ulong, but all my linux
servers, even installed 2-3 years ago, devine RLIMIT_FSIZE values as
ulong, so I think it should be changed in the way given below. It works
for me for some time, users are able to request tens of gigabytes and
they really are unable to write anything when they reach given limit.
Marcin Mogielnicki
diff -r -u torque-1.1.0p6.orig/src/resmom/linux/mom_mach.c
torque-1.1.0p6/src/resmom/linux/mom_mach.c
--- torque-1.1.0p6.orig/src/resmom/linux/mom_mach.c 2005-01-13
03:02:01.000000000 +0100
+++ torque-1.1.0p6/src/resmom/linux/mom_mach.c 2005-02-02
21:24:20.580571291 +0100
@@ -1094,7 +1094,8 @@
return(error(pname,retval));
}
- if (value > INT_MAX)
+ if (value > ULONG_MAX)
{
return(error(pname,PBSE_BADATVAL));
}
More information about the torqueusers
mailing list