Skip to main content

Content Management System (CMS) broken

6 replies [Last post]
lmikhailov
Offline
Joined: 2007-05-22

Hello everybody,

It appears that there is an intermittent bug in CMS. To reproduce:
1. execute cms.share on an internet EDGE peer (peer1). I use some zip files for testing around 6MB in size.
2. on another peer internet EDGE peer (peer2) create a pipeadv like that:
pipeadv = newpipe -n mypipe
3. on peer2 one needs to get content advertisement of the shared file (from peer1). To get the advertisement executre
search -p .
One can see Peer ID of a peer by executing whoami command.
4. on peer2 execute :
cms.rcp pipeadv
here is environment var pointing to content advertisement from peer1

Note: pipeadv parameter of cms.rcp seems to be completely unused in the implementation of cms.rcp. However one needs to give it, or cms.rcp complains.

More often than not one would see the exception below.

WARNING: Failed to close messenger net.jxta.impl.endpoint.tcp.TcpMessenger@c8e4de {tcp://74.208.73.84:9701/EndpointService:uuid-8B33E028B054497B8BF9A446A224B1FF02/uuid-DEADBEEFDEAFBABAFEEDBABE0000000F05/connect,3600000,keep,other}
java.io.IOException: A non-blocking socket operation could not be completed immediately
at sun.nio.ch.SocketDispatcher.close0(Native Method)
at sun.nio.ch.SocketDispatcher.preClose(Unknown Source)
at sun.nio.ch.SocketChannelImpl.implCloseSelectableChannel(Unknown Source)
at java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(Unknown Source)
at java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
at net.jxta.impl.endpoint.tcp.TcpMessenger.closeImpl(TcpMessenger.java:449)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageDirect(TcpMessenger.java:554)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageBImpl(TcpMessenger.java:520)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.BlockingMessenger$BlockingMessengerChannel.sendMessageB(BlockingMessenger.java:337)
at net.jxta.impl.endpoint.router.EndpointRouter.sendOnLocalRoute(EndpointRouter.java:622)
at net.jxta.impl.endpoint.router.RouterMessenger.sendMessageBImpl(RouterMessenger.java:178)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.EndpointServiceImpl$CanonicalMessenger.sendMessageBImpl(EndpointServiceImpl.java:453)
at net.jxta.endpoint.ThreadedMessenger.send(ThreadedMessenger.java:491)
at net.jxta.endpoint.ThreadedMessenger.run(ThreadedMessenger.java:385)
at java.lang.Thread.run(Unknown Source)

I would think that the ability to get remotely shared files is absolutely critical for majority of P2P applications as it is for mine. I hope that this problem could be looked into ASAP.

Thanks,

Leon

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
lmikhailov
Offline
Joined: 2007-05-22

I am running the patch to JXTA platform which is supposed to eliminate the problems with "A non-blocking socket operation could not be completed immediately" and I don't see this exception any more.

Now when I do cms.rcp it manages to complete the download of 6MB zip file from one edge to another. However closer to the end of the download I get the following exception on the edge peer which shared the file:

WARNING: Message send failed for net.jxta.endpoint.Message@9097155(10){552}
java.net.SocketTimeoutException: Failed sending net.jxta.endpoint.Message@9097155(10){552} to : **.***.**.**:9701
at net.jxta.impl.endpoint.tcp.TcpMessenger.xmitMessage(TcpMessenger.java:644)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageDirect(TcpMessenger.java:548)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageBImpl(TcpMessenger.java:519)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.BlockingMessenger$BlockingMessengerChannel.sendMessageB(BlockingMessenger.java:337)
at net.jxta.impl.endpoint.router.EndpointRouter.sendOnLocalRoute(EndpointRouter.java:622)
at net.jxta.impl.endpoint.router.RouterMessenger.sendMessageBImpl(RouterMessenger.java:178)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.EndpointServiceImpl$CanonicalMessenger.sendMessageBImpl(EndpointServiceImpl.java:453)
at net.jxta.endpoint.ThreadedMessenger.send(ThreadedMessenger.java:491)
at net.jxta.endpoint.ThreadedMessenger.run(ThreadedMessenger.java:385)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketTimeoutException: Timeout during socket write
at net.jxta.impl.endpoint.tcp.TcpMessenger.write(TcpMessenger.java:731)
at net.jxta.impl.endpoint.tcp.TcpMessenger.xmitMessage(TcpMessenger.java:626)
... 15 more

Once I got this exception it keeps popping up. Also it seems that network gets really loaded, because I didn't even manage to open a web page in a browser afterwards.

I attach the the log from my RDV peer. Any ideas of what might be happening?

Regards,

Leon

edbaba
Offline
Joined: 2008-01-13

Hi,
I am using JXTA-JXSE 2.5. When I send message (approximately) larger than 1MB between two peers, I get the same exception you mentioned.

How can I install the patch you mentioned? Have you solved this problem?

lmikhailov
Offline
Joined: 2007-05-22

You can get the patch if you install the latest build from the source repository. However as I mentioned above the patch does not resolve the problem completely. I still get exceptions.

Leon

bondolo
Offline
Joined: 2003-06-11

That's NOT a cms problem it's a low-level NIO problem.

if you are using Java 6u3 or earlier on linux then likely you need to update to Java 6u4.

There are other NIO problems with other OSes and JVM versions but I unfortunately don't know the specifics.

lmikhailov
Offline
Joined: 2007-05-22

>That's NOT a cms problem it's a low-level NIO problem.

That's what I thought.

>if you are using Java 6u3 or earlier on linux then likely you need to update to Java 6u4.

I am using Windows XP Service Pack 2 with jdk1.5.0_12 on both of my EDGE peers and Windows Server x64 with jdk1.5.0_12 running inside a VPS on my Rendezvous peer (but rdv peeer is probably irrelevant in this case).

>There are other NIO problems with other OSes and JVM versions but I unfortunately
>don't know the specifics.

Do you think upgrading to the latest JDK would make a difference?

Leon

lmikhailov
Offline
Joined: 2007-05-22

I just upgraded my peers to jdk-6u4. I get the following exception now:

java.net.SocketTimeoutException: Failed sending net.jxta.endpoint.Message@23971937(10){138} to : 74.208.73.84:9701
at net.jxta.impl.endpoint.tcp.TcpMessenger.xmitMessage(TcpMessenger.java:645)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageDirect(TcpMessenger.java:549)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageBImpl(TcpMessenger.java:520)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.BlockingMessenger$BlockingMessengerChannel.sendMessageB(BlockingMessenger.java:337)
at net.jxta.impl.endpoint.router.EndpointRouter.sendOnLocalRoute(EndpointRouter.java:622)
at net.jxta.impl.endpoint.router.RouterMessenger.sendMessageBImpl(RouterMessenger.java:178)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.EndpointServiceImpl$CanonicalMessenger.sendMessageBImpl(EndpointServiceImpl.java:453)
at net.jxta.endpoint.ThreadedMessenger.send(ThreadedMessenger.java:491)
at net.jxta.endpoint.ThreadedMessenger.run(ThreadedMessenger.java:385)
at java.lang.Thread.run(Unknown Source)

which is followed by:

WARNING: Failed to close messenger net.jxta.impl.endpoint.tcp.TcpMessenger@2e1f1f {tcp://74.208.73.84:9701}
java.io.IOException: A non-blocking socket operation could not be completed immediately
at sun.nio.ch.SocketDispatcher.close0(Native Method)
at sun.nio.ch.SocketDispatcher.preClose(Unknown Source)
at sun.nio.ch.SocketChannelImpl.implCloseSelectableChannel(Unknown Source)
at java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(Unknown Source)
at java.nio.channels.spi.AbstractInterruptibleChannel.close(Unknown Source)
at net.jxta.impl.endpoint.tcp.TcpMessenger.closeImpl(TcpMessenger.java:449)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageDirect(TcpMessenger.java:554)
at net.jxta.impl.endpoint.tcp.TcpMessenger.sendMessageBImpl(TcpMessenger.java:520)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.BlockingMessenger$BlockingMessengerChannel.sendMessageB(BlockingMessenger.java:337)
at net.jxta.impl.endpoint.router.EndpointRouter.sendOnLocalRoute(EndpointRouter.java:622)
at net.jxta.impl.endpoint.router.RouterMessenger.sendMessageBImpl(RouterMessenger.java:178)
at net.jxta.impl.endpoint.BlockingMessenger.sendIt(BlockingMessenger.java:802)
at net.jxta.impl.endpoint.BlockingMessenger.performDeferredAction(BlockingMessenger.java:755)
at net.jxta.impl.endpoint.BlockingMessenger.sendMessageB(BlockingMessenger.java:621)
at net.jxta.impl.endpoint.EndpointServiceImpl$CanonicalMessenger.sendMessageBImpl(EndpointServiceImpl.java:453)
at net.jxta.endpoint.ThreadedMessenger.send(ThreadedMessenger.java:491)
at net.jxta.endpoint.ThreadedMessenger.run(ThreadedMessenger.java:385)
at java.lang.Thread.run(Unknown Source)

and by

Exception in thread "Thread-10" java.lang.OutOfMemoryError: Java heap space
at net.jxta.share.GetMessageProcessor.process(GetMessageProcessor.java:224)
at net.jxta.share.MessageProcessor.run(MessageProcessor.java:115)
at java.lang.Thread.run(Unknown Source)

Any ideas?

Leon