Cyberduck Mountain Duck CLI

Opened 3 years ago

Closed 3 years ago

#8802 closed defect (fixed)

Routing failure when connecting to IPv6 address because of wrong default network interface

Reported by: richardvd Owned by: dkocher
Priority: high Milestone: 4.9
Component: core Version: 4.8.4
Severity: major Keywords: IPv6
Cc: Architecture: Intel
Platform: Mac OS X 10.10

Description

Connection to an IPv6-only server is impossible when using the Mac version. The result is always: 'No route to host'.

I can ping6 the IPv6 server, so there is a working route.

Additional information:

  • reproducible with an IPv6 address or IPv6-only hostname (only AAAA record in DNS)
  • reproducible using the quick connect bar, and also when using a bookmark entry
  • FTP and SFTP (other types not tested)
  • Windows version 4.7 is working
  • Mac version 4.3.1 is working!
  • Mac version 4.4 and up are not working

Change History (44)

comment:1 Changed 3 years ago by dkocher

  • Milestone set to 4.8
  • Owner set to dkocher
  • Priority changed from normal to high
  • Status changed from new to assigned

comment:2 Changed 3 years ago by dkocher

  • Summary changed from 'no route to host' for all IPv6 hosts to Failure No Route to Host when connecting to IPv6 address

comment:3 Changed 3 years ago by dkocher

Add test in r17481.

comment:4 Changed 3 years ago by dkocher

Add test in r17482.

comment:5 follow-up: Changed 3 years ago by dkocher

 Can you try to append the interface (such as %en0) to the address as in fe80::c62c:3ff:fe0b:8670%en0. 

Last edited 3 years ago by dkocher (previous) (diff)

comment:6 in reply to: ↑ 5 Changed 3 years ago by dkocher

Replying to dkocher:

 Can you try to append the interface (such as %en0) to the address as in fe80::c62c:3ff:fe0b:8670%en0. 

I suppose an interface identifier makes no sense with a non link local address.

comment:7 Changed 3 years ago by dkocher

More tests in r17546, r17547 and r17548.

comment:8 follow-up: Changed 3 years ago by dkocher

  • Resolution set to worksforme
  • Status changed from assigned to closed

I cannot reproduce this issue. Please share more details of your setup to reproduce.

comment:9 in reply to: ↑ 8 Changed 3 years ago by richardvd

Replying to dkocher:

I cannot reproduce this issue. Please share more details of your setup to reproduce.

See this Screencast: http://screencast.com/t/vw91SFB3

In the video I show you that I can successfully 'ping6 ftp6.netbsd.org' and 'ftp ftp6.netbsd.org', but in Cyberduck the result to the same server is always: 'No route to host'. This is just an example, it is like that for any IPv6 only host on internet.

Hope this helps.

comment:10 Changed 3 years ago by dkocher

  • Resolution worksforme deleted
  • Status changed from closed to reopened

comment:11 Changed 3 years ago by dkocher

Add test in r17565 to resolve public IPv6 only address.

comment:12 Changed 3 years ago by dkocher

Add failing test reproducing the issue in r17566.

comment:13 Changed 3 years ago by dkocher

This looks to be an issue with the wrong default interface being selected. On my machine if I disable awsdl0 and the vmnet* interface from VMWare the proper en0 interface gets selected and routing succeeds.

sudo ifconfig awdl0 down

comment:14 Changed 3 years ago by dkocher

Some reference

AWDL (Apple Wireless Direct Link) is a low latency/high speed WiFi peer-to peer-connection Apple uses for everywhere you’d expect: AirDrop, GameKit (which also uses Bluetooth), AirPlay, and perhaps elsewhere. It works using its own dedicated network interface, typically “awdl0".

comment:15 follow-up: Changed 3 years ago by dkocher

  • Resolution set to fixed
  • Status changed from reopened to closed

In r17572.

comment:16 in reply to: ↑ 15 ; follow-up: Changed 3 years ago by richardvd

