RSPlib Discussions

Text archives Help


Re: [RSPlib-Discusssion] fail-over problems


Chronological Thread 
  • 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 Oct 11 09:52:00 2002
  • List-id: RSPlib Discussions <rsplib-discussion.sctp.de>
  • Organization: University of Essen, Institute for Experimental Mathematics

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am Mittwoch, 9. Oktober 2002 16:19 schrieb Marjan Bozinovski:
> Hi Thomas,
>
> I'm sorry but I can't reproduce the problem on Linux since I don't have a
> Linux machine available.
>
> I am completely sure that the thread settings (-D_REENTRANT -pthread) for
> the compiler are set. Please have a look at the MakeFile that is attached
> to this e-mail to make sure that I've set everything fine.

Yes, it is okay and all optimizations are turned off (-O0).

> After your last instructions, here is the debug output:
>
> --------------------
> Constructor: Condition 0xbfbfb28c (Condition)
> Constructor: Condition 0xbfbfb3a8 (Condition)
> Constructor: Condition 0xbfbfb4c4 (Condition)
> Constructor: Condition 0xbfbfb5e0 (Condition)
> adding parent 0xbfbfb28c (ext_select::GlobalCondition) to 0xbfbfb3a8
> (ext_select::ReadCondition)adding parent 0xbfbfb28c
> (ext_select::GlobalCondition) to 0xbfbfb4c4
> (ext_select::WriteCondition)adding parent 0xbfbfb28c
> (ext_select::GlobalCondition) to 0xbfbfb5e0
> (ext_select::ExceptCondition)select: adding FD 0 (0) with mask $0003
> Constructor: Condition 0x80ef208 (Condition)
> select: registering user callback for socket 0...
> adding parent 0xbfbfb3a8 (ext_select::ReadCondition) to 0x80ef208
> (Condition)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
> Condition for FD 1020, type 0 is 0x8491480
> adding parent 0xbfbfb3a8 (ext_select::ReadCondition) to 0x8491480
> (SCTPAssociation::ReadUpdateCondition)select: adding FD 1020 for except
> Condition for FD 1020, type 2 is 0x84916b8
> adding parent 0xbfbfb5e0 (ext_select::ExceptCondition) to 0x84916b8
> (SCTPAssociation::ExceptUpdateCondition)select: adding FD 1021 for read
> Condition for FD 1021, type 0 is 0x8479480
> adding parent 0xbfbfb3a8 (ext_select::ReadCondition) to 0x8479480
> (SCTPAssociation::ReadUpdateCondition)

ext_select::ReadCondition is now parent condition of
SCTPAssociation::ReadUpdateCondition.

select: waiting...
> TimeWait1...
> A0003 S00: Data Arrive Notification, Length = 392
> broadcast for 0x8479010 (SCTPAssociation::InQueue)
> broadcast: SCTPAssociation::InQueue
> broadcast for 0x8479480 (SCTPAssociation::ReadUpdateCondition)
> broadcast: SCTPAssociation::ReadUpdateCondition
> No parents!

Here, no parent condition seems to exist. This is very strange, since it will
later be found and correctly removed.

> TimeWait1 ok
> select: wake-up
> Condition 0 (Type 1020, FD 134882011) not fired
> removing parent 0xbfbfb3a8 (ext_select::ReadCondition) to 0x8491480
> (SCTPAssociation::ReadUpdateCondition)Condition 2 (Type 1020, FD 134882011)
> not fired
> removing parent 0xbfbfb5e0 (ext_select::ExceptCondition) to 0x84916b8
> (SCTPAssociation::ExceptUpdateCondition)Condition 0 (Type 1021, FD
> 134882011) not fired
> removing parent 0xbfbfb3a8 (ext_select::ReadCondition) to 0x8479480
> (SCTPAssociation::ReadUpdateCondition)

ext_select::ReadCondition is now correctly removed as parent condition of
SCTPAssociation::ReadUpdateCondition.

> Destructor: Condition 0x80ef208
> (Condition)
> Destructor: Condition 0xbfbfb5e0 (ext_select::ExceptCondition)
> Destructor: Condition 0xbfbfb4c4 (ext_select::WriteCondition)
> Destructor: Condition 0xbfbfb3a8 (ext_select::ReadCondition)
> Destructor: Condition 0xbfbfb28c (ext_select::GlobalCondition)


May be, there is a problem with your STL implementation or a compiler error
or the compiler does not like Condition::broadcast() to be an inline function
(although -O0 should already ignore inlines and handle them as normal
functions). Now, move the complete function Condition::broadcast() from
condition.icc to condition.cc and remove the "inline" keyword. In
condition.h, the "inline" keyword has to be removed, too. Finally, add a "\n"
to the end of the debug print of "adding parent ..." and "removing parent
...". This will improve the debug output's readability. Recompile everything
(with gmake clean) and try again.

If it does not work, the next step will be to remove the usage of STL's set<>
template for ParentSet in the Condition class and replace it by an own
implementation of a simple linear list.


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.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE9poKL32BbsHYPLWURAip4AJ9OXHB9RcoIxMaEKcazLAyl5F73oQCg1fJe
yXhB/iufeI5qJSgo0VHMig0=
=fApi
-----END PGP SIGNATURE-----




Archive powered by MHonArc 2.6.19+.

Top of page