--
--
The Integrated Rule-Oriented Data System (iRODS) - https://irods.org
iROD-Chat: http://groups.google.com/group/iROD-Chat
---
You received this message because you are subscribed to the Google Groups "iRODS-Chat" group.
To unsubscribe from this group and stop receiving emails from it, send an email to irod-chat+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/irod-chat/2a933080-f4f2-48d6-a74d-8b977145a849n%40googlegroups.com.
# Authenticate
password = getpass("Your iRODS password")
# Upload
CAUTION: This email originated from outside of Utrecht University. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Hi,
What John has described - accurately, I think - is the legacy parallel transfer which uses the "high ports". This is only applicable to some clients, most notably the iCommandsiput and iget.
PRC uses a different mechanism for parallel transfer which we call "multi-1247" parallel transfer. This establishes a number of independent connections (must be the same server) on the iRODS port (rather than the "high ports") and it performs concurrent, coordinated writes to transfer the data.
Two things stand out to me in the errors that you shared:
1. From the server logs: "status [Unknown iRODS error] errno [No buffer space available] -- message [read -1 expected 4]"
This indicates that something is leaking network buffers (according to The Internet) in the server. Maybe that thing is iRODS, but maybe it's something else running in the server... Are you able to tell whether the agent printing this log message is the one servicing the PRC put request?
2. ValueError: non-zero flags not allowed in calls to recv() on <class 'ssl.SSLSocket'>
We are investigating an issue very similar to this raised by another user as it relates to ingest, so it's interesting to see it appear here apart from ingest. If you can share your python script as Dan requested, we may be able to find a pattern. However, you stated that you already tried disabling SSL and still see timeouts, so that is probably not the issue. I think the real issue is whatever is causing that "No buffer space available".
I wanted to make one final comment about adjusting the number of threads used with the put.DataObjectManager.put() has a num_threads argument which you must set to 1 to get the desired streaming behavior. ThenumThreads keyword being set in your example code will only set thenumThreads for the API call, but PRC makes the determination about whether to use the "multi-1247" parallel transfer before it makes the API call. So try settingnum_threads=1 in your put() call and see if that helps (although, I imagine transferring a 1TB file will take an absurdly long time with 1 thread!).
Alan
--
--
--
The Integrated Rule-Oriented Data System (iRODS) - https://irods.org
iROD-Chat: http://groups.google.com/group/iROD-Chat
---
You received this message because you are subscribed to the Google Groups "iRODS-Chat" group.
To unsubscribe from this group and stop receiving emails from it, send an email to irod-chat+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/irod-chat/c5d3ebc4-fbb3-4dae-ad01-fccbc93bec3dn%40googlegroups.com.