Great! I will test it as soon as the snapshot build arrives.

comment:17 in reply to: ↑ 16 ; follow-up: Changed 3 years ago by dkocher

Replying to richardvd:

Great! I will test it as soon as the snapshot build arrives.

A new snapshot build has been pushed.

comment:18 in reply to: ↑ 17 Changed 3 years ago by richardvd

I just installed the latest snapshot version 4.8 (17573). No change, it still results in 'no route to host' in this situation.

It does work after sudo ifconfig awdl0 down, so the application still seems to select the wrong interface.

Last edited 3 years ago by richardvd (previous) (diff)

comment:19 Changed 3 years ago by dkocher

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:20 Changed 3 years ago by dkocher

Can you post the output of ifconfig on your computer.

comment:21 Changed 3 years ago by dkocher

Rewrite in r17592 to make it not dependent on en0 name for interface.

comment:22 follow-up: Changed 3 years ago by dkocher

  • Resolution set to fixed
  • Status changed from reopened to closed

comment:23 in reply to: ↑ 22 Changed 3 years ago by richardvd

In case you still want to see my ifconfig output, here it is:

MBA-Richard:~ richard$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	options=3<RXCSUM,TXCSUM>
	inet6 ::1 prefixlen 128 
	inet 127.0.0.1 netmask 0xff000000 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
	nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 5c:f9:xx:xx:xx:xx 
	inet6 fe80::5ef9:xxff:xxxx:xxxx%en0 prefixlen 64 scopeid 0x4 
	inet6 2001:1af8:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx prefixlen 64 autoconf 
	inet6 2001:1af8:xxxx:xxxx:3cb5:8e15:fd82:d447 prefixlen 64 autoconf temporary 
	inet 192.168.2.8 netmask 0xffffff00 broadcast 192.168.2.255
	nd6 options=1<PERFORMNUD>
	media: autoselect
	status: active
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 32:00:xx:xx:xx:xx 
	media: autoselect <full-duplex>
	status: inactive
bridge0: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
	options=63<RXCSUM,TXCSUM,TSO4,TSO6>
	ether 5e:f9:xx:xx:xx:xx 
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en1 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 5 priority 0 path cost 0
	media: <unknown type>
	status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
	ether 0e:f9:xx:xx:xx:xx 
	media: autoselect
	status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1452
	ether fe:94:xx:xx:xx:xx 
	inet6 fe80::fc94:xxff:xxxx:xxxx%awdl0 prefixlen 64 scopeid 0x8 
	nd6 options=1<PERFORMNUD>
	media: autoselect
	status: active

I look forward to you next snapshot release!

comment:24 Changed 3 years ago by dkocher

I think my above change r17592 will unfortunately make no difference given the ifconfig output. Please enable debug logging and post the output in the system.log (/Applications/Utilities/Console.app) after a connection attempt.

comment:25 follow-up: Changed 3 years ago by dkocher

Snapshot build r17592 is now available.

comment:26 in reply to: ↑ 25 Changed 3 years ago by richardvd

No change unfortunately for this case.

This is the debug logging output of Version 4.8 (17592):

21/05/15 16:08:32,610 Cyberduck[893]: Failed to connect (historyMenu) outlet from (ProxyForJava) to (NSMenu): missing setter or instance variable
21/05/15 16:08:32,615 Cyberduck[893]: Failed to connect (rendezvousMenu) outlet from (ProxyForJava) to (NSMenu): missing setter or instance variable
21/05/15 16:08:32,619 Cyberduck[893]: Could not connect action, target class ProxyForJava does not respond to -historyMenuClicked:

The above is all logged before I try to connect. Nothing extra is added to the log when the 'no route to host' error appears.

comment:27 follow-up: Changed 3 years ago by dkocher

Debug logging is not enabled. Please try

defaults write ~/Library/Preferences/ch.sudo.cyberduck.plist logging debug

and restart Cyberduck.app.

comment:28 in reply to: ↑ 27 ; follow-up: Changed 3 years ago by richardvd

I double checked it, debug logging is enabled:

MBA-Richard:~ richard$ defaults read ch.sudo.cyberduck logging
debug

And of course I already did ⌘-Q and then restarted and verified the version number (17592).

The debug setting does work, because if I delete the logging key, then it logs nothing on startup. So debug logging is enabled and working as far as I can tell, the error just doesn't seem to follow the code path you expect it to. :-)

comment:29 in reply to: ↑ 28 ; follow-up: Changed 3 years ago by dkocher

Replying to richardvd: Sorry, my fault. We only ever logged ERROR level to the system log. Removed constraint in r17641.

comment:30 in reply to: ↑ 29 Changed 3 years ago by richardvd

Replying to dkocher:

Replying to richardvd: Sorry, my fault. We only ever logged ERROR level to the system log. Removed constraint in r17641.

That makes sense, no problem! This is the output from starting the FTP-session to ftp6.netbsd.org until seeing the error popup:

25/05/15 13:17:47,222 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Mount session for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,222 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Unmount session null
25/05/15 13:17:47,222 Cyberduck[38025]: [main] DEBUG ch.cyberduck.core.SessionFactory - Create session for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,223 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Set working directory to null
25/05/15 13:17:47,223 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Set path filter to null
25/05/15 13:17:47,224 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Reload data with selected files []
25/05/15 13:17:47,224 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserOutlineViewModel - Reload table view <CDOutlineView: 0x1001389c0> for changes files []
25/05/15 13:17:47,225 Cyberduck[38025]: [main] DEBUG ch.cyberduck.core.AbstractController - Run action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null} in background
25/05/15 13:17:47,226 Cyberduck[38025]: [main] DEBUG ch.cyberduck.core.AbstractController - Synchronize on lock Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed} for action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 13:17:47,226 Cyberduck[38025]: [main] INFO  ch.cyberduck.core.AbstractController - Scheduled background runnable WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null} for execution
25/05/15 13:17:47,227 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.AbstractController - Acquired lock for background runnable WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 13:17:47,227 Cyberduck[38025]: [main] INFO  ch.cyberduck.core.Cache - Clearing cache Cache{size=0}
25/05/15 13:17:47,227 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.AbstractController - Prepare background action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 13:17:47,228 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.threading.AbstractBackgroundAction - Prepare background task WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 13:17:47,233 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.AbstractController - Call background action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 13:17:47,233 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.KeychainLoginService - Validate login credentials for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,233 Cyberduck[38025]: [background-1] INFO  ch.cyberduck.core.HostPasswordStore - Fetching password from keychain for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,244 Cyberduck[38025]: [background-1] INFO  ch.cyberduck.core.HostPasswordStore - Password not found in keychain for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,244 Cyberduck[38025]: [background-1] INFO  ch.cyberduck.core.proxy.SystemConfigurationProxy - No poxy configuration found for target Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,244 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.threading.NamedThreadFactory - Create thread for runnable ch.cyberduck.core.Resolver$1@4ec8375e
25/05/15 13:17:47,245 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.Resolver - Waiting for resolving of ftp6.netbsd.org
25/05/15 13:17:47,247 Cyberduck[38025]: [resolver-1] INFO  ch.cyberduck.core.Resolver - Resolved ftp6.netbsd.org to 2001:470:a085:999:0:0:0:21
25/05/15 13:17:47,247 Cyberduck[38025]: [resolver-1] DEBUG org.rococoa - Draining autorelease pool
25/05/15 13:17:47,248 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.Session - Connection will open to Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,248 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.ssl.CustomTrustSSLProtocolSocketFactory - Using SSL context with protocol TLS
25/05/15 13:17:47,249 Cyberduck[38025]: [background-1] INFO  ch.cyberduck.core.proxy.ProxySocketFactory - Use target hostname ftp6.netbsd.org determined from callback ch.cyberduck.core.ssl.DefaultTrustManagerHostnameCallback@111097d3 for proxy configuration
25/05/15 13:17:47,249 Cyberduck[38025]: [background-1] INFO  ch.cyberduck.core.proxy.SystemConfigurationProxy - No poxy configuration found for target Host{credentials=Credentials{user=''}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 13:17:47,250 Cyberduck[38025]: [background-1] INFO  ch.cyberduck.core.socket.DefaultSocketConfigurator - Set timeout to 30000ms for socket Socket[unconnected]
25/05/15 13:17:47,251 Cyberduck[38025]: [background-1] WARN  ch.cyberduck.core.threading.SessionBackgroundAction - Failure executing background action: ch.cyberduck.core.exception.ConnectionRefusedException{detail='No route to host.', cause='java.net.ConnectException: No route to host', message='Connection failed'}
25/05/15 13:17:47,251 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.threading.DefaultFailureDiagnostics - Determine cause for failure ch.cyberduck.core.exception.ConnectionRefusedException{detail='No route to host.', cause='java.net.ConnectException: No route to host', message='Connection failed'}
25/05/15 13:17:47,251 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.threading.AbstractBackgroundAction - Finish background task WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=opening}}, result=null}
25/05/15 13:17:47,254 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.threading.BackgroundActionRegistry - Remove action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=opening}}, result=null}
25/05/15 13:17:47,255 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.core.threading.DefaultFailureDiagnostics - Determine cause for failure ch.cyberduck.core.exception.ConnectionRefusedException{detail='No route to host.', cause='java.net.ConnectException: No route to host', message='Connection failed'}
25/05/15 13:17:47,260 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidChangeBackingProperties:
25/05/15 13:17:47,260 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillMove:
25/05/15 13:17:47,260 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillExitVersionBrowser:
25/05/15 13:17:47,261 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidUpdate:
25/05/15 13:17:47,261 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidResize:
25/05/15 13:17:47,261 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidMiniaturize:
25/05/15 13:17:47,261 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidEnterFullScreen:
25/05/15 13:17:47,261 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidExitFullScreen:
25/05/15 13:17:47,261 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidChangeOcclusionState:
25/05/15 13:17:47,262 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidMove:
25/05/15 13:17:47,262 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidEndSheet:
25/05/15 13:17:47,262 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillOrderOffScreen:
25/05/15 13:17:47,262 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidOrderOnScreen:
25/05/15 13:17:47,262 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidExpose:
25/05/15 13:17:47,263 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidEndLiveResize:
25/05/15 13:17:47,263 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillMiniaturize:
25/05/15 13:17:47,263 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidExitVersionBrowser:
25/05/15 13:17:47,263 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidOrderOffScreen:
25/05/15 13:17:47,263 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillEnterVersionBrowser:
25/05/15 13:17:47,264 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidChangeScreenProfile:
25/05/15 13:17:47,264 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidEnterVersionBrowser:
25/05/15 13:17:47,264 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidDeminiaturize:
25/05/15 13:17:47,264 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillOrderOnScreen:
25/05/15 13:17:47,264 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowDidChangeScreen:
25/05/15 13:17:47,264 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillStartLiveResize:
25/05/15 13:17:47,265 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillBeginSheet:
25/05/15 13:17:47,265 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:validRequestorForSendType:returnType:
25/05/15 13:17:47,265 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:windowWillReturnFieldEditor:toObject:
25/05/15 13:17:47,265 Cyberduck[38025]: [background-1] DEBUG org.rococoa.callback - No method for selector:window:willEncodeRestorableState:
25/05/15 13:17:47,268 Cyberduck[38025]: [main] DEBUG ch.cyberduck.ui.cocoa.BundleController - No bundle to load for controller ch.cyberduck.ui.cocoa.threading.PanelAlertCallback$1@42d26175
25/05/15 13:17:47,281 Cyberduck[38025]: [main] DEBUG org.rococoa.callback - No method for selector:window:willPositionSheet:usingRect:
25/05/15 13:17:47,546 Cyberduck[38025]: [background-1] DEBUG ch.cyberduck.ui.cocoa.SheetController - Await sheet dismiss

