Cyberduck Mountain Duck CLI

#9615 closed defect (fixed)

Download from iRODS generates Unknown error

Reported by: user8439 Owned by: dkocher
Priority: normal Milestone: 5.0.9
Component: irods Version: 5.0.3
Severity: blocker Keywords:
Cc: Architecture: Intel
Platform: Windows 7

Description (last modified by dkocher)

When attempting to download a file from an iRODS server, the Transfers dialog generates an Error dialog with the following:

Unknown

org.irods.jargon.core.exception.JargonRuntimeExcepti...
JargonException caught in constructor, rethrow as
JargonRuntimeException.

Test Environment:

Cyberduck Version 5.0.3 on Microsoft Windows 7 Enterprise Service Pack 1 64-bit iRODS server Release Version rods4.1.6, API Version = d

Change History (15)

comment:1 Changed on Jun 30, 2016 at 7:46:42 PM by user8439

The C:\Users\username\AppData\Roaming\Cyberduck\cyberduck.log file contains the following entry from the time of the action:

2016-06-30 15:39:35,475 [transfer-2] ERROR org.irods.jargon.core.pub.io.IRODSFileInputStream - JargonException caught in constructor, rethrow as JargonRuntimeException
org.irods.jargon.core.exception.CatNoAccessException: No access to item in catalog
	at org.irods.jargon.core.connection.IRODSErrorScanner.checkSpecificCodesAndThrowIfExceptionLocated(IRODSErrorScanner.java:178)
	at org.irods.jargon.core.connection.IRODSErrorScanner.inspectAndThrowIfNeeded(IRODSErrorScanner.java:123)
	at org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol.processMessageInfoLessThanZero(AbstractIRODSMidLevelProtocol.java:1172)
	at org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol.readMessage(AbstractIRODSMidLevelProtocol.java:663)
	at org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol.readMessage(AbstractIRODSMidLevelProtocol.java:629)
	at org.irods.jargon.core.connection.IRODSMidLevelProtocol.irodsFunction(IRODSMidLevelProtocol.java:235)
	at org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol.irodsFunction(AbstractIRODSMidLevelProtocol.java:174)
	at org.irods.jargon.core.pub.IRODSFileSystemAOImpl.openFile(IRODSFileSystemAOImpl.java:907)
	at org.irods.jargon.core.pub.io.IRODSFileImpl.openWithMode(IRODSFileImpl.java:1277)
	at org.irods.jargon.core.pub.io.IRODSFileImpl.open(IRODSFileImpl.java:1329)
	at org.irods.jargon.core.pub.io.IRODSFileInputStream.openIRODSFile(IRODSFileInputStream.java:173)
	at org.irods.jargon.core.pub.io.IRODSFileInputStream.openFile(IRODSFileInputStream.java:110)
	at org.irods.jargon.core.pub.io.IRODSFileInputStream.<init>(IRODSFileInputStream.java:96)
	at org.irods.jargon.core.pub.io.IRODSFileFactoryImpl.instanceIRODSFileInputStream(IRODSFileFactoryImpl.java:488)
	at ch.cyberduck.core.irods.IRODSReadFeature.read(IRODSReadFeature.java:48)
	at ch.cyberduck.core.shared.DefaultDownloadFeature.download(DefaultDownloadFeature.java:51)
	at ch.cyberduck.core.transfer.DownloadTransfer.transfer(DownloadTransfer.java:265)
	at ch.cyberduck.core.worker.AbstractTransferWorker$3.call(AbstractTransferWorker.java:365)
	at ch.cyberduck.core.worker.AbstractTransferWorker$3.call(AbstractTransferWorker.java:353)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:512)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:618)
	at ch.cyberduck.core.threading.NamedThreadFactory$1.run(NamedThreadFactory.java:55)
	at java.lang.Thread.run(Thread.java:955)

comment:2 Changed on Jun 30, 2016 at 7:55:40 PM by user8439

The server's /var/lib/irods/iRODS/server/log/rodsLog file contains the following entries from the time of the action:

