Bug #1172
Bug #1170: Recording video with rsbag-tools-cl 0.7 with rst injected crashes shortly after recording start
Condition propragation between threads fails
Status: | Resolved | Start date: | 09/20/2012 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | - | |||
Target version: | Robotics Service Bus - rsb-0.9 |
Description
languitar@herbie:~/Desktop/bag-tools/0.7$ ./bag-record -o vision0.tide spread:/nao/vision/0?name=4803 2012-09-20T11:19:40.838863+02:00 #<SYNCHRONIZED-CHANNEL "/nao/vision/0/:.rst.vision.Image" (93) (RSB-EVENT-0.7 .rst.vision.Image) {100DA4D903}> [ WARN (RSB.COMMON) ] Aborting background thread #<THREAD "Message Receiver for #<IN-PUSH spread::4803/ {100D1BFA23}>" RUNNING {100B0C8CF3}> NIL doesn't designate a condition class. [ WARN (RSBAG.TOOLS.RECORD) ] Error during detaching of #<LISTENER /nao/vision/0/ |(0) D8DEDED5>: Interrupt thread failed: thread #<THREAD "Message Receiver for #<IN-PUSH spread::4803/ {100D1BFA23}>" ABORTED {100B0C8CF3}> has exited.
Associated revisions
Improved error-handling functions in common/error-handling.lisp
- common/error-handling.lisp (abort/signal): made condition parameter
mandatory; call `invoke-restart' with the restart object
(continue/verbose): fixed logging format strings
(maybe-relay-to-thread): do not provide an `abort' restart in the
target thread; do not call the policy in the target thread if it
would abort anyway; provide `abort/signal' restart in worker threads;
renamed parameter strategy -> policy
(ftype invoke-with-error-policy): fixed function name
invoke-with-error-handling-strategy -> invoke-with-error-policy
(invoke-with-error-policy): use `restart-case' instead of
`restart-bind' to ensure resignaling outside the dynamic scope of
the error policy which may otherwise apply relay or logging behavior
a second time
Added unit tests for error-handling functions in test/common/error-handling.lisp
refs #1172
- test/common/error-handling.lisp: new file; contains unit tests for
error-handling functions; initially for `abort', `abort/signal',
`continue/verbose' and `continue' error policies in combination with
`maybe-relay-to-thread' and `with-error-policy' - test/common/package.lisp: new file; contains package definition for
unit tests of the cl-rsb-common system - cl-rsb-common.asd (system cl-rsb-common): added dependency on system
cl-rsb-common-test for test-op
(system cl-rsb-common-test): new system; contains unit tests for the
cl-rsb-common system - lift-rsb-common.config: new file; default unit test configuration
for the cl-rsb-common system - CMakeLists.txt: added unit test for cl-rsb-common system to list of
tests
History
#1 Updated by J. Moringen over 11 years ago
- Description updated (diff)
- Target version changed from rsb-0.7 to rsb-0.9
- % Done changed from 0 to 80
#2 Updated by J. Moringen over 11 years ago
- Status changed from In Progress to Resolved
- % Done changed from 80 to 100
Applied in changeset rsb:rsb-tools-cl|commit:974e19ba134e0172bb9f0f8c199f78a8ef80b973.