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)
- replication from compound using python HOT 8
- a BytesBuf has a "void*buf" and "int len", but no means to set content HOT 3
- allow rodsuser to run a rule string HOT 1
- get plugin building and tests working on main branch
- Test Failure: `test_all_rules.Test_AllRules.test_rulemsiDataObjUnlink_r`
- core.py unable to import some Python Standard Library modules HOT 1
- FindPythonInterp.cmake and FindPythonLibs.cmake deprecated in CMake 3.12.
- Test not passing in 4-2-stable Python RE suite
- main branch fails to build against irods/irods main branch HOT 1
- CMake/Packaging references incorrect Python dependency HOT 3
- Python extension modules cannot find symbols in libpython due to RTLD_LOCAL HOT 25
- rulemsiDataObjPhymv.r does not use `msiDataObjPhymv` correctly (testing)
- Use `irods::get_irods_config_directory()`
- Use Boost's include wrapper for Python.h, and use python includes before any system includes HOT 1
- Do not call Py_Finalize
- regChksum and verifyChksum not accessible in pep_api_data_obj_copy_* PEPs HOT 2
- Identify libpython soname at configure-time
- Initialize interpreter for each operation
- Force build-time linker to link libpython
- Migrate from rodsLog to irods::experimental::log
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.