- From: "Marjan Bozinovski" <marjanb AT cpk.auc.dk>
- To: "Thomas Dreibholz" <dreibh AT exp-math.uni-essen.de>, <rsplib-discussion AT sctp.de>
- Subject: Re: [RSPlib-Discusssion] fail-over problems
- Date: Mon Sep 16 11:47:01 2002
- List-id: RSPlib Discussions <rsplib-discussion.sctp.de>
Hi Thomas,
In the logfile I sent you on Friday, one can see that the problem occurs
with the rspSelect(). These are the suspicious debugging output line:
-----------------------
select: adding FD 0 (0) with mask $0003
select: registering user callback for socket 0...
Sending Break via break pipe...
F0008: User Callback, mask=$1
Break via break pipe received
Break Pipe: 1 calls
select: adding FD 1020 for read
select: adding FD 1020 for except
select: adding FD 1021 for read
select: waiting...
A0003 S00: Data Arrive Notification, Length = 392
select: wake-up
----------------------
It's strange, there is Data Arrive Notification, but rspSelect() returns
zero. What is the problem? This does not happen when examplepu is run.
Best regards,
Marjan
----- Original Message -----
From: "Marjan Bozinovski"
<marjanb AT cpk.auc.dk>
To: "Thomas Dreibholz"
<dreibh AT exp-math.uni-essen.de>;
<rsplib-discussion AT sctp.de>
Sent: Friday, September 13, 2002 6:42 PM
Subject: Re: [RSPlib-Discusssion] fail-over problems
>
Thomas, I didn't receive your last two mails. An hour ago, I accidently
>
checked the rsplib mailing list archive, and I saw you messages. So, I did
>
as you recommended and in the attached file I put the debug output I get
on
>
the screen after turning on the socket API debugging output.
>
>
Note that I set my program to exit automatically if rspSelect() does not
>
report any arrived message (i.e., result=0).
>
>
Please check it out and see if there is something suspicious.
>
>
Regards,
>
Marjan
>
>
----- Original Message -----
>
From: "Marjan Bozinovski"
>
<marjanb AT cpk.auc.dk>
>
To: "Thomas Dreibholz"
>
<dreibh AT exp-math.uni-essen.de>;
>
<rsplib-discussion AT sctp.de>
>
Sent: Thursday, September 12, 2002 3:20 PM
>
Subject: Re: [RSPlib-Discusssion] fail-over problems
>
>
>
> I understand that a simpler program can facilitate the debugging but I
>
> couldn't do that. On the other hand, today I think at least I localized
>
the
>
> problem. It seems that it has something to do with rspSelect() and the
>
> socket opened by connectToPoolElement().
>
>
>
> I will outline a piece of the pseudo code:
>
>
>
> 1. First I start with:
>
>
>
> beginLogging();
>
> initAll();
>
> connectToPoolElement();
>
> //as a result, a global DataSocket is created which is nonzero. This
>
is
>
> the same as in examplepu().
>
>
>
> 2. I send some data 'buffer'.
>
>
>
> sendToPoolElement(buffer);
>
> //this is successfully transmitted as I can see with Ethereal. Also,
>
the
>
> SCTP receiver responds back with SACK + echoed 'buffer'.
>
>
>
> 3. I start listening to incoming messages:
>
>
>
> FD_ZERO(&readfdset);
>
> FD_SET(DataSocket, &readfdset);
>
>
>
> timeout.tv_sec = 2;
>
> timeout.tv_usec = 0;
>
>
>
> result = rspSelect(DataSocket + 1, &readfdset, NULL, NULL,
&timeout);
>
> //exactly as in the examplepu();
>
>
>
> After this I always get result=0, there are no incoming messages at
>
> DataSocket.
>
> Why? I am supposed to receive the echoed message from the
echo_server.
>
> Where do I make the mistake?
>
>
>
> /Marjan
>
>
>
>
>
> ----- Original Message -----
>
> From: "Thomas Dreibholz"
>
> <dreibh AT exp-math.uni-essen.de>
>
> To: "Marjan Bozinovski"
>
> <marjanb AT cpk.auc.dk>;
<rsplib-discussion AT sctp.de>
>
> Sent: Wednesday, September 11, 2002 5:34 PM
>
> Subject: Re: [RSPlib-Discusssion] fail-over problems
>
>
>
>
>
> > -----BEGIN PGP SIGNED MESSAGE-----
>
> > Hash: SHA1
>
> >
>
> > Am Dienstag, 10. September 2002 23:14 schrieb Marjan Bozinovski:
>
> > > Hi,
>
> > >
>
> > > In my SIP client application I have included a fail-over mechanism.
>
For
>
> > > instance, if the application does not receive a response to a
>
particular
>
> > > request after a timer expiration, the request has to be resent to
>
> another
>
> > > active pool element. In principle, my ultimate goal is if the ASAP
>
level
>
> > > does the fail-over by using a notification either: a) from the SCTP
>
> layer
>
> > > that the message could not be delivered to the peer endpoint or b)
>
from
>
> the
>
> > > ASAP user layer using timer mechanisms as it is at the moment.
>
> > >
>
> > > Now, the problem is the following. Whenever a timer activated per
SIP
>
> > > request fires, it is a signal for a failure, and therefore a
fail-over
>
> is
>
> > > made by using the existing function connectToPoolElement() (in
>
> > > examplepu.c). Here is what I notice: First, it prints on the screen
>
that
>
> > > the connection to the second PE is successfully established and
>
> > > connectToPoolElement() is finished. But, when seeing the packets
with
>
> > > Ethereal I realize that the SCTP association is actually not
>
> established.
>
> > > On the contrary, the SCTP client side sends an INIT but immediately
>
> after
>
> > > that it sends an ABORT in which it reports zero error causes with
the
>
T
>
> bit
>
> > > set to 0. Due to the abortion, the SCTP association has never been
>
> > > established although connectToPoolElement() notifies successful
>
> association
>
> > > startup.
>
> > >
>
> > > I also expected that the SCTP association with the previous SCTP
>
> endpoint
>
> > > will be shutdown, but that does not happen.
>
> > >
>
> > > After the connectToPoolElement(), I put sendToPoolElement(), but
>
> naturally
>
> > > it only says "writing to data socket failed".
>
> > >
>
> > > I hope that I described this problem clearly.
>
> >
>
> > What do you use to realize your timer, Unix signals (SIGALRM, etc.)?
The
>
> > socket API is thread-safe but not signal safe. You can not use socket
>
API
>
> > functions from a signal handler.
>
> >
>
> > Turn on loglevel 9 for your rsplib program and let it write the
output,
>
> > including your program's output, to a file, that is "-loglevel=9
>
> > - -logcolor=off" (see examplepe and examplepu) and ">logfile 2>&1".
>
Then,
>
> send
>
> > me this file with a description what you have done to produce this
>
output.
>
> >
>
> > It would be very helpful if you can reproduce the error in a very
simple
>
> > program without your SIP library. The simpler the program, the more
>
easily
>
> I
>
> > can identify the problem.
>
> >
>
> >
>
> > Best regards
>
> > - --
>
> >
=======================================================================
>
> > Dipl.-Inform. Thomas Dreibholz
>
> >
>
> > University of Essen, Room ES210
>
> > Inst. for Experimental Mathematics Ellernstraße 29
>
> > Computer Networking Technology Group D-45326 Essen/Germany
>
>
>
>
- -----------------------------------------------------------------------
>
> > E-Mail:
>
> > dreibh AT exp-math.uni-essen.de
>
> > Homepage: http://www.exp-math.uni-essen.de/~dreibh
>
> >
=======================================================================
>
> >
>
> > - -----BEGIN PGP PUBLIC KEY BLOCK-----
>
> > Version: GnuPG v1.0.6 (GNU/Linux)
>
> > Comment: Weitere Infos: siehe http://www.gnupg.org
>
> >
>
> > mQGiBDr2cOgRBAC71Xhy1yzNTBxnousyxwtZ+zxRQJIfkDUQ8Yry5/rdoRkUldnE
>
> > VQUNX9owxKKwA40DsKMX5lfPIgfPpefqnSOx1/XOtjpffkF8+FY8ncU/LKvHPPw3
>
> > oNXzFAr8F6NqpJAIbp8eW6DlfraXiJFZk0D6sZyIk9XDqTY01+Dn5WmAewCg4Szj
>
> > r52geHYk+6n83yfVqw8+c3MD/A9d4ylhJikTHzbL83HTO7WozqlGtZq0rwGY+JIq
>
> > wPAaRAdBnu0brQz7xtfTZrvxA6v3sYb73bpuosaQNtg1K5Z0l0fbJQxls7wCdSC4
>
> > GmkXyl64c1bPiGMHu7WVE85mwdm4KyD7qELnnNKZoagFgK1HNYFJtuUDYQ3ihBQq
>
> > k0VnBACaqJ4k/VJYPQvuWy0fppX+Ultyqz2rrHqqVvaSotjc8muxwM0OL42ZCjL1
>
> > scuFb1TonojymUFa1nqe6uYU5Owjh2CRfs5+TnMUO7S7vXQRQgWPffIE7kJqL46G
>
> > S79MmHXVWwmO1WMpJooTlsCUv+J+pAWpYu5nJY4X/s+1DXSA9LQvVGhvbWFzIERy
>
> > ZWliaG9seiA8ZHJlaWJoQGV4cC1tYXRoLnVuaS1lc3Nlbi5kZT6IVwQTEQIAFwUC
>
> > OvZw6AULBwoDBAMVAwIDFgIBAheAAAoJEN9gW7B2Dy1l6BcAnRhM7hgy3qOLDKps
>
> > qIY88XZaMjMqAKDHqpiM/8CFpti9TKeIP/mRbva/3rkCDQQ69nD8EAgApETE6wER
>
> > FSA5YMQvoqNPYpf8W3y+u+BJvD2QMdKXFy79XnYCoOB26q0JK5gGw1GTB39ANOpc
>
> > 3x5dkSNDiJptntB9DX7SEb1V+GU62XZOhju6o4GbLlhRsy40SVvzZ/RldkoYeCRH
>
> > 1JghU7EkGsn8RcLuRFj7AgW+bWkIyC3NCGZN+mdc/mmRxYqeFpMQv2+Xnb1EuCk6
>
> > jqDJL6IjVKueYZD5XtKXW+QAj1UlRo9vGpNLs7oZz3QahEgf0S5Cn9eLp2JRr94D
>
> > FVoInZwziOWyEJ8BrJoydDgCAb/5eEdrAc+7ibuPSOnOxVH8ae9zyNbdimSJGDt1
>
> > pnfEz/Cw3cYYvwADBwf/bV9iJO22zTJaB5Sz8dzbQfwaa55fugi7DvPOe5eiE1p9
>
> > /W+uPJTYZ7WQxarM8q/h8BztwOAfeUKztzoGSVvEfxha8Wnvz/3rLWLK1Ok+v9ZV
>
> > ElrAYmJbbEci1Lmk1vXwmjcYoojYl/25mhkvucg8zVO8WfNYCwBUkGUGUj+SQpbf
>
> > xEt80dyGm6KFv9XO1fAzlUXkWBODZ4vDPNRY+Ay4evAFkbfKFgHXMUBvtXlGfuSQ
>
> > pTRXNt0mfRVZ4OeeIKbPdCI8DX5ND9+cIWEQJ2APgWta+h61kwJ5c7k2xxabbYt6
>
> > v9jTzPr57yvVle4fOV6ExUeCcFaRIzvX+87FMoac+YhGBBgRAgAGBQI69nD8AAoJ
>
> > EN9gW7B2Dy1lPpwAnR3YQYZRN4WouZwLcGpfMfH2X5RVAKDCa7d6Hwhoa7DrPaTA
>
> > P/965IPybA==
>
> > =g36Q
>
> > - -----END PGP PUBLIC KEY BLOCK-----
>
> > -----BEGIN PGP SIGNATURE-----
>
> > Version: GnuPG v1.0.4 (GNU/Linux)
>
> > Comment: For info see http://www.gnupg.org
>
> >
>
> > iD8DBQE9f2Kd32BbsHYPLWURAm19AJ4jEG0RlyNIizx+NKFcKeTqcOl/xgCfSbSd
>
> > NAr80h7BXWpU5MrckfCDcZE=
>
> > =8cE6
>
> > -----END PGP SIGNATURE-----
>
> > _______________________________________________
>
> > rsplib-discussion mailing list
>
> > rsplib-discussion AT sctp.de
>
> > http://www.sctp.de/mailman/listinfo/rsplib-discussion
>
> >
>
>
>
> _______________________________________________
>
> rsplib-discussion mailing list
>
> rsplib-discussion AT sctp.de
>
> http://www.sctp.de/mailman/listinfo/rsplib-discussion
>
>
>
Archive powered by MHonArc 2.6.19+.