comment:31 Changed 3 years ago by dkocher

Add tests in r17648.

comment:32 Changed 3 years ago by dkocher

In r17649.

comment:33 follow-up: Changed 3 years ago by dkocher

  • Summary changed from Failure No Route to Host when connecting to IPv6 address to Routing failure when connecting to IPv6 address because of wrong default network interface

comment:34 in reply to: ↑ 33 Changed 3 years ago by richardvd

Snapshot release 17649 logs:

25/05/15 15:05:17,767 Cyberduck[39251]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Mount session for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,769 Cyberduck[39251]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Unmount session null
25/05/15 15:05:17,770 Cyberduck[39251]: [main] DEBUG ch.cyberduck.core.SessionFactory - Create session for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,771 Cyberduck[39251]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Set working directory to null
25/05/15 15:05:17,772 Cyberduck[39251]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Set path filter to null
25/05/15 15:05:17,772 Cyberduck[39251]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserController - Reload data with selected files []
25/05/15 15:05:17,773 Cyberduck[39251]: [main] DEBUG ch.cyberduck.ui.cocoa.BrowserOutlineViewModel - Reload table view <CDOutlineView: 0x100348650> for changes files []
25/05/15 15:05:17,780 Cyberduck[39251]: [main] DEBUG ch.cyberduck.core.AbstractController - Run action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null} in background
25/05/15 15:05:17,781 Cyberduck[39251]: [main] DEBUG ch.cyberduck.core.AbstractController - Synchronize on lock Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed} for action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 15:05:17,782 Cyberduck[39251]: [main] DEBUG ch.cyberduck.core.threading.NamedThreadFactory - Create thread for runnable java.util.concurrent.ThreadPoolExecutor$Worker@687e99d8[State = -1, empty queue]
25/05/15 15:05:17,782 Cyberduck[39251]: [main] INFO  ch.cyberduck.core.AbstractController - Scheduled background runnable WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null} for execution
25/05/15 15:05:17,783 Cyberduck[39251]: [main] INFO  ch.cyberduck.core.Cache - Clearing cache Cache{size=0}
25/05/15 15:05:17,783 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.AbstractController - Acquired lock for background runnable WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 15:05:17,783 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.AbstractController - Prepare background action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 15:05:17,783 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.threading.AbstractBackgroundAction - Prepare background task WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 15:05:17,791 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.AbstractController - Call background action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=closed}}, result=null}
25/05/15 15:05:17,792 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.KeychainLoginService - Validate login credentials for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,792 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.HostPasswordStore - Fetching password from keychain for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,810 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.HostPasswordStore - Password not found in keychain for Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,813 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.proxy.SystemConfigurationProxy - No poxy configuration found for target Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,814 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.threading.NamedThreadFactory - Create thread for runnable ch.cyberduck.core.Resolver$1@402dc3c
25/05/15 15:05:17,814 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.Resolver - Waiting for resolving of ftp6.netbsd.org
25/05/15 15:05:17,831 Cyberduck[39251]: [resolver-1] INFO  ch.cyberduck.core.Resolver - Resolved ftp6.netbsd.org to 2001:470:a085:999:0:0:0:21
25/05/15 15:05:17,831 Cyberduck[39251]: [resolver-1] DEBUG org.rococoa - Draining autorelease pool
25/05/15 15:05:17,832 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.Session - Connection will open to Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,855 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.ssl.CustomTrustSSLProtocolSocketFactory - Using SSL context with protocol TLS
25/05/15 15:05:17,870 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.proxy.ProxySocketFactory - Use target hostname ftp6.netbsd.org determined from callback ch.cyberduck.core.ssl.DefaultTrustManagerHostnameCallback@153bc5d7 for proxy configuration
25/05/15 15:05:17,871 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.proxy.SystemConfigurationProxy - No poxy configuration found for target Host{credentials=Credentials{user=''}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}
25/05/15 15:05:17,878 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.socket.DefaultSocketConfigurator - Set timeout to 30000ms for socket Socket[unconnected]
25/05/15 15:05:17,887 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Evaluate interface with name:awdl0 (awdl0) index 8
25/05/15 15:05:17,887 Cyberduck[39251]: [background-1] WARN  ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Ignore network interface name:awdl0 (awdl0) disabled with blacklist
25/05/15 15:05:17,888 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Evaluate interface with name:vnic1 (vnic1) index 10
25/05/15 15:05:17,888 Cyberduck[39251]: [background-1] WARN  ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - No IPv6 for interface name:vnic1 (vnic1)
25/05/15 15:05:17,889 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Evaluate interface with name:vnic0 (vnic0) index 9
25/05/15 15:05:17,889 Cyberduck[39251]: [background-1] WARN  ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - No IPv6 for interface name:vnic0 (vnic0)
25/05/15 15:05:17,890 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Evaluate interface with name:en0 (en0) index 4
25/05/15 15:05:17,890 Cyberduck[39251]: [background-1] INFO  ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Selected network interface name:en0 (en0)
25/05/15 15:05:17,937 Cyberduck[39251]: [main] DEBUG ch.cyberduck.core.resources.NSImageIconCache - No cached image for stop
25/05/15 15:05:18,063 Cyberduck[39251]: [background-1] WARN  ch.cyberduck.core.threading.SessionBackgroundAction - Failure executing background action: ch.cyberduck.core.exception.ConnectionRefusedException{detail='Already connected.', cause='java.net.SocketException: already connected', message='Connection failed'}
25/05/15 15:05:18,064 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.threading.DefaultFailureDiagnostics - Determine cause for failure ch.cyberduck.core.exception.ConnectionRefusedException{detail='Already connected.', cause='java.net.SocketException: already connected', message='Connection failed'}
25/05/15 15:05:18,064 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.threading.AbstractBackgroundAction - Finish background task WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=opening}}, result=null}
25/05/15 15:05:18,065 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.threading.BackgroundActionRegistry - Remove action WorkerBackgroundAction{worker=MountWorker{session=Session{host=Host{credentials=Credentials{user='anonymous'}, hostname='ftp6.netbsd.org', port=21, protocol=ftp}, state=opening}}, result=null}
25/05/15 15:05:18,067 Cyberduck[39251]: [background-1] DEBUG ch.cyberduck.core.threading.DefaultFailureDiagnostics - Determine cause for failure ch.cyberduck.core.exception.ConnectionRefusedException{detail='Already connected.', cause='java.net.SocketException: already connected', message='Connection failed'}

