-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uploading data raises a KeyError -1205000
once the logical quota starts monitoring
#379
Comments
Did an iput or istream write of the same test file also evoke the error? |
|
Is this the same issue as irods/irods_rule_engine_plugin_logical_quotas#46 ? That was included/fixed in 4.2.11.0 |
No, iCommands works fine. |
This user has the user based permission in addition to the group permission:
|
FYI: This has been tested for 4.2.11 (irods and the logical quotas plugin) as well and I am verifying that I come across the same issue. This issue is happening also for the users' home collections even if nothing related to the rodsadmin group permission exists. permission:
key error:
|
Hello, we are now running 4.2.11. This has been tested again and generated the same result. We are going to be using the logical quota soon in our production zones and we evaluate this issue could be an obstacle. Could you let us know whether there is anything in our side that we can do as workaround until this issue is permanently fixed? Or expecting a solution to this as part of one of the next prc releases (if the issue is on the client side) would be much demanding? Thanks. |
@mstfdkmn Ok, will work to reproduce. |
@mstfdkmn So far unable to reproduce. My session is below:
I'd suggest starting from ground-zero , ie creating a collection, then adding quota limits and then starting to monitor the collection, to see if you can reproduce the error, then send me an exact replica of the commands you used. |
Hi @d-w-moore, I am getting exactly the same issue again. First I will put here the steps that I took:
logs: Ah, I see...Might it be the case that you run all as a rodsadmin? In my initial post I specified this like:
Also, I a bit tried to investigate and it seems to me that this is more a plugin issue instead of PRC. Just guessing that the issue is because PRC triggers |
One more thing that: we have the metadata plugin configured just above the logical quota. |
The logical quotas REP handles that PEP: https://github.com/irods/irods_rule_engine_plugin_logical_quotas/blob/df75c52f6d8aa89a2b452aeb56626c2f944b5986/src/main.cpp#L59 I'm wondering if this has anything to do with PRC's "multi-1247" parallel transfer implementation, which uses |
Another thing that could be useful:
|
@mstfdkmn Was it uploaded in its entirety ? How large is the uploaded file? |
Yes, the status looks okay and the size is 74703 bytes.
|
Ok, single buffer put, and you'd expect the file not to be successfully uploaded, since it exceeds the maximum bytes limitation. And I'm agreeing with what you said above, that this could be a plugin issue. If you hadn't sufficient permissions (as the stacktrace indicates) to upload the file, then why, I wonder, did the upload succeed. To answer on another point, I did try the upload as a rodsuser and as rodsadmin, when trying to reproduce, but with a smaller file than the maximum_bytes limit. Maybe I misunderstood the problem description.... |
Right, makes sense. If we can write a rule which opens/creates a file and closes it such that Perhaps something like this:
|
As seen in my post before the last one, |
Hi @alanking, I have just tested via Metalnx which triggers the same pep. And the results in the iRODS' logs are similar.
And these are the possible relavant errors in the logs of Metalnx:
|
@mstfdkmn I'm a little confused as to the problem being described then... if |
@d-w-moore sorry I need to correct myself for my last post. Indeed there are two points - one is what you said: it should not exceeds the quota set, and the second one is what I tried to state: regardless of the quota set (you could still have room to upload), the plugin should let the uploads done by prc without creating any errors. And those uploads should be counted by the lq plugin like uploads done by
|
I think this problem is the same as this one irods/irods_rule_engine_plugin_logical_quotas#75 . The roots seems the same. But I guess duplicating it - without awareness the core problem. |
Yes it does look similar to that issue.
Is that the metadata guard plugin ? |
Result: it does seem |
It did occur to me that I neglected to include writing data to the object so maybe it wouldn't make an impact on logical quotas in this instance. Could you write a few bytes and see if that has an impact? |
I actually did that , too, last night, and it didn't make a difference... sorry :/
|
If you meant the metadata guard plugin was enabled, then yes - we use those two plugins together. |
@mstfdkmn - The metadata guard plugin seems to be the key. With that loaded and configured, I was finally able to reproduce this issue. |
Great! Thanks. |
@mstfdkmn We should be able to release 4.2.11.1 of this plugin, which will incorporate a couple of changes that allow it to work for a rodsuser, and with the metadata plugin configured. |
We would be pleased if there is a progress on this issue because it seems that any set quota can be penetrated by uploading data via PRC. |
@mstfdkmn You are able to exceed set quotas with the PRC, even with the metadata guard plugin not installed and configured? OK, I'll check into it. |
Yes, installed but not configured. Meaning removed from |
Then this means we DO NOT yet understand what is happening. The metadata guard being installed we thought was triggering this issue (irods/irods_rule_engine_plugin_logical_quotas#63) (preventing non-admins from proceeding), which is already fixed in the logical quotas repository, and would be in a 4.2.11.1 (or 4.2.12.0) release. |
Two possible interpretations here (and I'm confused as to which you mean, so maybe you can help me out) : (1) If "this issue [still] exists_ [without metadata plugin configured]" means the raising of irods error (2) If by that you mean simply that one is able, via the PRC (or any client using streaming, ie open - write - close instead of an actual PUT), to exceed quota exactly once but with CREATE's and WRITE's limited afterward (see this commit message in logical quotas), then ( responding to your concern, @trel ) ... maybe we do understand what is going on after all. If that's the case, the one-time breaking of quotas is a feature / bug of the plugin and not a PRC concern. Continuing to check and verify on (2), which I believe is the more likely interpretation of your exact meaning in the previous post .... |
@mstfdkmn @trel ... verified.
However, I still have yet to reproduce the -1205000 error (the actual problem described in the title of this issue) without the metadata guard plugin configured and active. So, @mstfdkmn , if you can do so, perhaps we should get on a video chat so that you can show me how. |
Hello, I again tested in three different new environments (also with the postgres db configuration - normally we run mysql) and I can verify that I am seeing the same issues ( -1205000 error and exceeding set quotas with the PRC) without the metadata guard plugin (not installed and so not configured). Therefore your suggestion sounds great. At any convenient time of you, we can have a video call to show you what I am doing/seeing. Thanks a lot. |
@mstfdkmn - I was able to reproduce irods error -1205000 (RE_RUNTIME_ERROR) from a rodsuser put with PRC this morning, without a loaded and configured metadata guard. So, no driving need for us to meet now. Unfortunately, the status of an fix for 4.2.11 is still not definite. I will discuss with the team soon, however. |
Alright thanks. Btw, I missed your meeting request since I didn't expect we could meet that early and this afternoon I took some hours off. Sorry about:( |
No worries about that @mstfdkmn . I would like to impart, however, that after discussion with the iRODS Team and a little further experimentation, it seems that either an The error occurs in the |
Okay Daniel thanks. This also implies that a solution regarding with this to 4.3.x should not be expected before seeing that fix in 4.2.12? |
@mstfdkmn I believe that to be the case, yes. The solution has yet to be implemented. |
Adding the admin keyword to the metadata API is irods/irods#6161 and irods/irods#6124 and will be in 4.2.12 and was already included in 4.3.0. |
Ah, right. So theoretically a 4.3.0.1 release of the logical quotas plugin could offer a solution. |
Yes, we could provide a "secure fix" with the admin keyword approach in a 4.3.0.1 release. |
Created an issue in the Logical Quotas plugin repo , including how to reproduce this same error -1205000, with the only plugin installed or active being logical quotas:
|
Due to the above, this is not a PRC issue and therefore can be closed here.... |
Previously, -1205000 wasn't defined in irods/exception.py, and as a result, the name and details of such an exception were not being reported from a server call.
Previously, -1205000 wasn't defined in irods/exception.py, and as a result, the name and details of such an exception were not being reported from a server call.
iRODS server version: 4.2.10
python-irodsclient version: 1.1.4
What did you do?:
Showing here the monitoring result:
Content of the upload script:
What happened:
The script crashed with KeyError: -1205000.
However the data object in question has been uploaded.
Error:
What did you expect:
The data object to be uploaded without seeing any error message after running the script.
Other inputs:
The text was updated successfully, but these errors were encountered: