- Green, 3000 points or more
I am seeing a curious bug concerning maxlinks and currlinks.
In my dialin router, I have several users defined locally. Each username is allowed to use ppp multilink, and I have also defined a maxlinks in the username command:
username xxxx user-maxlinks 2 secret ...
Sometimes, I find that users cannot add a second link to their bundle. If I debug dialer events, I see that currlinks=2, maxlinks=2, so the new call is rejected. But the user has only one link up.
This looks like a bug in the router's running count of currlinks. I have the impression that sometimes when a call gets cleared, the currlinks gets decremented against the wrong username, or something like that. My evidence is two debug messages:
Se1/0:2: Dialer-peruser: Decremented user yyyy's currlinks, currlinks=0 maxlinks=2
Se1/0:1: Dialer-peruser: User yyyy's dialerperuser structure freed already
Serial1/0:1: Dialer-peruser: failure decrementing currlinks during mlp_remove_link
Maybe the error message above occurs because the bundle can be dialout as well as dialin. Is is possible that currlinks gets incremented on dial in, but not on dial out, but decremented when both types of call get cleared? Certainly the pattern for the case above was for a user that was allowed 4 links. I dialed out one channel, then he added another two to the ML bundle.
Maybe we are dealing with two different bugs here?
Anyone else seen this?