04-26-2010
cannot set user id: Resource temporarily unavailable (not open file/open process related)
First post, sorry to be a bother but this one has been dogging me. I have a process user (java application server) that trips a resource limit every couple weeks and need help finding what limit we're hitting.
First, this is what's running:
Quote:
cat /etc/redhat-release
Enterprise Linux Enterprise Linux Server release 5.2 (Carthage)
uname -a
Linux host 2.6.18-92.1.27.0.1.el5 #1 SMP Tue Jun 30 23:08:49 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
This is the error when jobs are run or the administrator tries to log in:
Quote:
cannot set user id: Resource temporarily unavailable
I've checked the usual suspects:
Quote:
# ps -eLf | grep seejcaps | wc -l
2146
# lsof | grep seejcaps | wc -l
2540
Here is what the user has for limits:
Quote:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 137216
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 15360
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
I've set syslog to trap *.kernel and *.* and this is all I get when trying to SU:
Quote:
Apr 26 09:35:29 host su: pam_unix(su-l:session): session opened for user seejcaps by katahdin(uid=0)
Apr 26 09:35:29 host su: pam_unix(su-l:session): session closed for user seejcaps
Any ideas on where else to look or trap what limit is being tripped?
10 More Discussions You Might Find Interesting
1. Solaris
Well, I am not even sure if its failing, cause at the other end I have a select call and it wakes up and reads the data I sent fine.
Ok here is the issue, I have a UDP socket(non blocking) through which I push some data to another port. At the other end I have select loop, waiting for this data.... (6 Replies)
Discussion started by: Naanu
6 Replies
2. Solaris
Hi everybody,
I have an Unix box running Solaris and every day for 1 hour or 2 the box is stuck and I can only get this error message when trying to type a command :
bash-3.00$ vmstat 5
bash: fork: Resource temporarily unavailable
How can I trace what's is going wrong with this box ?... (5 Replies)
Discussion started by: unclefab
5 Replies
3. Shell Programming and Scripting
hi,
I'm using HP unix tru64 & Win XP.
i'm download a file from winxp to unix using ftp.
how to know whether a remote file is currently being used by the process or not? (my loaction unix server) (7 Replies)
Discussion started by: Tlg13team
7 Replies
4. Solaris
Morning,
I logged on to my webserver today and checked /var/adm/messages. I just happen to run across this message:
Sep 3 13:15:21 web1 nfs: file temporarily unavailable on the ser
ver, retrying...
Is there a problem with nfs? Are the files locked? (9 Replies)
Discussion started by: dr. phreeze
9 Replies
5. UNIX for Dummies Questions & Answers
Hi,
Now I am programming to communicate with some network printer through TCP Socket program.By sending command "\033E 1\r" to printer,causes, check the port for error normally.
In my case i used following code
bytesSent = send( sockfd, "\033E 1\r",sizeof("\033E 1\r"), 0);
... (1 Reply)
Discussion started by: kavinsivakumar
1 Replies
6. UNIX for Advanced & Expert Users
Solaris 10 Server refuse to connect :wall:
fork: Resource temporarily unavailable , server unexpectedly unavailable network connection , refuse error, disconnect message, fatal error type2, (protocol error type2)
Issue has been resolved after taken few steps :b:
First of all need to check... (1 Reply)
Discussion started by: taherahmed
1 Replies
7. UNIX for Dummies Questions & Answers
I wrote a script that works most of the time but gave me
fork: resource temporarily unavailable
some of the time. I restarted my computer and now it runs fine but googling "fork: resource temporarily unavailable" and looking on the forums has not actually helped me figure out what exactly I... (3 Replies)
Discussion started by: monstrousturtle
3 Replies
8. Programming
Hello,
I am using the termios library to write data that I get from a Bluetooth device to a modem via serial.
The data arrive from the Bluetooth device correctly every 50ms and I have to bypass them on the serial ttyUSB3 where it is connected to a modem connected to a socket with static IP.
The... (10 Replies)
Discussion started by: enaud
10 Replies
9. UNIX for Dummies Questions & Answers
I wrote a perl program that simultaneously reads in data from 691 tar.gz files using zcat. I can run one instance of the program without any issues and the memory and swap sizes are negligible. However, when I attempt to run more than 1 I start to get fork: resource unavailable messages. Are... (6 Replies)
Discussion started by: aquinom85
6 Replies
10. Shell Programming and Scripting
Hi friends,
Working on a linux X86-64 bit system, I suddenly started getting this error (mentioned in subject) from various scripts.
I googled, found that there are couple of reason which causes this issue.
- less memory
I am pretty sure, memory seems to be stable on my system and at the... (15 Replies)
Discussion started by: clx
15 Replies
LEARN ABOUT ULTRIX
getrlimit
getrlimit(2) System Calls Manual getrlimit(2)
Name
getrlimit, setrlimit - control maximum system resource consumption
Syntax
#include <sys/time.h>
#include <sys/resource.h>
getrlimit(resource, rlp)
int resource;
struct rlimit *rlp;
setrlimit(resource, rlp)
int resource;
struct rlimit *rlp;
Description
Limits on the consumption of system resources by the current process and each process it creates can be obtained with the call and set with
the call.
The resource parameter is one of the following:
RLIMIT_CPU the maximum amount of cpu time (in milliseconds) to be used by each process.
RLIMIT_FSIZE the largest size, in bytes, of any single file that may be created.
RLIMIT_DATA the maximum size, in bytes, of the data segment for a process. This limit defines how far a program can extend its break
with the system call.
RLIMIT_STACK the maximum size, in bytes, of the stack segment for a process. This limit defines how far a program's stack segment can
be extended, either automatically by the system or explicitly by a user, with the system call.
RLIMIT_CORE the largest size, in bytes, of a core file that may be created.
RLIMIT_RSS the maximum size, in bytes, to which a process's resident set size may grow when there is a shortage of free physical mem-
ory. Exceeding this limit when free physical memory is in short supply results in an unfavorable scheduling priority
being assigned to the process.
A resource limit is specified as a soft limit and a hard limit. When a soft limit is exceeded, a process may receive a signal (for exam-
ple, if the cpu time is exceeded), but it will be allowed to continue execution until it reaches the hard limit (or modifies its resource
limit). The system uses just the soft limit field of the resources RLIMIT_CORE and RLIMIT_RSS. The rlimit structure is used to specify the
hard and soft limits on a resource, as shown:
struct rlimit {
int rlim_cur; /* current (soft) limit */
int rlim_max; /* hard limit */
};
Only the superuser may raise the maximum limits. Other users may alter rlim_cur within the range from 0 to rlim_max or (irreversibly)
lower rlim_max.
An "infinite" value for a limit is defined as RLIM_INFINITY (0x7fffffff).
Because this information is stored in the per-process information, this system call must be executed directly by the shell if it is to
affect all future processes created by the shell; limit is thus a built-in command to
The system refuses to extend the data or stack space when the limits would be exceeded in the normal way: a break call fails if the data
space limit is reached, or the process is killed when the stack limit is reached. Because the stack cannot be extended, there is no way to
send a signal.
A file I/O operation that creates too large a file causes the SIGXFSZ signal to be generated. This condition normally terminates the
process, but may be caught. When the soft cpu time limit is exceeded, a signal SIGXCPU is sent to the process.
Return Values
A 0 return value indicates that the call succeeded, changing or returning the resource limit. A return value of -1 indicates that an
error occurred, and an error code is stored in the global location errno.
Environment
System Five
When your program is compiled in the System V environment, the SIGXFSZ signal is not generated.
Diagnostics
The call fails under the following conditions:
[EFAULT] The address specified for rlp is invalid.
[EPERM] The limit specified to would have raised the maximum limit value, and the caller is not the superuser.
[EINVAL] Resource is greater than or equal to RLIM_NLIMITS.
See Also
csh(1), quota(2)
getrlimit(2)