Comments (9)
@sloretz Hello, I'm new to open source and love working with ros. How can I approach this issue?
from rclpy.
I would like to help with this one @sloretz should I proceed?
from rclpy.
First time contributing to open source and interested in learning more about how to fix this issue.
from rclpy.
Hi @db118 ,
This issue is about checking error codes of python functions. Here is an example of error checking done correctly: PyArg_ParseTuple(...)
can fail, and if it does the function should return NULL
right away.
rclpy/rclpy/src/rclpy/_rclpy.c
Lines 1550 to 1552 in 62012d3
Here is an example of what should be fixed: PyList_New()
can set an exception and return NULL
, so pylist
needs to be checked before calling PyList_SET_ITEM()
with it.
rclpy/rclpy/src/rclpy/_rclpy.c
Lines 1693 to 1697 in 62012d3
A good first PR would fix one instance of a function that can fail not being checked.
from rclpy.
@sloretz Ahhh that make sense. Also I don't see a requirements.txt. Is there certain python libraries I need to get this up and running.
from rclpy.
@sloretz
Do you want me to switch this null error checking
rclpy/rclpy/src/rclpy/_rclpy.c
Lines 3642 to 3645 in 62012d3
to this implementation instead
rclpy/rclpy/src/rclpy/_rclpy.c
Lines 1550 to 1552 in 62012d3
from rclpy.
@db118 See the section "Building from source" for instructions to build this library. It lists the dependencies, as well as shows how to build the other ros 2 packages this one depends on. Once you've built everything once, you can build and test just this backage with colcon build --packages-select rclpy
and colcon test --event-handlers console_direct+ --packages-select rclpy
.
I don't think I understand the question about swtiching NULL
error checking; both of those look fine to me.
from rclpy.
Given our recent switch to pybind11 (which gets completed with #814), I actually think this issue is mostly obsolete. @sloretz what do you think? Should we just close this one out?
from rclpy.
Yup, this one can be closed 🎉
from rclpy.
Related Issues (20)
- Feature Request for MultiProcessExecutor HOT 2
- async wait/sleep implementation HOT 4
- KeyError in ActionServer._execute_goal HOT 5
- [Feature] Static Type Checking With ament_mypy HOT 1
- Added optional TimerInfo to timer callback
- :farmer: `test_guard_condition` failing consisntent in CycloneDDS HOT 2
- Add utility function to get datetime.datetime from Time HOT 1
- Decode ROS2 raw byte data using rclpy.serialization.deserialize_message HOT 3
- Rate object's destroy() does not destroy the underlying Timer object, leading to CPU usage explosion HOT 6
- Update the executor to not throw ExternalShutdownException
- Make nodes, publishers, subscriptions, services, clients, action servers, action clients Python context managers
- aarch64 cross compiling HOT 9
- Executors mishandle invalid waitables HOT 4
- context.on_shutdown is never called HOT 7
- Bad interaction between `torch.compile` and `MultiThreadedExecutor` HOT 1
- First Time Contributors Documentation (CONTRIBUTING.md) HOT 2
- Python message with uint32 Assertion `PyLong_Check(field)' failed HOT 2
- Memory leak in ActionServer. ```taken_data = self._handle.take_goal_request``` HOT 4
- [Bug] error when node created with rclpy.node.Node HOT 1
- Async tasks are processed in LIFO not FIFO HOT 4
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 rclpy.