- From: Thomas Dreibholz <dreibh AT exp-math.uni-essen.de>
- To: "Marjan Bozinovski" <marjanb AT cpk.auc.dk>, <rsplib-discussion AT sctp.de>
- Subject: Re: [RSPlib-Discusssion] fail-over problems
- Date: Fri Sep 13 11:57:01 2002
- List-id: RSPlib Discussions <rsplib-discussion.sctp.de>
- Organization: University of Essen, Institute for Experimental Mathematics
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am Freitag, 13. September 2002 11:03 schrieb Marjan Bozinovski:
>
Hi,
>
>
In addition to my last mail in which I gave a piece of the code, which
>
seems problematic, here I am sending the corresponding logfile as Thomas
>
suggested.
Your logfile only contains the rsplib debug output. It shows the successful
establishment of a connection to an ENRP server and a successful lookup.
Then, I assume you use socket API functions to connect to one of the pool
elements. Since this is not rsplib-specific, it is not included in the
logfile.
You have to turn on debug output in the socket API by modifying the following
files, compiling it, installing it using "gmake install" and finally
recompiling the rsplib. Recompiling rsplib after installation of the
debug-enabled socketapi is important, since the rsplib programs are
statically linked!
Try activating #define PRINT_SELECT in line 48 of
sctpsocketwrapper.cc; #define PRINT_NOTIFICATIONS, #define
PRINT_ARRIVENOTIFICATION and #define PRINT_PIPE in sctpsocketmaster.cc, all
#defines for PRINT_ except the both *_AUTOCLOSE* in sctpsocket.cc, #define
PRINT_SHUTDOWN in sctpassociation.cc. Turn on full logging for your rsplib
application (-loglevel=9, -logcolor=off; see examplepe.c/examplepu.c for how
to set it). Then, reproduce the problem and check if sctplib/socketapi/rsplib
recognise the data reception.
If everything works, you should see a Data Arrive notification by sctplib,
which is handled by the socket API in the callback function
SCTPSocketMaster::dataArriveNotif(). This function calls
SCTPSocketMaster::addNotification(), which finds out the association or
socket pointer and fires a condition to wake up the thread calling
ext_select() (called by rspSelect()). Furthermore, it sets the boolean
ReadReady of the association or socket. This boolean is necessary if the data
is received *before* rspSelect() (calls ext_select()) is called. Then,
ext_select() immediately returns with the corresponding read FD set.
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 SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see
http://www.gnupg.org
iD8DBQE9gbV232BbsHYPLWURAiRJAKDXTZ+g7c/EmtjE+t1wIK9+e6IbNACfTEbK
Qp1L65Z8caQ4I01odIsoufk=
=sW1I
-----END PGP SIGNATURE-----
Archive powered by MHonArc 2.6.19+.