Now the error in the popup has changed from 'no route to host' to 'already connected'.

comment:35 Changed 3 years ago by dkocher

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:36 Changed 3 years ago by dkocher

Fixed already connected failure in r17652. (Unfortunately our continuous build environment has no IP6 routing which makes it difficult to catch these errors in tests.)

comment:37 Changed 3 years ago by dkocher

  • Resolution set to fixed
  • Status changed from reopened to closed

comment:38 Changed 3 years ago by richardvd

Confirmed working in r17652, thanks a lot!

Connecting to IPv6-only hosts is now possible using Cyberduck, but there are still cases where it won't work. For the other cases I have opened ticket 8848 to keep this ticket clean.

Last edited 3 years ago by richardvd (previous) (diff)

comment:39 follow-up: Changed 3 years ago by peterf

  • Resolution fixed deleted
  • Status changed from closed to reopened
  • Version changed from 4.7 to 4.8.4

I'm still having the same problem with Cyberduck 4.8.4 and 5.0 (r19424). Dual-stack connected mac, trying to connect to host with IPv4 and IPv6 address, both in DNS.

By preferring IPv6 using "defaults write ch.sudo.cyberduck connection.dns.ipv6 true" the connection always gives "No route to host". This is because it again selects awdl0 as the interface to use.