Jun 30 15:39:35 pid:11357 NOTICE: _rsGenQuery: genQuery status = -818000
Jun 30 15:39:35 pid:11357 NOTICE: rsGenQuery: _rsGenQuery failed, status = -818000
Jun 30 15:39:35 pid:11357 NOTICE: getDataObjInfo: rsGenQuery error, status = -818000
Jun 30 15:39:35 pid:11357 NOTICE: _rsGenQuery: genQuery status = -818000
Jun 30 15:39:35 pid:11357 NOTICE: rsGenQuery: _rsGenQuery failed, status = -818000
Jun 30 15:39:35 pid:11357 NOTICE: getDataObjInfo: rsGenQuery error, status = -818000

comment:3 Changed on Jun 30, 2016 at 8:03:06 PM by user8439

After deleting the iRODS connection bookmark and creating a new connection, the download did work. I suspect the bookmark is somehow getting corrupted during runs of the Cyberduck client. This particular iRODS server is not using the default "demoResc" resource. Perhaps the default resource is being set inconsistently?

Note that the edit bookmark dialog does not expose a setting for the default resource for iRODS connections.

comment:4 Changed on Jun 30, 2016 at 8:28:52 PM by dkocher

  • Component changed from core to irods
  • Milestone set to 5.1
  • Owner set to dkocher
  • Status changed from new to assigned

Error handling fixed in r21033.

comment:5 Changed on Jun 30, 2016 at 8:31:18 PM by dkocher

  • Description modified (diff)

comment:6 Changed on Jun 30, 2016 at 8:38:13 PM by dkocher

The resource server must be set in the connection profile. Refer to https://trac.cyberduck.io/wiki/help/en/howto/irods#ResourceServer

comment:7 Changed on Jun 30, 2016 at 8:38:26 PM by dkocher

Relates to #8721.

comment:8 Changed on Jun 30, 2016 at 8:39:39 PM by dkocher

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

Please reopen this issue if you can reproduce the error with the newly created bookmark.

comment:9 Changed on Jun 30, 2016 at 9:24:37 PM by user8439

  • Resolution worksforme deleted
  • Status changed from closed to reopened

I set the resource server in the connection profile. When opening a new connection based on the profile, upload and download work as expected. However, if the connection is bookmarked then the error can be consistently reproduced in connections opened from the bookmark. Note that the bookmark must have the path set to '/' as per a separate bug.

Therefore, this error seems to only apply to connections opened from iRODS bookmarks created from a profile having a resource server setting other than demoResc. Perhaps the setting from the profile is not carrying in to bookmarks?

Version 0, edited on Jun 30, 2016 at 9:24:37 PM by user8439 (next)

comment:10 Changed on Jul 1, 2016 at 7:15:17 AM by dkocher

  • Status changed from reopened to new

comment:11 Changed on Jul 1, 2016 at 7:32:03 AM by dkocher

Can you please attach the connection profile you are using. If you have multiple profiles installed, make sure the Vendor is different for each.

Last edited on Jul 1, 2016 at 8:33:41 AM by dkocher (previous) (diff)

comment:12 Changed on Jul 6, 2016 at 2:00:41 PM by user8439

I created a connection profile from the example at http://irods.org/2015/09/howtocyberduck/. I had created separate profiles for test and production instances of iRODS. The two profiles used different zone and resource names. However, both of them had the same string for the Vendor key in the .cyberduckprofile files. I had not modified Vendor from the example.

With the suggestion in comment #11, I deleted %APPDATA%\Cyberduck and started over with a new connection profile. This time I modified the string for the Vendor key to be the same as the zone name, ensuring uniqueness for each instance. Connections based on this new profile, opened via either the Open Connection dialog or from a Bookmark with Path = "/" both work. Uploads and Downloads now complete as expected. This appears to have resolved the problem.

The role of the Vendor key in the profile, and the relationship between a bookmark and a profile are still a bit unclear to me. Perhaps an update to the documentation describing these relationships is all that is needed? In addition, the Cyberduck run-time might report the existence of multiple profiles having the same Vendor value as an error state. This would help me detect such a problem in other installs in the future.

Thanks for the assistance with this issue @dkocher!

comment:13 Changed on Jul 15, 2016 at 7:43:42 AM by dkocher

We have added a remark in the documentation about the unique requirement of the Vendor key.

comment:14 Changed on Jul 15, 2016 at 7:44:35 AM by dkocher

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

comment:15 Changed on Jul 19, 2016 at 9:20:17 AM by dkocher

  • Milestone changed from 5.1 to 5.0.9
Note: See TracTickets for help on using tickets.
swiss made software