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

Added by J. Moringen over 11 years ago. Updated over 11 years ago.

Status:ResolvedStart date:09/20/2012
Priority:NormalDue 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

Revision 974e19ba
Added by J. Moringen over 11 years ago

Improved error-handling functions in common/error-handling.lisp

refs #1170, fixes #1172

  • 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

Revision 23f66883
Added by J. Moringen over 11 years ago

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.

Also available in: Atom PDF