---

Mar 23 18:40:16 macbookpeter Cyberduck[5090]: [background-1] DEBUG ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Evaluate interface with name:awdl0 (awdl0) index 9
Mar 23 18:40:16 macbookpeter Cyberduck[5090]: [background-1] INFO  ch.cyberduck.core.socket.NetworkInterfaceAwareSocketFactory - Selected network interface name:awdl0 (awdl0)
Mar 23 18:40:16 macbookpeter Cyberduck[5090]: [background-1] WARN  ch.cyberduck.core.threading.SessionBackgroundAction - Failure executing background action: ch.cyberduck.core.exception.ConnectionRefusedException{detail='No route to host.', cause='java.net.NoRouteToHostException: No route to host', message='Verbinding mislukt'}
Mar 23 18:40:16 macbookpeter Cyberduck[5090]: [background-1] DEBUG ch.cyberduck.core.threading.DefaultFailureDiagnostics - Determine cause for failure ch.cyberduck.core.exception.ConnectionRefusedException{detail='No route to host.', cause='java.net.NoRouteToHostException: No route to host', message='Verbinding mislukt'}

---

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	options=3<RXCSUM,TXCSUM>
	inet6 ::1 prefixlen 128
	inet 127.0.0.1 netmask 0xff000000
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 3c:15:xx:xx:xx:xx
	inet6 fe80::3e15:xxxx:xxxx:xxxx%en0 prefixlen 64 scopeid 0x4
	inet 10.0.110.150 netmask 0xffffff00 broadcast 10.0.110.255
	inet6 2a02:a44f:xxxx::xxxxx prefixlen 128 dynamic
	nd6 options=1<PERFORMNUD>
	media: autoselect
	status: active
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
	options=60<TSO4,TSO6>
	ether 72:00:04:xx:xx:80
	media: autoselect <full-duplex>
	status: inactive
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
	options=60<TSO4,TSO6>
	ether 72:00:04:xx:xx:81
	media: autoselect <full-duplex>
	status: inactive
