Fix fuse client offset synchronization problems

git-svn-id: svn://irodssvn.ucsd.edu/trunk@5569 ea137bd6-aa86-47b6-b90d-b101d9f19a90
A python test for seeking function of fuse client

git-svn-id: svn://irodssvn.ucsd.edu/trunk@5570 ea137bd6-aa86-47b6-b90d-b101d9f19a90
Fix a double-free agent segfault when the user tries to replicate a
data-object to a resource that already has a valid copy.

This was found and reported by the RENCI EiRODS folks and is tracker item
1704 in their system:
https://code.renci.org/gf/project/e-irods/tracker/?action=TrackerItemEdit&tracker_item_id=1704&tracker_id=1704
There is also an item 1705 with some related test updates.

The tracker 1704 fix is to modify an input link-list of dataObjInfo
structures in chkCopyInResc but I decided to try a different approach
and added a new function to avoid the problem more directly, by
avoiding a free of the structure a second time.  This seems like the
safer approach to me as it is more specific to the error.  It looks
like existing code, chkCopyInResc, is just checking whether this would
be a duplicate so I didn't want to possibly adversely affect any of
that, particularly since I'm not familiar with the overall logic using
that, it's somewhat involved, and seems to work OK except for the free
at the end.

The problem can be reproduced by doing a second irepl to the same
resource, at least on the platform used at DICE-UCSD using iRODS
(tracker 1704 indicates that it takes 3 copies of the data-object
there).  So for us here, it's just (assuming resc2 is not the default
resource):
  iput file1 
  irepl -R resc2 file1
  irepl -R resc2 file1

I've also added a test like the above in icatTest.pl (part of
'irodsctl devtest' and so Tinderbox).  Before the code fixes in this
commit, that test would fail as the second irepl would fail as the
agent aborted.


git-svn-id: svn://irodssvn.ucsd.edu/trunk@5571 ea137bd6-aa86-47b6-b90d-b101d9f19a90
An update for the test for the previous commit, seems we need to do a
collection irepl to reproduce the error, at least in some cases.

But with this, I believe it does reproduce the problem that r5571
commit fixes.  I discovered this via some re-testing with the svn
version and removing the fix.



git-svn-id: svn://irodssvn.ucsd.edu/trunk@5572 ea137bd6-aa86-47b6-b90d-b101d9f19a90
When creating a resource, check that the resource name isn't blank.

This can be done via 'iadmin mkresc' if the user enters "" as the
resource name.  Once created, it's difficult to deal with.  We have a
number of basic checks on user input like this, but we (I) had missed
this one (probably since day one).

This was discovered via some testing done at a collaborating site and
reported to me in email.


git-svn-id: svn://irodssvn.ucsd.edu/trunk@5573 ea137bd6-aa86-47b6-b90d-b101d9f19a90
Added: variables or expressions as keys for the dot operator; loop over keys of key value pairs; loading new rule engine microservices defined in modules. New rule engine microservices are defined in microservice table by setting its number of arguments to 0xff. And they can access info provided by the new rule engine.

git-svn-id: svn://irodssvn.ucsd.edu/trunk@5574 ea137bd6-aa86-47b6-b90d-b101d9f19a90
Add policy enforcement point for pre and post file transfer using server portal, currently support tcp connections.

git-svn-id: svn://irodssvn.ucsd.edu/trunk@5575 ea137bd6-aa86-47b6-b90d-b101d9f19a90