Re: outrigger "I/O error reading from mux connection"
"John W. F. Mcclain" <[email protected]>
| Newsgroups | gmane.comp.java.sun.javaspaces |
|---|---|
| Organization | Sun Microsystems, Inc. |
| Message-ID | <[email protected]> |
Dan Creswell wrote: > So would the original writer expect to get back a valid lease in this > circumstance? Yes, though of course trying to renew or cancel the lease would result in UnknownLeaseException since the entry is gone. > Were that to be the case we would be able to rule out some avenues of > concern by simply modifying the writer to confirm this happened. And if > that were happening we could safely assume the EOFException was being > generated from some other source. It does sound like the write is returning w/o throwing an exception. > One thing I'm still not clear on is whether empty space == restarted > space - Lachlan? Would be good to know since a restarted space wouldn't have any orphaned takes running. > Cheers, > > Dan. > > John W. F. Mcclain wrote: > >>I think Gregg is probably right. Logging the >>"writing EntryRep[com.ca.jini.space.hello.StdioHelloEntry] (txn = null)" >>message is pretty much the last thing the server side write >>method does before returning the necessary info to create the lease >>in the client. At this point the entry has >>been made visible to other threads (and if this was a persistent space >>made durable). Is the client doing the take doing a blocking >>take? If yes my guess is that when the write happens there is a query >>from a previous, but now dead, instance of the taking client still >>in progress, that take gets the newly written entry, the entry >>gets dumped on the floor (since the previous client is dead) >>and JERI's java.io.EOFException occurs when JERI turns around >>to get the next call from the dead taking client. >> >>See this post for a longer discussion of this issue: >> >> http://archives.java.sun.com/cgi-bin/wa?A2=ind0405&L=javaspaces-users&P=R2084&I=-3 >> >>If you are not doing a blocking take or there was no previous >>instance of the taking client, I need more info.... >> >>Hope this helps, if not we can try again.... >> >>Lachlan O'Dea wrote: >> >> >>>Hi, >>> >>>I've just started with Javaspaces and I've got a very simple hello >>>world running under outrigger. But I'm finding that sometimes when I >>>write an entry to the space, I get outrigger logging this: >>> >>>Sep 14, 2005 6:39:03 PM OutriggerServerImpl write >>>FINER: ENTRY >>>Sep 14, 2005 6:39:03 PM OutriggerServerImpl enterTxn >>>FINER: ENTRY >>>Sep 14, 2005 6:39:03 PM com.sun.jini.outrigger.OutriggerServerImpl >>>addWrittenRep >>>FINEST: OutriggerServerImpl: addWrittenRep >>>Sep 14, 2005 6:39:03 PM com.sun.jini.outrigger.OutriggerServerImpl write >>>FINEST: writing EntryRep[com.ca.jini.space.hello.StdioHelloEntry] >>>(txn = null) >>>Sep 14, 2005 6:39:03 PM net.jini.jeri.BasicInvocationDispatcher dispatch >>>FAILED: com.sun.jini.outrigger.TransientOutriggerImpl@f0761a locally >>>throws >>>java.io.IOException: I/O error reading from mux connection: >>>java.io.EOFException >>> at com.sun.jini.jeri.internal.mux.Session >>>$MuxOutputStream.ensureOpen(Session.java:647) >>> at com.sun.jini.jeri.internal.mux.Session >>>$MuxOutputStream.write(Session.java:562) >>> at net.jini.jeri.BasicInvocationDispatcher.dispatch >>>(BasicInvocationDispatcher.java:635) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable$6.run >>>(ObjectTable.java:593) >>> at net.jini.export.ServerContext.doWithServerContext >>>(ServerContext.java:103) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable >>>$Target.dispatch0(ObjectTable.java:591) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable >>>$Target.access$700(ObjectTable.java:212) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable$5.run >>>(ObjectTable.java:566) >>> at com.sun.jini.start.AggregatePolicyProvider$6.run >>>(AggregatePolicyProvider.java:527) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable >>>$Target.dispatch(ObjectTable.java:563) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable >>>$Target.dispatch(ObjectTable.java:540) >>> at com.sun.jini.jeri.internal.runtime.ObjectTable$RD.dispatch >>>(ObjectTable.java:774) >>> at net.jini.jeri.connection.ServerConnectionManager >>>$Dispatcher.dispatch(ServerConnectionManager.java:148) >>> at com.sun.jini.jeri.internal.mux.MuxServer$2.run >>>(MuxServer.java:237) >>> at com.sun.jini.start.AggregatePolicyProvider$5.run >>>(AggregatePolicyProvider.java:513) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at com.sun.jini.jeri.internal.mux.MuxServer$1.run >>>(MuxServer.java:234) >>> at com.sun.jini.thread.ThreadPool$Worker.run(ThreadPool.java: >>>136) >>> at java.lang.Thread.run(Thread.java:613) >>>Caused by: java.io.EOFException >>> at com.sun.jini.jeri.internal.mux.StreamConnectionIO >>>$Reader.run(StreamConnectionIO.java:244) >>> ... 2 more >>> >>>When this happens, the entry does not appear in the space (there's a >>>take in progress, but it remains blocked), but no exception is thrown >>>to the client doing the write. So that's not good. >>> >>>This only happens intermittently, most writes do not result in the >>>above exception in outrigger, and they work perfectly. As far as I >>>can tell, it only happens when the space is empty, and if I follow it >>>up immediately by more writes, they all work. >>> >>>I'm using version 2.0.2 on Mac OS 10.4.2, Java 5 (I tried running >>>outrigger under 1.4, but it was the same). No transactions. Any ideas >>>as to what the problem might be? Some problem with JERI it appears, >>>but I don't have any clue about how that stuff works. >>> >>>-- >>>Lachlan O'Dea >>>Computer Associates >>>Senior Software Engineer >>>tel: +61 3 8416 5627 >>>fax: +61 3 8416 5810 >>>mobile: +61 412 390 650 >>>[email protected] -- BTW, if you want to reply to this message, please direct your reply to the list, thanks John McClain [email protected] Sun Microsystems, Inc. Burlington, MA A business that makes nothing but money, is a poor business. - Henry Ford =========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff JAVASPACES-USERS". For general help, send email to [email protected] and include in the body of the message "help". To view past JAVASPACES-USERS postings, please see: http://archives.java.sun.com/archives/javaspaces-users.html JDC members can download the JavaSpaces(tm) Technology from: http://developer.java.sun.com/developer/products/jini/