Re: mISDN_send: error -12 strikes again

Ralf Schlatterbeck <[email protected]>
Newsgroups gmane.linux.isdn.i4l.user
Message-ID <[email protected]>
On Sun, Mar 18, 2012 at 06:30:12PM +0100, Karsten Keil wrote:
> The old code did  always allocate a full big skb 
> for receiving and did not copy the data to a smaller one, if only small
> buffers are used and even the ACK packets were full size SKBs. So the
> the queue gets full very quickly if the userspace stuck for only few 100 ms.
> 
> I changed this behavior (copy small packets, allocate packets with a
> matching size) in the newer versions and did not get this error anymore,
> even with high load.
> Note that with the CAPI the error always recovered with the old code, but the
> FAX aborted and was resent, so I assume here is still a other problem with
> LCR or the DSP channel to handle queue full/OOM correctely.

Seems once that condition is reached, it never recovers. We had this
condition for an hour until asterisk was reset. My earlier
experience with earlier versions also hat this problem that once we get
into this state only a restart of asterisk helps. Seems this is a
locking issue in chan_lcr.

> > When this happened "lcradmin state" and "core show channels" in asterisk
> > had different ideas on the channels in use: lcradmin showed three busy
> > channels while asterisk showed only one.
> 
> I think here is some locking issue involved and/or a wrong error path,
> normally if a queue full happens, it should recover if the userspace
> is ready again, but it seems when the error occurs in a bad moment,
> the locking is not released or it wait for a ACK packet, which will
> never happen (because it was discarded in the socket layer).

Maybe, I'll try to instrument this and will report back if I can
reproduce it.

Ralf
-- 
Ralf Schlatterbeck             email: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.