Comments (3)
The clearMsParam()
fixes the 32k leak - so we want to keep it. It allows for multiple rules to be run within the same connection without making the server leak until collapse.
So, wrapping line 278 in some logic to detect whether we're already 'in an error case' would prevent this pointer free.
More investigation to whether that means that a leak would still occur, but maybe that doesn't matter since it's already in an exception case.
Another consideration is when !retVal.ok()
but when not caused by an exception (just a regular iRODS error code).
If an exception is thrown, but caught and handled in the rule itself... how would this behave?
@stsnel, I think we can get this done pretty quickly for a 4.2.11.1.
from irods_rule_engine_plugin_python.
We have confirmed that the solution works and prevents leaks for non-error cases.
I did notice that some microservices still leak and we will try to address this in the next server release in addition to the other observed leaks. See irods/irods#6044 and irods/irods#6108
from irods_rule_engine_plugin_python.
@trel Thank you, that sounds like a great solution 👍
from irods_rule_engine_plugin_python.
Related Issues (20)
- Several `-Wmissing-field-initializers` warnings when building against 4.3.1 candidate HOT 1
- Rule engine plugin interface functions must not be visible outside of shared library
- build hook: use distro-provided CMake if present and newer than ours
- rocky9: enable CRB repo in plugin builder image HOT 1
- EL: investigate using epel-release from repos only HOT 1
- Test hook should only install the python REP from the packages directory
- Helpful addition to the README
- Document `print` behavior in python rules HOT 1
- Investigate drop-in replacement for GenQuery2-based genquery iterator
- global_vars should be available in imported modules HOT 14
- Deprecate implicit/magic import of `irods_types` or `irods_errors`
- Remove deprecated `global_vars` alias
- Add section to README explaining/demonstrating how to pass values back to the caller HOT 1
- Update README for the python interpreter HOT 1
- Possible to use different interpreters? HOT 5
- GeneralUpdate structs generate deprecation warnings during build
- Enable rule engine on Ubuntu 22 and IRODS 4.3.1 HOT 24
- UTF-8 error triggering when pep_database_check_auth_xx or pep_api_auth_response_xx is called HOT 3
- py_remote hostname length HOT 5
- Add dedicated exception type for rules written in PREP
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irods_rule_engine_plugin_python.