Opened 6 years ago

Last modified 4 years ago

#961 new defect

i2p.router.client.ClientManager: Client attempted to register duplicate destination

Reported by: guest Owned by:
Priority: minor Milestone:
Component: apps/i2ptunnel Version: 0.9.6
Keywords: Cc:
Parent Tickets:

Description (last modified by zzz)

After creating a new I2PTunnel server tunnel of IRC type, a standard tunnel was overridden. Both were running with the same b32 (and green lights), as shown on /i2ptunnel/list. Connecting to the 'standard' tunnel resulted in the IRCd error:

":ircserver.i2p 499 you :This I2P IRC server is unvailable. It may be down or undergoing maintenance. Please try again later."

Logs are below:

6/19/13 6:48:17 PM ERROR [7.0.0.1:6667] p.i2ptunnel.I2PTunnelIRCServer: Error connecting to IRC server /127.0.0.1:6667
     java.net.ConnectException: Connection refused
     at java.net.PlainSocketImpl.socketConnect(Native Method)
     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
     at java.net.Socket.connect(Socket.java:579)
     at java.net.Socket.connect(Socket.java:528)
     at java.net.Socket.<init>(Socket.java:425)
     at java.net.Socket.<init>(Socket.java:241)
     at net.i2p.i2ptunnel.I2PTunnelIRCServer.blockingHandle(I2PTunnelIRCServer.java:140)
     at net.i2p.i2ptunnel.I2PTunnelServer$Handler.run(I2PTunnelServer.java:435)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:722)
6/19/13 6:47:06 PM ERROR [7.0.0.1:6667] p.i2ptunnel.I2PTunnelIRCServer: Error connecting to IRC server /127.0.0.1:6667
     java.net.ConnectException: Connection refused
     at java.net.PlainSocketImpl.socketConnect(Native Method)
     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
     at java.net.Socket.connect(Socket.java:579)
     at java.net.Socket.connect(Socket.java:528)
     at java.net.Socket.<init>(Socket.java:425)
     at java.net.Socket.<init>(Socket.java:241)
     at net.i2p.i2ptunnel.I2PTunnelIRCServer.blockingHandle(I2PTunnelIRCServer.java:140)
     at net.i2p.i2ptunnel.I2PTunnelServer$Handler.run(I2PTunnelServer.java:435)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:722)
6/19/13 6:21:43 PM ERROR [7.0.0.1:6667] p.i2ptunnel.I2PTunnelIRCServer: Error connecting to IRC server /127.0.0.1:6667
     java.net.ConnectException: Connection refused
     at java.net.PlainSocketImpl.socketConnect(Native Method)
     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
     at java.net.Socket.connect(Socket.java:579)
     at java.net.Socket.connect(Socket.java:528)
     at java.net.Socket.<init>(Socket.java:425)
     at java.net.Socket.<init>(Socket.java:241)
     at net.i2p.i2ptunnel.I2PTunnelIRCServer.blockingHandle(I2PTunnelIRCServer.java:140)
     at net.i2p.i2ptunnel.I2PTunnelServer$Handler.run(I2PTunnelServer.java:435)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:722)
6/19/13 6:21:19 PM ↓↓↓ 1 similar message omitted ↓↓↓
6/19/13 6:21:03 PM ERROR [7.0.0.1:6667] p.i2ptunnel.I2PTunnelIRCServer: Error connecting to IRC server /127.0.0.1:6667
     java.net.ConnectException: Connection refused
     at java.net.PlainSocketImpl.socketConnect(Native Method)
     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
     at java.net.Socket.connect(Socket.java:579)
     at java.net.Socket.connect(Socket.java:528)
     at java.net.Socket.<init>(Socket.java:425)
     at java.net.Socket.<init>(Socket.java:241)
     at net.i2p.i2ptunnel.I2PTunnelIRCServer.blockingHandle(I2PTunnelIRCServer.java:140)
     at net.i2p.i2ptunnel.I2PTunnelServer$Handler.run(I2PTunnelServer.java:435)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:722)
6/19/13 6:17:55 PM ERROR [Thread-111 ] p.i2ptunnel.I2PTunnelIRCServer: Unable to connect to the router at 127.0.0.1:7654 and build tunnels for the server at 127.0.0.1:6667, retrying in 20 seconds
6/19/13 6:17:55 PM ERROR [Thread-111 ] eaming.I2PSocketManagerFactory: Error creating session for socket manager
     net.i2p.client.I2PSessionException: [IRCx #31663]: Cannot connect to the router on [internal connection]:0
     at net.i2p.client.I2PSessionImpl.connect(I2PSessionImpl.java:435)
     at net.i2p.client.streaming.I2PSocketManagerFactory.createManager(I2PSocketManagerFactory.java:157)
     at net.i2p.i2ptunnel.I2PTunnelServer.init(I2PTunnelServer.java:203)
     at net.i2p.i2ptunnel.I2PTunnelServer.<init>(I2PTunnelServer.java:109)
     at net.i2p.i2ptunnel.I2PTunnelIRCServer.<init>(I2PTunnelIRCServer.java:86)
     at net.i2p.i2ptunnel.I2PTunnel.runIrcServer(I2PTunnel.java:477)
     at net.i2p.i2ptunnel.TunnelController.startIrcServer(TunnelController.java:397)
     at net.i2p.i2ptunnel.TunnelController.doStartTunnel(TunnelController.java:208)
     at net.i2p.i2ptunnel.TunnelController.startTunnel(TunnelController.java:149)
     at net.i2p.i2ptunnel.TunnelController$1.run(TunnelController.java:139)
     at java.lang.Thread.run(Thread.java:722)
     at net.i2p.util.I2PThread.run(I2PThread.java:85)
     Caused by: java.io.IOException: No tunnels built after waiting 5 minutes. Your network connection may be down, or there is severe network congestion.
     at net.i2p.client.I2PSessionImpl.connect(I2PSessionImpl.java:411)
     ... 11 more
6/19/13 6:12:54 PM ERROR [al Reader 12] i2p.client.I2PSessionMuxedImpl: [IRCx #31663]: Error occurred communicating with router: Duplicate destination
     net.i2p.client.I2PSessionException: Disconnect Message received
     at net.i2p.client.DisconnectMessageHandler.handleMessage(DisconnectMessageHandler.java:32)
     at net.i2p.client.I2PSessionImpl.messageReceived(I2PSessionImpl.java:606)
     at net.i2p.internal.QueuedI2CPMessageReader$QueuedI2CPMessageReaderRunner.run(QueuedI2CPMessageReader.java:56)
     at java.lang.Thread.run(Thread.java:722)
     at net.i2p.util.I2PThread.run(I2PThread.java:85)
6/19/13 6:12:54 PM ERROR [al Reader 11] .client.ClientConnectionRunner: Disconnecting the client - Duplicate destination config: [SessionConfig:
     Destination: [Destination:
     Hash: <DEST>
     Certificate: [Certificate: type: Null certificate null payload]
     PublicKey: [PublicKey: size: 256]
     SigningPublicKey: [SigningPublicKey: size: 128]]
     Signature: [Signature: size: 40]
     Creation Date: Wed Jun 19 17:12:54 GMT 2013
     Options: #: 46
     [awt.toolkit] = [sun.awt.X11.XToolkit]
     [crypto.lowTagThreshold] = [14]
     [crypto.tagsToSend] = [20]
     [http.agent] = [I2P]
     [http.keepAlive] = [false]
     [i2cp.enableAccessList] = [false]
     [i2cp.enableBlackList] = [false]
     [i2cp.encryptLeaseSet] = [false]
     [i2cp.fastReceive] = [true]
     [i2cp.messageReliability] = [none]
     [i2cp.reduceIdleTime] = [1200000]
     [i2cp.reduceOnIdle] = [true]
     [i2cp.reduceQuantity] = [1]
     [i2cp.tcp.host] = [127.0.0.1]
     [i2cp.tcp.port] = [7654]
     [i2p.dir.base] = [/home/user/i2p]
     [i2p.streaming.connectDelay] = [0]
     [i2p.streaming.maxConcurrentStreams] = [0]
     [i2p.streaming.maxConnsPerDay] = [0]
     [i2p.streaming.maxConnsPerHour] = [0]
     [i2p.streaming.maxConnsPerMinute] = [0]
     [i2p.streaming.maxTotalConnsPerDay] = [0]
     [i2p.streaming.maxTotalConnsPerHour] = [0]
     [i2p.streaming.maxTotalConnsPerMinute] = [0]
     [i2p.streaming.maxWindowSize] = [16]
     [inbound.backupQuantity] = [3]
     [inbound.length] = [3]
     [inbound.lengthVariance] = [0]
     [inbound.nickname] = [IRC]
     [inbound.quantity] = [3]
     [ircserver.fakeHostname] = [%f.b32.i2p]
     [ircserver.method] = [webirc]
     [javax.accessibility.assistive_technologies] = [org.GNOME.Accessibility.JavaBridge]
     [jetty.class.path] = [/home/user/i2p/lib/routerconsole.jar]
     [loggerFilenameOverride] = [logs/log-router-@.txt]
     [networkaddress.cache.negative.ttl] = [300]
     [networkaddress.cache.ttl] = [300]
     [org.mortbay.http.Version.paranoid] = [true]
     [org.mortbay.xml.XmlParser.NotValidating] = [true]
     [outbound.backupQuantity] = [3]
     [outbound.length] = [3]
     [outbound.lengthVariance] = [0]
     [outbound.nickname] = [IRC]
     [outbound.quantity] = [3]
     [router.version] = [0.9.6]]
6/19/13 6:12:54 PM CRIT [al Reader 11] 2p.router.client.ClientManager: Client attempted to register duplicate destination <DEST>

Subtickets (add)

Change History (7)

comment:1 Changed 6 years ago by guest

This resulted in the standard tunnel being 'dead' according to the left sidebar but still on and greenlit in /i2ptunne/list. Had to stop and start to make it work again. IRC tunnel had it's private key file changed by me to make both work again.

comment:2 follow-up: Changed 6 years ago by zzz

  • Component changed from unspecified to apps/i2ptunnel
  • Description modified (diff)
  • Milestone changed from 0.9.7 to 0.9.8

What do you mean that "a standard tunnel was overridden"?

Were the two configured with the same privkey file?

If so, the IRC tunnel was a duplicate destination and everything worked correctly - and there's no bug.

p.s. removed your webirc password from the log. you should change it.

comment:3 Changed 6 years ago by zzz

possibly related: #968

comment:4 in reply to: ↑ 2 Changed 6 years ago by guest

Replying to zzz:

What do you mean that "a standard tunnel was overridden"?

Were the two configured with the same privkey file?

If so, the IRC tunnel was a duplicate destination and everything worked correctly - and there's no bug.

p.s. removed your webirc password from the log. you should change it.

"a standard tunnel was overriden" = A tunnel which is otherwise not relevant (not the same key configured by me or anything to that end) was unable to take connections and replaced by the IRC tunnel.
Both the IRC and standard tunnel showed the same destination despite the one being shown belonging to the standard for weeks (months even?) before.
This was not desired or intentional.

Thanks for the webirc tip, I did not realise.

comment:5 Changed 6 years ago by guest

I have found myself in a similar predicament (as described in OP).

Version info:

I2P version: 0.9.7-8
Java version: Oracle Corporation 1.8.0-ea (Java(TM) SE Runtime Environment 1.8.0-ea-b36e)
Wrapper version: 3.5.17
Server version: 7.6.11.v20130520
Servlet version: Jasper JSP 2.1 Engine
Platform: Linux arm 3.6.11+
Processor: uninitialized (arm)
Jbigi: Locally optimized native BigInteger library loaded from file
Encoding: UTF-8
Charset: UTF-8

Relevant IRC logs:

<zylo> zzz: Just got an error with two server tunnels. Duplicate dest..
<zylo> zzz: I will post the logs to the relevant ticket, I recall one.
21/07/13 21:21:51 ERROR [al Reader 16] i2p.client.I2PSessionMuxedImpl: [XXXX #18650]: Error occurred communicating with router: Duplicate destination
     net.i2p.client.I2PSessionException: Disconnect Message received
     at net.i2p.client.DisconnectMessageHandler.handleMessage(DisconnectMessageHandler.java:32)
     at net.i2p.client.I2PSessionImpl.messageReceived(I2PSessionImpl.java:686)
     at net.i2p.internal.QueuedI2CPMessageReader$QueuedI2CPMessageReaderRunner.run(QueuedI2CPMessageReader.java:56)
     at java.lang.Thread.run(Thread.java:722)
     at net.i2p.util.I2PThread.run(I2PThread.java:85)
21/07/13 21:21:51 ERROR [al Reader 15] .client.ClientConnectionRunner: Disconnecting the client - Duplicate destination config: [SessionConfig:
     Destination: [Destination:
     Hash: XXXX
     Certificate: [Certificate: type: Null certificate null payload]
     PublicKey: [PublicKey: size: 256]
     SigningPublicKey: [SigningPublicKey: size: 128]]
     Signature: [Signature: size: 40]
     Creation Date: Sun Jul 21 21:21:51 GMT 2013
     Options: #: 41
     [awt.toolkit] = [sun.awt.X11.XToolkit]
     [http.agent] = [I2P]
     [http.keepAlive] = [false]
     [i2cp.enableAccessList] = [true]
     [i2cp.enableBlackList] = [false]
     [i2cp.encryptLeaseSet] = [false]
     [i2cp.fastReceive] = [true]
     [i2cp.messageReliability] = [none]
     [i2cp.reduceIdleTime] = [1200000]
     [i2cp.reduceOnIdle] = [true]
     [i2cp.reduceQuantity] = [1]
     [i2cp.tcp.host] = [127.0.0.1]
     [i2cp.tcp.port] = [7654]
     [i2p.dir.base] = [/home/i2p/router]
     [i2p.streaming.connectDelay] = [0]
     [i2p.streaming.initialRTO] = [9000]
     [i2p.streaming.maxConcurrentStreams] = [0]
     [i2p.streaming.maxConnsPerDay] = [0]
     [i2p.streaming.maxConnsPerHour] = [120]
     [i2p.streaming.maxConnsPerMinute] = [15]
     [i2p.streaming.maxTotalConnsPerDay] = [0]
     [i2p.streaming.maxTotalConnsPerHour] = [0]
     [i2p.streaming.maxTotalConnsPerMinute] = [0]
     [i2p.streaming.maxWindowSize] = [16]
     [inbound.backupQuantity] = [2]
     [inbound.length] = [3]
     [inbound.lengthVariance] = [0]
     [inbound.nickname] = [XXXX]
     [inbound.quantity] = [2]
     [jetty.class.path] = [/home/i2p/router/lib/routerconsole.jar]
     [loggerFilenameOverride] = [logs/log-router-@.txt]
     [networkaddress.cache.negative.ttl] = [300]
     [networkaddress.cache.ttl] = [300]
     [org.mortbay.http.Version.paranoid] = [true]
     [org.mortbay.xml.XmlParser.NotValidating] = [true]
     [outbound.backupQuantity] = [2]
     [outbound.length] = [3]
     [outbound.lengthVariance] = [0]
     [outbound.nickname] = [XXXX]
     [outbound.quantity] = [2]
     [router.version] = [0.9.7]]
21/07/13 21:21:51 CRIT [al Reader 15] 2p.router.client.ClientManager: Client attempted to register duplicate destination XXXX

comment:6 Changed 6 years ago by zzz

  • Milestone changed from 0.9.8 to 0.9.9

comment:7 Changed 4 years ago by str4d

  • Milestone 0.9.9 deleted
Note: See TracTickets for help on using tickets.