Robotics Service Bus: Issueshttps://code.cor-lab.de/https://code.cor-lab.de/favicon.ico?14019720732015-04-02T12:51:44ZOpen Source Collaboration Platform
Redmine Tasks #2216 (New): Consider using git subtrees instead of submoduleshttps://code.cor-lab.de/issues/22162015-04-02T12:51:44ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>We can all agree, that our submodule setup sucks.</p>
<p>We discussed and rejected gitslave: <a class="external" href="https://projects.cor-lab.org/projects/corcse/wiki/GitSlave">https://projects.cor-lab.org/projects/corcse/wiki/GitSlave</a></p>
<p>Nicolas Hafner suggests git subtrees, which I (jmoringe) did not know about. We should probably look into that possibility.<br /><a class="external" href="http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/">http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/</a></p> Bug #2167 (New): Check that RemoteServer instances delete EventId instances in case of RPC timeoutshttps://code.cor-lab.de/issues/21672015-02-04T16:08:22ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<p>I have observed that EventId instances are collected in a java process in case frequent RPC calls time out. This might be due to the association of responses with requests.</p> Enhancement #2050 (New): allow shallow data copy for converter arguments?https://code.cor-lab.de/issues/20502014-10-09T08:57:38ZR. Haschkerhaschke@techfak.uni-bielefeld.de
<p>Hi Sebastian and all,</p>
<p>Why did you decided to pass data to converters by ref instead of shared_ptr?<br />This requires to copy data over and over. Instead one could easily also pass the shared_ptr,<br />e.g. in <a href="/projects/rsb/repository/rsb-cpp/entry/src/rsb/transport/socket/InPullConnector.cpp#L90" class="source">source:rsb-cpp|src/rsb/transport/socket/InPullConnector.cpp#L90</a>:</p>
<pre><code class="cpp syntaxhl"><span class="CodeRay"> boost::shared_ptr<<span class="predefined-type">string</span>> wireData = static_pointer_cast<<span class="predefined-type">string</span>>(event->getData());
<span class="predefined-type">string</span> wireSchema = event->getMetaData().getUserInfo(<span class="string"><span class="delimiter">"</span><span class="content">rsb.wire-schema</span><span class="delimiter">"</span></span>);
AnnotatedData d = getConverter(wireSchema)->deserialize(wireSchema, *wireData);
</span></code></pre>
<p>and then reuse the pointer instead of reallocating, e.g. in <a href="/projects/rsb/repository/entry/rsb-cpp/src/rsb/converters/ByteArrayConverter.cpp#L49" class="source">source:rsb-cpp/src/rsb/converters/ByteArrayConverter.cpp#L49</a>:</p>
<pre><code class="cpp syntaxhl"><span class="CodeRay"> AnnotatedData ByteArrayConverter::deserialize(<span class="directive">const</span> std::string& <span class="comment">/*wireSchema*/</span>,
<span class="directive">const</span> string& wire) {
<span class="keyword">return</span> make_pair(getDataType(), boost::shared_ptr<<span class="predefined-type">string</span>>(<span class="keyword">new</span> <span class="predefined-type">string</span>(wire)));
}
</span></code></pre> Enhancement #1818 (New): Change and/or enforce naming conventions in rsb-pythonhttps://code.cor-lab.de/issues/18182014-03-21T15:23:35ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>There are two basic issues:</p>
<ol>
<li>We have a mix of <code>self._VAR</code> and <code>self.__VAR</code> for private attributes. This should probably be unified after consulting the relevant Python documentation.</li>
<li>PEP8 suggests a different <a href="http://legacy.python.org/dev/peps/pep-0008/#function-names" class="external">naming convention for functions</a> than we currently use. We should probably consider switching.</li>
</ol> Enhancement #1817 (New): Deliver binaries with pre-warmed PCL cacheshttps://code.cor-lab.de/issues/18172014-03-19T17:27:09ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
See
<ul>
<li><a class="external" href="http://christophe.rhodes.io/notes/blog/posts/2014/generic_function_precompilation/">http://christophe.rhodes.io/notes/blog/posts/2014/generic_function_precompilation/</a></li>
<li><a class="external" href="http://www.advogato.org/person/crhodes/diary/160.html">http://www.advogato.org/person/crhodes/diary/160.html</a></li>
<li><a class="external" href="http://www.advogato.org/person/crhodes/diary/162.html">http://www.advogato.org/person/crhodes/diary/162.html</a></li>
</ul> Feature #1771 (In Progress): Add META block to TIDELog backendhttps://code.cor-lab.de/issues/17712014-02-14T11:48:57ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deFeature #1770 (In Progress): Add TYPE block to TIDELog backendhttps://code.cor-lab.de/issues/17702014-02-14T11:43:09ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deTasks #1768 (New): Evaluate Boost.Exception for dealing with re-thrown exceptionshttps://code.cor-lab.de/issues/17682014-02-14T06:48:18ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>See <a class="external" href="http://www.boost.org/doc/libs/1_55_0/libs/exception/doc/boost-exception.html">http://www.boost.org/doc/libs/1_55_0/libs/exception/doc/boost-exception.html</a>.</p>
<p>This library allows successively adding more information to exceptions as they are caught and re-thrown.</p>
Open Questions
<ul>
<li>Platform/compiler compatibility</li>
<li>Unwind model</li>
<li>Interaction with debugger</li>
<li>Will this allow us to get rid of things like the <code>wrapExceptions</code> parameter in <code>rsc::plugins::Plugin::unload</code>?</li>
</ul>
<p>Equally applies to <a href="https://code.cor-lab.de/projects/rsc" class="project">Robotics Systems Commons</a>.</p> Tasks #1709 (New): Document Java client APIhttps://code.cor-lab.de/issues/17092013-12-22T20:22:22ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deTasks #1708 (New): Document C++ client APIhttps://code.cor-lab.de/issues/17082013-12-22T20:21:10ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.deEnhancement #1550 (New): "Auto" mode of the socket transport should be smarterhttps://code.cor-lab.de/issues/15502013-06-25T12:02:55ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>When configured as <code>server = auto, host = NOT-THE-LOCAL-HOST</code>, the process should not attempt to act as server.</p>
<p>Note however, that this may be harder to implement than it sounds.</p> Enhancement #1515 (New): Add data type to all participants, especially listenershttps://code.cor-lab.de/issues/15152013-05-27T16:29:49ZJ. Wienkejwienke@techfak.uni-bielefeld.de
<p>This would automatically allows to select the correct converter for deserialization. Also, right now the situation is quite seldom that handlers with different data types can work correctly on a single listeners.</p>
<p>We should still allow the Any Type for dynamic languages and situations.</p> Bug #1483 (New): Common Lisp logger stumbles upon wrong / unknown config optionshttps://code.cor-lab.de/issues/14832013-05-02T09:31:41ZAnonymous
<p>For the interoperability tool-chain we added the configuration option</p>
<pre>
wireschemamapping = "^/icub.*/.*/state$"=rosetta<MechanismBottleDataHolder,yarp.icub.angles.state>;"^/icub.*/.*/rpc$"=rosetta<MechanismBottleDataHolder,yarp,icub.angles.command>;"^/icub.*/cam.*"=rosetta<MechanismBottleDataHolder,yarp.icub.image>;"^/icub.*/
</pre>
<p>This is not known to the cl tools yet, so it complains (see error below). It should maybe just warn about unknown syntax, or provide an option to continue on errors.</p>
<p>The error:</p>
<pre>
rsb-logger --style=monitor socket:/
unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
{1007680E63}>:
Syntax error in line 30, contents
"wireschemamapping = \"^/icub.*/.*/state$\"=rosetta<MechanismBottleDataHolder,yarp.icub.angles.state>;\"^/icub.*/.*/rpc$\"=rosetta<MechanismBottleDataHolder,yarp,icub.angles.command>;\"^/icub.*/cam.*\"=rosetta<MechanismBottleDataHolder,yarp.icub.image>;\"^/icub.*/texture/.*\"=rosetta<MechanismBottleDataHolder,yarp.icub.image>".
0: (SB-DEBUG::MAP-BACKTRACE
#<CLOSURE (LAMBDA # :IN BACKTRACE) {1007D7F86B}>
:START
0
:COUNT
128)
1: (BACKTRACE 128 #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDERR* {1000206593}>)
2: (SB-DEBUG::DEBUGGER-DISABLED-HOOK
#<SIMPLE-ERROR "~@<Syntax error in line ~D, contents ~S.~@:>" {1007D7C973}>
#<unavailable argument>)
3: (SB-DEBUG::RUN-HOOK
*INVOKE-DEBUGGER-HOOK*
#<SIMPLE-ERROR "~@<Syntax error in line ~D, contents ~S.~@:>" {1007D7C973}>)
4: (INVOKE-DEBUGGER
#<SIMPLE-ERROR "~@<Syntax error in line ~D, contents ~S.~@:>" {1007D7C973}>)
5: (ERROR
"~@<Syntax error in line ~D, contents ~S.~@:>"
30
"wireschemamapping = \"^/icub.*/.*/state$\"=rosetta<MechanismBottleDataHolder,yarp.icub.angles.state>;\"^/icub.*/.*/rpc$\"=rosetta<MechanismBottleDataHolder,yarp,icub.angles.command>;\"^/icub.*/cam.*\"=rosetta<MechanismBottleDataHolder,yarp.icub.image>;\"^/icub.*/texture/.*\"=rosetta<MechanismBottleDataHolder,yarp.icub.image>")
6: (RSB:OPTIONS-FROM-STREAM
#<SB-SYS:FD-STREAM for "file /home/norro/.config/rsb.conf" {1007D737A3}>)
7: (RSB:OPTIONS-FROM-DEFAULT-SOURCES :CONFIG-FILES NIL)
8: (RSB.TOOLS.LOGGER:MAIN)
9: ((FLET #:WITHOUT-INTERRUPTS-BODY-54 :IN SAVE-LISP-AND-DIE))
10: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))
unhandled condition in --disable-debugger mode, quitting
</pre> Enhancement #1054 (New): "auto" server mode is inefficienthttps://code.cor-lab.de/issues/10542012-07-02T14:26:09ZJ. Moringenjmoringe@cor-lab.uni-bielefeld.de
<p>Currently the "auto" server mode is implemented as follows:</p>
<ol>
<li>Maybe act as server
<ol>
<li>If there is a bus server object for the endpoint, use it</li>
<li>If not, try to open a listen socket (for the configured endpoint) *</li>
</ol>
</li>
<li>Maybe act as client
<ol>
<li>If there is a bus client object the end point, use it</li>
<li>if not, try to connect to a listen socket (for the configured endpoint) *</li>
</ol></li>
</ol>
<p>The operations marked with "*" are potentially expensive (due to nameserver queries etc.).</p>
<p>When a process acts as client, steps 1.1, <strong>1.2</strong> and 2.1 are repeated for each created participant.</p> Tasks #597 (New): Evaluate whether we want to move to Github once Spread is extractedhttps://code.cor-lab.de/issues/5972011-09-30T11:58:32ZS. Wredeswrede@cor-lab.uni-bielefeld.de
<p>Besides general considerations, we need to check how this would go together with redmine.</p>