Skip to content

Input/output error with nfsrods 2.3.1 #219

Description

@technics3

I got a simple setup with NFSrods exposing an iRods resource on a local network.

When reading a file on the client mounting the network share, i got the following :

$ cat /mnt/SHARE/FBIOMEROv2/Figure5/Figure5B/ome.xml
[...]
    </MapAnnotation>
    <MapAnnotation ID="Annotation:1028667460" Namespace="quay">
      <Value>
        <M K="quay_id">img_3b1e79ea-ae88-11f0-8303-fa163ea9274a</M>
      </Value>
    </MapAnnotation>
    <MapAnnotation ID="Annotation:1004525017" Namespace="quay">
      <Value/>
    </MapAnnotation>
  </Structcat: /mnt/SHARE/FBIOMEROv2/Figure5/Figure5B/ome.xml: Input/output error

I got the same error copying the file, and i still got it even after restarting the NFSrods docker container and / or remounting the mount on the client.

If i iget the file directly from iRods, the file can be read entirely. It is not corrupted.
The file is a 169 line long XML file.

The nfsrods config file :

$ cat nfsrods_config/server.json
{
    "nfs_server": {
        "port": 2049,
        "irods_mount_point": "/devZone",

        "user_access_refresh_time_in_milliseconds": 1000,
        "user_information_refresh_time_in_milliseconds": 1000,
        "user_type_refresh_time_in_milliseconds": 1000,
        "user_permissions_refresh_time_in_milliseconds": 1000,
        "file_information_refresh_time_in_milliseconds": 1000,
        "object_type_refresh_time_in_milliseconds": 1000,
        "list_operation_query_results_refresh_time_in_milliseconds": 1000,

        "using_oracle_database": false
    },
    "irods_client": {
        "zone": "devZone",
        "host": "nte-irods-icat",
        "port": 1247,
        "default_resource": "nteuserResc",
        "ssl_negotiation_policy": "CS_NEG_REFUSE",
        "proxy_admin_account": {
            "username": "********",
            "password": "********"
        }
    }
}

$ cat nfsrods_config/exports 
/ *(rw,acl,no_root_squash)

The client fstab :

10.XXX.XXX.XXX:/home /mnt/SHARE nfs noac,lookupcache=none 0 0

EDIT :

I tested this deeper and i broke down our workflow to the following test :

  • Generate a long file containing random strings, with a random line count (while true; do echo $RANDOM >> /mnt/coop/home/FBIOMEROv2/file.txt; done)
  • ireg -rf the folder containing the file in iRods

At this point there is no problem in NFSrods, the file can be normally read. The problem occur when you run the test again :

  • Remove the file from the server
  • Generate a long file containing random strings, with a random line count (while true; do echo $RANDOM >> /mnt/coop/home/FBIOMEROv2/file.txt; done)
  • ireg -rf the folder containing the new file in iRods

Now the error on NFSrods is not always the same. I got to corrupt some files doing that, but sometimes the file stops before the end without an Input/output error, and sometimes the changes are juste not reflected on NFSrods, the first file appears on the client.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions