Skip to main content

"Rejecting peerview message" problem

7 replies [Last post]
weoweh
Offline
Joined: 2008-10-22
Points: 0

Hello,

on my rendezvous peers I get the following message:

Jan 31, 2009 1:05:32 AM net.jxta.impl.rendezvous.rpv.PeerView processIncomingMessage
WARNING: Rejecting peerview message from urn:jxta:uuid-59...

So, when a rdv sends out its peerview message, all other rdvs show this warning. That means the rdvs do not get the peerviews of other rdvs but I need this to keep my net consistent. One effect is that some edge peers cannot see other edges in the net. But that's exacly what I need for the type of application I have to built for my university.
Funny thing is that the rdvs receive the rdv advertisements from each other via the discoveryService.

I use JXTA 2.5, the default netPeerGroup and no security or authentication stuff (and don't want to). I also deactivated the option to contact the default rdv seeds provided by jxtahosts.net.

Has anybody experience with that?
All I actually want is that all peers know about all other existing peers, including the edge peers (my net won't become larger than about 40 or 50 nodes, so this should be feasible).

Thanks.

By the way, all I found out til now is the following, but it didn't help me so far:
Looking at the source code into processIncomingMessage() in PeerView.java I see that the peer the message came from is not trusted. This can be traced back to the SeedingManager which says that it is not accepting the route advertisement inside the peerview message. But net.jxta.impl.util.SeedingManager is an interface and I don't really know which class is implementing it. Best chance is net.jxta.impl.rendezvous.rpv.PeerviewSeedingManager. Here I got the following code:
public synchronized boolean isAcceptablePeer(RouteAdvertisement radv) {
boolean acceptable = peerview.contains(radv);
return acceptable && super.isAcceptablePeer(radv);
}
The variable peerview is a HashSet.
And why the radv is not contained in the peerview I don't know. If peers are getting to know about each other for the first time via a peerview message then I ask myself how such an radv should ever get into the peerview HashSet...

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
nobal
Offline
Joined: 2009-02-23
Points: 0

I found the solution of my problem. The "Rejecting peerview message..." was due to
[b]setUseOnlyRendezvousSeeds(true);[/b] and [b]setUseOnlyRelaySeeds(true);[/b] Just commenting these two lines solved the problem.

jxtalearner
Offline
Joined: 2009-03-02
Points: 0

The problem of Trust is a common problem with multiple rendezvous trying to work together.

If there are 3 Rendezvous 1,2 & 3 please make sure that RDV 1 has 2 & 3 as seeds. RDV 2 has 1 & 3 as seeds and RDV 3 has 1 & 2 as seeds.

That way they will trust each other as they are on the seeding list of each other irrespective of the order in which you start them. They will connect to each other and trust each other and provide one consistent peerview.

Let me know if you still face problems.

nobal
Offline
Joined: 2009-02-23
Points: 0

I still get the same problem ...Rejecting ...

DESCRIPTION:

I created three rendezvous such that seedLists.txt for each node contains tcp://IP:PORT. Sample content of seedLists.txt for node 3 is:
tcp://XXX.XXX.XXX.1:9710
tcp://XXX.XXX.XXX.2:9710

Sample codes:
File RDVSeedListFile= new File("seedLists.txt");

//Both rendezvous and relay
manager = new net.jxta.platform.NetworkManager(NetworkManager.ConfigMode.RENDEZVOUS_RELAY, PeerName,new File(new File(".cache"), PeerName).toURI());

// Setting Configuration
MyNetworkConfigurator.setTcpPort(TcpPort); //TcpPort=9710
MyNetworkConfigurator.setTcpEnabled(true);
MyNetworkConfigurator.setTcpIncoming(true);
MyNetworkConfigurator.setTcpOutgoing(true);

MyNetworkConfigurator.clearRelaySeeds();
MyNetworkConfigurator.clearRendezvousSeeds();
MyNetworkConfigurator.clearRelaySeedingURIs();
MyNetworkConfigurator.clearRelaySeedingURIs();
MyNetworkConfigurator.addRdvSeedingURI(RDVSeedListFile.toURI());
MyNetworkConfigurator.addRelaySeedingURI(RDVSeedListFile.toURI());

OUTPUT:
3 mars 2009 17:43:01 net.jxta.impl.rendezvous.rpv.PeerView processIncomingMessage
ATTENTION: Rejecting peerview message from urn:jxta:uuid-59616261646162614E50472050325033773536EC57A14AB08946EB292784266703
3 mars 2009 17:43:11 net.jxta.impl.rendezvous.rpv.PeerView processIncomingMessage
ATTENTION: Rejecting peerview message from urn:jxta:uuid-59616261646162614E504720503250338993D4128CF34605A0498BB3188B9ABC03

STILL SAME PROBLEM.........

jxtalearner
Offline
Joined: 2009-03-02
Points: 0

I just created a RDV cluster and had a couple of peers bootstrap off each RDV. It is working.

I think the problem is in your
MyNetworkConfigurator.addRdvSeedingURI(RDVSeedListFile.toURI());
MyNetworkConfigurator.addRelaySeedingURI(RDVSeedListFile.toURI());

statements.... can you add Seed URI's for each bootstrap server individually? I don't think these statements are working in your case.

nobal
Offline
Joined: 2009-02-23
Points: 0

Hello jxtalearner,

I tried the way you suggested. Here is the sample code & output :

NODE1:
----------
TheSeed="tcp://ip2:9000";
URI SeedingRendezVousURI = URI.create(TheSeed);
MyNetworkConfigurator.addRdvSeedingURI(SeedingRendezVousURI);

4 mars 2009 14:44:24 net.jxta.impl.util.URISeedingManager refreshActiveSeeds
ATTENTION: Failed loading seeding list from : tcp://ip2:9000

NODE2:
TheSeed="tcp://ip1:9001";
URI SeedingRendezVousURI = URI.create(TheSeed);
MyNetworkConfigurator.addRdvSeedingURI(SeedingRendezVousURI);

4 mars 2009 14:44:24 net.jxta.impl.util.URISeedingManager refreshActiveSeeds
ATTENTION: Failed loading seeding list from : tcp://ip1:9001

-->If I browse the addresses from browser : http://ip1:9001 & http://ip2:9000, both peers respond by sending info like: JXTAHELLO tcp://.....

-->I have enabled tcp in code as:
MyNetworkConfigurator.setTcpPort(TcpPort);
MyNetworkConfigurator.setTcpEnabled(true);
MyNetworkConfigurator.setTcpIncoming(true);
MyNetworkConfigurator.setTcpOutgoing(true);

-->Enabling HTTP as TCP also didn't solve my problem.

If I create two RDVs like above and join peers on each, I get island of peers. Peers connecting to one RDV cannot see other peers that are connected to another RDV because they couldn't communicate as RDVs are not sharing information...:(.

Hope to get some feedback. Is it possible to share your code?

nobal
Offline
Joined: 2009-02-23
Points: 0

Hello Weoweh,

Did you solve this problem?

I also got the same problem:

.....net.jxta.impl.rendezvous.rpv.PeerView processIncomingMessage
ATTENTION: [b]Rejecting peerview message from urn:jxta:uuid[/b]-..........

I think this is the main reason why my two rendezvous peers are not connecting each other....

Has anybody known the reasons and/or solutions?

adamman71
Offline
Joined: 2007-01-31
Points: 0

> Hello,
>
> on my rendezvous peers I get the following message:
>
> Jan 31, 2009 1:05:32 AM
> net.jxta.impl.rendezvous.rpv.PeerView
> processIncomingMessage
> WARNING: Rejecting peerview message from
> urn:jxta:uuid-59...
>
> So, when a rdv sends out its peerview message, all
> other rdvs show this warning. That means the rdvs do
> not get the peerviews of other rdvs but I need this
> to keep my net consistent. One effect is that some
> edge peers cannot see other edges in the net. But
> that's exacly what I need for the type of application
> I have to built for my university.

Hi weoweh,

A peerview is a list of peers a peer is diretcly (but not transitively) connected to in a peergroup. However, by now means is a peerview a complete list of all peers in a peergroup (except by accident in very small configurations).

JXTA does not need each peer (even RDVs) to have a complete list of all peers to keep a 'connected' net (I don't exacly know what you mean by 'consistent net').

> Funny thing is that the rdvs receive the rdv
> advertisements from each other via the
> discoveryService.
>
> I use JXTA 2.5, the default netPeerGroup and no
> security or authentication stuff (and don't want to).
> I also deactivated the option to contact the default
> rdv seeds provided by jxtahosts.net.
>
> Has anybody experience with that?
> All I actually want is that all peers know about all
> other existing peers, including the edge peers (my
> net won't become larger than about 40 or 50 nodes, so
> this should be feasible).
>

You can achieve this, but not by relying on the peerview. One way to proceed would be to fetch as many peer advertisements as you can from each peer (just for the sake of having there Peer ID), keep a list, update that list by fetching more peer advertisement using peers in the list, etc...

Now, if you want to know whether a peer is online (I should say, can be accessed from your 'central' peer), you could try to ping it...

> Thanks.
>
>
>
> By the way, all I found out til now is the following,
> but it didn't help me so far:
> Looking at the source code into
> processIncomingMessage() in PeerView.java I see that
> the peer the message came from is not trusted. This
> can be traced back to the SeedingManager which says
> that it is not accepting the route advertisement
> inside the peerview message. But
> net.jxta.impl.util.SeedingManager is an interface and
> I don't really know which class is implementing it.
> Best chance is
> net.jxta.impl.rendezvous.rpv.PeerviewSeedingManager.
> Here I got the following code:
> public synchronized boolean
> isAcceptablePeer(RouteAdvertisement radv) {
> boolean acceptable =
> peerview.contains(radv);
> return acceptable &&
> super.isAcceptablePeer(radv);
>
> The variable peerview is a HashSet.
> And why the radv is not contained in the peerview I
> don't know. If peers are getting to know about each
> other for the first time via a peerview message then
> I ask myself how such an radv should ever get into
> the peerview HashSet...

My advise is, just don't try to use that code to achieve your objectives. It is doing something different and you won't be able to twist it the way you want. Investigate other options. Save time.

Cheers,

J.