RP/TUX 8.1 - BRIDGE hung because of dead-lock while multithreads mode is enabled and traffic is busy between two BRIDGE (Doc ID 777064.1)

Last updated on NOVEMBER 04, 2016

Applies to:

Oracle Tuxedo / Tuxedo / Tux 8.1
Information in this document applies to any platform

Goal

DESCRIPTION:
BRIDGE hung because of dead-lock while multithreads mode is enabled and traffic is busy between two BRIDGE.

Two machines are configured as MP mode. nonmaster machine provides TOUPPER service, calls TOUPPER service
simultaneously with 30 clients from master machine, and each client will call more than 3000 times. About 3 minutes
later, all clients report timeout and exit. 

Debugging the BRIDGE with dbx, the following message is thrown:

(dbx) thread
current thread ($thread) is t@1
(dbx) threads
 >    t@1  a  l@1   ?()   sleep on 0x56db8  in  _lwp_sema_wait() 
      t@2  b  l@2   ?()   running          in  _signotifywait() 
      t@3      ?()   sleep on (unknown) in  _reap_wait() 
      t@4  b  l@5   _co_timerset()   running          in  private___lwp_cond_wait() 
      t@5  b  l@6   brthr_nrloop()   sleep on 0x898b0  in  _lwp_sema_wait() 
      t@6  b  l@7   brthr_nwloop()   sleep on 0x89900  in  _lwp_sema_wait() 
(dbx) thread -blockedby t@5
Thread t@5 is blocked by:
0x000898b0 (0x898b0): thread  mutex(locked)
Lock owned by t@6
(dbx) thread -blockedby t@6
Thread t@6 is blocked by:
0x00089900 (0x89900): thread  mutex(locked)
Lock owned by t@5
(dbx) detach
detaching from process 27547

t@6 is waiting t@5 and t@5 is waiting t@6. This should be a deadlock. And any call to TOUPPER service will be timeout.

CONFIGURATION:
Tuxedo 8.1
Solaris

Solution

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