-
Notifications
You must be signed in to change notification settings - Fork 34
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
problem specifying -b 10g for throuput tests #717
Comments
My suspicion is that the rewriter, which passes the JSON through jq via PyJQ is exercising a bug in PyJQ. Will investigate further and try to have a fix for 4.1.5. |
TL;DR: The problem isn't in the pScheduler code. It appears to be in PyJQ. Some notes on what I found trying to track this down: jqJq can handle large numbers into the low petas before it punts and switches to scientific notation:
Note in the second example that it hits 10P because of rounding problems. If bits per second is our poster boy for large numbers, there are enough orders of magnitude to spare that we should be good for many more years. PythonPython reports that its floats have a 15-digit base plus a 53-digit mantissa and an epsilon of 2.220446049250313e-16, which says IEEE 754 double-precision. No surprise there. PyJQPyjq 2.1.0 and 2.2.0 both top out at 2,147,483,647, or the maximum value for a signed, 32-bit integer:
My current suspicion is that the type conversion code in PyJQ is reading into a shorter integer than it should be. That's being investigated. |
Looks like it's definitely PyJQ or the code Cython is generating. Submitted a bug to PyJQ's maintainer: doloopwhile/pyjq#24. |
Temporary workaround until the root cause of #717 is resolved.
Installed a workaround if the Will kick this forward to 4.2.0 for the fix to PyJQ; if it comes earlier than that, I'll pull it back to a bugfix release. |
Release Notes for 4.1.5: Corrected a jq scripting problem where certain large integers were being rewritten as floats. |
* Added classifiers_has to rewriter for consistency. (Semi-related to #479) * Removed some unused code * Make clear when the validation file is invalid. (Found during #479) * Priorities, part 1: CLI/API to database. #479 * Update service internal for Debian. #505 * Temporary workaround until the root cause of #717 is resolved. * Bumping version * Fixing issue found on tesbed where pscheduler-server RPM won't install due to scriptlet error. Problem was call to 'pscheduler internal service stop' before it was installed. Bumping relnumn but leaving version the same since this is just a RPM spec change * Handle non-offers of tools correctly when complaining. #748 * Properly generate and validate the task. #727 * Merged stashed changed prior to merge with 4.2.0 code base. #479 * Fixed mistakes from merge. (Code still untested.) #479 * Fixed monitor. #479 * Fixed debug flag so all processes can see it. #753 * Handle initial debus state better; added GET for state. #753 * Added missing bump of table version. #479 * Take runs through cleanup state and set status properly. #479 * More development, still incomplete. #479 * More development, probably close to done. #479 * Remvoed duplicate task posting. #479 * Fixed finished/cleanup behavior on non-lead participants. #479 * Pass priority along to non-lead participants. #479 * Better handling of unspecified priorities. #479 * Cosmetic fixes. #479 * More error checking and null handling. #479 * Pass debug through to result; print result in right place; avoid unneeded fetches. #479 * Always pull task. #479 * Return time from preempted runs to the timeline. #479
This turns out to be a two-part problem. jqThe first part is jq's
This works if the context is that anything that won't fit into an PyJQ doesn't care, so I wrote a new function called
Adding the function was chosen over modifying the behavior of the existing one, which may have dependencies in other code. PyJQAs part of the JV-to-Python converter, PyJQ turns the value into an
This doesn't take into account the fact that Python 2 has two integer types, the 32-bit
Pull requests for both projects are being submitted. Meanwhile, these changes will be folded into the jq 1.6 upgrade in #785. |
I'm going to call this closed since pulling the changes from #785 will fix it. |
We have a problem where we can specify -b 1g but not -b 10g on the pscheduler CLI
I talked to Mark and he said it was because something was making this a float instead of an int
The text was updated successfully, but these errors were encountered: