[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: more IDL falls asleep



hi all,

the folks at RSI responded re this problem, and it has to deal with the
license manager.  here's the applicable parts of their reply (the technical
term for IDL sleeping and never waking up again is "deadlock"):

  If it is indeed deadlock, then I believe you are encountering a weakness in
  FLEXlm licensing that is generally only observable in very "large" IDL
  processes. It is based on an implementation of malloc() in FLEXlm that is
  not thread-safe. To keep a constant tab on licensing status in its network
  FLEXlm sends out a periodic query to each of its clients. This query uses
  the unsafe malloc() call. There is a very minute probability that this call
  might be concurrent with an IDL use of system malloc(), and that is where
  the deadlock occurs. Very large IDL processes that have many calls
  allocating new memory are capable of defying the odds and experiencing this
  deadly concurrency. We have actually never been able to (knowingly)
  reproduce this in-house, but identified the clash in 'pstack' output from
  our customers. You also would probably see the concurrent malloc() calls in
  your own run of 'pstack' on the ID of a process that has "fallen asleep."

  Our only solution is Research Systems' own licensing protocol, Genver
  licensing. The downside to Genver licensing is that it must be renewed every
  180 days, and you must have a separate license for each individual host that
  is running your long IDL programs.

they're working on fixing this for the 5.5 release, but aren't sure if it will
be ready then, since fixing it is actually quite tricky.

hope this helps others experiencing this problem!

best,
-Johnny


-------------------------------------------
Johnny Lin
CIRES, University of Colorado
Work Phone:  (303) 735-1636
Web:  http://cires.colorado.edu/~johnny/
-------------------------------------------