bridge0: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
	options=63<RXCSUM,TXCSUM,TSO4,TSO6>
	ether 3e:15:xx:xx:xx:00
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en1 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 5 priority 0 path cost 0
	member: en2 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 6 priority 0 path cost 0
	media: <unknown type>
	status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
	ether 0e:15:xx:xx:xx:8c
	media: autoselect
	status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
	ether ca:7a:73:b7:69:39
	inet6 fe80::c87a:73ff:feb7:6939%awdl0 prefixlen 64 scopeid 0x9
	nd6 options=1<PERFORMNUD>
	media: autoselect
	status: active

comment:40 Changed 3 years ago by dkocher

  • Milestone changed from 4.7.1 to 5.0

comment:41 in reply to: ↑ 39 Changed 3 years ago by dkocher

Replying to peterf:

I'm still having the same problem with Cyberduck 4.8.4 and 5.0 (r19424). Dual-stack connected mac, trying to connect to host with IPv4 and IPv6 address, both in DNS.

By preferring IPv6 using "defaults write ch.sudo.cyberduck connection.dns.ipv6 true" the connection always gives "No route to host". This is because it again selects awdl0 as the interface to use.

Thanks for the perfect regression test! We will look into this again.

comment:42 Changed 3 years ago by dkocher

You should see a log statement

Ignore network interface awdl0 disabled with blacklist

comment:43 Changed 3 years ago by dkocher

  • Milestone changed from 5.0 to 4.9

comment:44 Changed 3 years ago by dkocher

  • Resolution set to fixed
  • Status changed from reopened to closed

In r20041.

Note: See TracTickets for help on using tickets.
swiss made software