Bug #1849

Call tool does not complain if it can't decode a reply

Added by J. Wienke almost 7 years ago. Updated over 3 years ago.

Status:FeedbackStart date:04/17/2014
Priority:NormalDue date:
Assignee:J. Moringen% Done:

30%

Category:Common Lisp Tools
Target version:rsb-0.18

Description

The call tool simply blocks if it receives a reply for a method with a data type that cannot be deserialized. No message is given to the user.

Associated revisions

Revision dd82cac6
Added by J. Moringen over 5 years ago

Fixed error-policy race condition in src/participant.lisp

refs #1849, fixes #2254

Solves the problem of connector errors not being handled by the
error-policy of a newly created participant by eliminating the two
causes of the problem:

1. `make-participant-using-class' method for `error-hook-mixin'
connected the supplied error-policy to the error hook too
late (i.e. after connectors had already been attached).

2. `make-participant-using-class' method for `client' added connectors
to the configurator before installing the error-policy in the
configurator.

  • src/mixins.lisp (header): updated copyright
    (make-participant-using-class class error-hook-mixin scope): removed
    :around qualifier; allows actual :around methods to execute code after
    the error-policy has been installed
  • src/participant.lisp
    (make-participant-using-class :around class client scope): create and
    set up transports, configurator and error-policy
    (make-participant-using-class class client scope): removed; no longer
    needed
  • src/event-processing/configurator.lisp (header): updated copyright
    (shared-initialize :after configurator t): handle processor creation
    properly
  • test/protocol.lisp (test hooks-root::make-participant-hook/smoke):
    adapted expected initargs
  • test/participant.lisp (header): updated copyright
    (test participant-root::error-policy-race): new test; make sure error
    policy is in effect when connectors may signal errors

Revision 88649c71
Added by J. Moringen over 5 years ago

Backport: Fixed error-policy race condition in src/participant.lisp

refs #1849, refs #2254

Solves the problem of connector errors not being handled by the
error-policy of a newly created participant by eliminating the two
causes of the problem:

1. `make-participant-using-class' method for `error-hook-mixin'
connected the supplied error-policy to the error hook too
late (i.e. after connectors had already been attached).

2. `make-participant-using-class' method for `client' added connectors
to the configurator before installing the error-policy in the
configurator.

  • src/mixins.lisp (header): updated copyright
    (make-participant-using-class class error-hook-mixin scope): removed
    :around qualifier; allows actual :around methods to execute code after
    the error-policy has been installed
  • src/participant.lisp
    (make-participant-using-class :around class client scope): create and
    set up transports, configurator and error-policy
    (make-participant-using-class class client scope): removed; no longer
    needed
  • src/event-processing/configurator.lisp (header): updated copyright
    (shared-initialize :after configurator t): handle processor creation
    properly
  • test/protocol.lisp (test hooks-root::make-participant-hook/smoke):
    adapted expected initargs
  • test/participant.lisp (header): updated copyright
    (test participant-root::error-policy-race): new test; make sure error
    policy is in effect when connectors may signal errors

(cherry picked from commit dd82cac6a2759ae49485b7579afdd52b2c63af14)

History

#1 Updated by J. Moringen about 6 years ago

  • Target version changed from rsb-0.11 to rsb-0.12

#2 Updated by J. Moringen over 5 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 30

#3 Updated by J. Wienke over 5 years ago

  • Target version changed from rsb-0.12 to rsb-0.13

#4 Updated by J. Moringen almost 5 years ago

  • Target version changed from rsb-0.13 to rsb-0.14

#5 Updated by J. Moringen over 4 years ago

  • Target version changed from rsb-0.14 to rsb-0.15

#6 Updated by J. Moringen about 4 years ago

  • Target version changed from rsb-0.15 to rsb-0.16

#7 Updated by J. Moringen about 4 years ago

  • Status changed from In Progress to Feedback

I just tried to reproduce this with the socket and spread transports and it seems to work as expected.

Can you provide a recipe for reproducing this?

#8 Updated by J. Moringen almost 4 years ago

  • Target version changed from rsb-0.16 to rsb-0.17

#9 Updated by J. Moringen over 3 years ago

  • Target version changed from rsb-0.17 to rsb-0.18

Also available in: Atom PDF