LSNRCTL commands hang but listener process itself is running (Doc ID 979123.1)

Last updated on DECEMBER 17, 2009

Applies to:

Oracle Net Services - Version: 10.2.0.1 to 10.2.0.4 - Release: 10.2 to 10.2
Sun Solaris SPARC (64-bit)
Sun Solaris x86-64 (64-bit)

Symptoms

When running "lsnrctl" and any command (such as start, status, etc.) the command hangs indefinitely.
However, when checking the "tnslsnr" process itself, that is running fine and servicing connections.
Problem is no control over the tnslsnr process is possible.

A truss run against lsnrctl commands might show something similar to the following:

14224/1: 0.7347 stat("/usr/lib/64/nss_files.so.1", 0xFFFFFFFF7FFF8DB0) = 0
14224/1: 0.7348 resolvepath("/usr/lib/64/nss_files.so.1", "/usr/lib/sparcv9/nss_files.so.1", 1023) = 31
14224/1: 0.7349 open("/usr/lib/64/nss_files.so.1", O_RDONLY) = 14
...
14224/1: 0.7366 stat("/usr/lib/64/nss_nis.so.1", 0xFFFFFFFF7FFF8DB0) = 0
14224/1: 0.7366 resolvepath("/usr/lib/64/nss_nis.so.1", "/usr/lib/sparcv9/nss_nis.so.1", 1023) = 29
14224/1: 0.7367 open("/usr/lib/64/nss_nis.so.1", O_RDONLY) = 14

0.7380 getpid() = 14224 [1]
14224/1: 0.7381 open("/var/yp/binding/uhc.com/cache_binding", O_RDONLY|O_LARGEFILE) = 14
14224/1: 0.7382 fcntl(14, F_DUPFD, 0x00000100) = 256
14224/1: 0.7382 close(14) = 0
...
14224/1: 0.7466 getsockname(10, 0xFFFFFFFF7FFF83D4, 0xFFFFFFFF7FFF841C, 1) = 0
14224/1: 0.7467 getpeername(10, 0xFFFFFFFF7FFF83D4, 0xFFFFFFFF7FFF841C, 1) Err#134 ENOTCONN
14224/1: 0.7468 accept(10, 0xFFFFFFFF7FFF840C, 0xFFFFFFFF7FFF841C, 1) = 15
14224/1: 0.7468 getsockname(15, 0xFFFFFFFF7FFF83FC, 0xFFFFFFFF7FFF841C, 1) = 0
14224/1: 0.7469 ioctl(15, FIONBIO, 0xFFFFFFFF7FFF841C) = 0
14224/1: 0.7469 getsockopt(15, SOL_SOCKET, SO_SNDBUF, 0xFFFFFFFF7FFF854C, 0xFFFFFFFF7FFF855C, 1) = 0
14224/1: 0.7470 getsockopt(15, SOL_SOCKET, SO_RCVBUF, 0xFFFFFFFF7FFF854C, 0xFFFFFFFF7FFF855C, 1) = 0
14224/1: 0.7470 setsockopt(15, tcp, TCP_NODELAY, 0xFFFFFFFF7FFF84F4, 4, 1) = 0
14224/1: 0.7485 fcntl(15, F_SETFD, 0x00000001) = 0
14224/1: 0.7486 sigaction(SIGPIPE, 0xFFFFFFFF7FFF8210, 0xFFFFFFFF7FFF83D8) = 0
14224/1: 0.7487 brk(0x1002E7370) = 0
14224/1: 0.7487 brk(0x1002EB370) = 0
14224/1: 0.7489 poll(0x1002BC6C0, 3, 119998) = 1
14224/1: 0.7489 read(15, "\0C9\0\001\0\0\001 901 ,".., 8208) = 201
14224/1: 0.7490 ioctl(15, FIONBIO, 0xFFFFFFFF7FFF9B5C) = 0
14224/1: 0.7539 write(15, "\0 L\0\005\0\0\0\0 B ( D".., 76) = 76
14214: 0.7540 read(5, "\0 L\0\005\0\0\0\0 B ( D".., 2064) = 76
14224/1: 0.7541 close(15) = 0
14214: 0.7543 close(5) = 0
14214: 0.7546 so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "", 1) = 5
14214: 28.2872 Received signal #2, SIGINT, in connect() [default]
14214: 28.2873 connect(5, 0x10026F8E0, 16, 1) Err#4 EINTR

Changes

- This only occurs with a 10g listener control process (possibly 11g as well).
- A 9i lsnrctl process (or lower) responds fine on the same machine.
- Seems to also only occur on Solaris and possibly with NIS and/or Yellow Pages functionality enabled.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms